поиск

Советы и трюки по оптимизации Flash Lite 2 приложений

Намусорил: Юрий «Бармалей» Яровой
В категории: Flash Lite

Перевел еще одну статью Джонатана Дьюрена (Jonathan Duran) «Optimization Tips and Tricks for Flash Lite 2», в которой даются советы по оптимизации и увеличению быстродействия Flash Lite 2 приложений.

***

Конечно же, разработка Flash Lite 2 приложения имеет отличия от разработки Flash приложений для настольных компьютеров. Аппаратная среда мобильных устройств накладывает определенные ограничения на содержимое приложения, из-за чего приходится искать пути по его оптимизации, сохраняя на приемлемом уровне объем потребляемой оперативной памяти, уменьшая размер файла и количество выполняемого кода.

Эта статья является небольшим списком трюков и советов, которые окажутся полезными в качестве практического руководства находящегося всегда под рукой.

Контроль и управление использованием оперативной памяти устройства

Используйте отчет об объеме, занимаемом файлом и его составляющими, при публикации и тестировании приложения (галочка «Generate size report» в диалоговом окне «Publish Settings…»).

Используйте команду FSCommand2("GetTotalPlayerMemory") для того, чтобы узнать общий объем оперативной памяти в килобайтах, выделенной для Flash Lite.

Используйте команду FSCommand2("GetFreePlayerMemory") для того, чтобы узнать количество памяти, доступной в настоящий момент для Flash Lite.

Оптимизация содержимого

Избегайте использования векторных фигур, состоящих из большого числа кривых и узловых точек.

Старайтесь использовать фигуры, состоящие из примитивных векторных фигур, таких как овалы, прямоугольники и прямые линии.

Поэкспериментируйте с конвертированием векторов в JPEG и посмотрите, как это скажется на производительности.

Когда это возможно, используйте сжатие JPEG для уменьшения размера файла во внешнем редакторе, например, в Photoshop или Fireworks и сохраните результат с соответствующей битовой глубиной цвета.

Используйте графические файлы в формате PNG только в тех случаях, когда необходимо сохранить прозрачными некоторые части изображения, и когда невозможно использовать маскированное или объединенное с фоновым слоем JPEG изображение.

При использовании прозрачных изображений в формате PNG убедитесь в том, что прозрачные области двух изображений не перекрываются друг с другом. Просчет одной прозрачности сквозь другую будет экспоненциально нагружать процессор.

Поэкспериментируйте с конвертированием JPEG изображения в векторное (используя команду «Trace Bitmap» в меню «Modify») и посмотрите, как это скажется на производительности.

Частота смены кадров

Большинство телефонов воспроизводят SWF с частотой 12-15 fps (frames per second — кадров в секунду):

  • Наиболее старые модели — 6-12 fps.
  • Более современные — 12-15 fps.
  • Самые новые — 15+ fps.

Во время разработки ограничьте частоту смены кадров до приемлемой скорости воспроизведения на целевой модели телефона, чтобы подстроить скорость анимации под этот fps.

Если вы опубликовываете окончательный вариант файла, то устанавливайте частоту смены кадров меньше чем 20 fps. Это поможет вам избежать искусственного снижения производительности устройства, которое будет пытаться воспроизводить ваше приложение с большей скоростью, чем возможна на этом телефоне.

Работа с анимацией

Прозрачность и градиенты сильно загружают процессор и должны применяться в малом количестве. Поэкспериментируйте с имитацией прозрачности, используя JPEG, маски и градиенты.

Регулируйте качество вывода анимации. Вы можете программно контролировать качество рендеринга во время проигрывания файла для получения оптимального соотношения (качество вывода анимации)/скорость работы:

  • fscommand2("SetQuality", "low");
  • fscommand2("SetQuality", "high").

Очень важно помнить, что в типичных мобильных интерфейсах (UI) без стилуса взгляд пользователя, как правило, может фокусироваться только на одном элементе в определенный момент времени, например, на клавише или на области экрана.

Тщательно продумайте дизайн и анимацию области для фокусирования внимания пользователя, в то же время уменьшите количество анимации и эффектов в других областях экрана.

Приостановите фоновую анимацию (т.е. анимацию, которая не имеет смысловой нагрузки) в то время, когда необходимо взаимодействие с пользователем.

В процессе вывода содержимого на экран обновляется только та часть экрана, которая действительно требует перерисовки. Избегайте создания приложений, которые требуют частой перерисовки полностью всего экрана.

Избегайте одновременного перемещения (tweening) большого количества объектов. Уменьшите число перемещаемых и/или анимированных объектов или, например, начинайте анимацию одного объекта после окончания анимации другого.

Тестируйте, добавляя и убирая со сцены анимируемые элементы, для оценки их воздействия на производительность приложения.

Скорость выполнения кода

На временной шкале:

  • Как можно меньше используйте циклов, основанных на кадрах (onEnterFrame).
  • Останавливайте кадровые циклы сразу, как только в них отпадает необходимость.
  • Насколько это возможно, распределите большие участки кода по нескольким кадрам временной диаграммы.

Оптимизация ActionScript:

  • Как можно меньше используйте программную графику и анимацию.
  • С осторожностью проводите манипуляции над строками.

Скрипт, состоящий из сотен строк кода, будет более предпочтительным по нагрузке на процессор, чем сотня кадров с твинингом.

Используйте ActionScript в кадрах только тогда, когда это необходимо, а так же избегайте большого числа циклов, инструкций «if», и не удаленных вовремя клипов.



Написать комментарий:

 

Bы можете использовать следующие теги для форматирования: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



User's collector

Внимание!
Эта опция станет доступной только после того как вы авторизуетесь.


 запомнить меня 
Я новый пользователь

На правах рекламы