Intereting Posts
Android SearchView на ActionBar, обнаружение нажмите на Поиск Установить источник ImageView динамически андроида Как сохранить состояние фрагмента без стопки в закладке? Размер Layer-List для Android LayerDrawable Android: Как инициализировать MediaRecorder без допустимой поверхности для предварительного просмотра видео? Android: не удалось установить каталог Android SQLite – выборArgs, кроме строк Разработка Android в IntelliJ IDEA заставляет компьютер замораживать Как определить, когда приложение Android переходит на задний план и возвращается на передний план Как поместить изображение из выпадающей папки в файл HTML Добавление версии сервисов Google Play в манифест вашего приложения? Инициирование основных объектов Volley Как скрыть строку состояния Android в родной игре, написанной с помощью gomobile Parse.com datastore не закрепляет более одного несохраненного объекта Создание текстового фильтра (например, быстрый поиск) для Spinner в Android

IONIC Framework Проблема производительности мобильных приложений

Мы разрабатываем мобильное приложение высокого профиля для одного из наших клиентов, использующего структуру IONIC. Мы почти закончили разработку этой фазы. Приложение, похоже, хорошо работает при открытии в браузере Web / Mobile. Однако, когда мы переносим это в мобильное приложение с использованием команд фреймворка, приложение становится очень медленным и зацикливается. Это приводит к очень плохому пользователю.

Я использую команду «ионный бег андроида» для создания APK. Не могли бы вы помочь нам в этом вопросе? Мы не можем представить APK для тестирования с этой проблемой. Есть ли какая-то конфигурация, которую я мог бы использовать для ускорения работы приложения.

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

Solutions Collecting From Web of "IONIC Framework Проблема производительности мобильных приложений"

Какой ионный погрузчик вы используете? Я был недоволен доступными решениями и закончил работу над своим решением.

Какую версию вы настраиваете, и какую версию вы тестируете (физическое устройство)?

Вот несколько советов по производительности:

  1. Если таргетинг <4,4 и размер APK не является проблемой, попробуйте объединить время выполнения перекрестка. Это довольно легко с ионным кли, вы можете просто сделать ionic browser add crosswalk чтобы включить его. Производительность будет лучше, но размер APK будет больше.

  2. ionic run android сделает APK, но гораздо лучше сделать ionic build android

  3. Минимизировать JS и CSS, concat и strip debug в gulpfile.js . Я также получил небольшую прибыль от использования html2js в шаблонах.

  4. Следите за ng-repeat . Скорее используйте collection-repeat или, если вы должны использовать ng-repeat , убедитесь, что вы используете функцию track by .

  5. Фильтры могут негативно повлиять на производительность. При необходимости используйте директивы.

  6. Отложить отсрочку отложить! $q – ваш друг и может помочь создать иллюзию скорости.

  7. Просто используйте простой ol 'DOM, когда сможете, не все должно быть угловатым.

  8. По возможности используйте одноразовую привязку. {{ ::thing }} устанавливает значение один раз и сохраняет его, что означает меньше наблюдателей, что означает лучшую производительность.

  9. Избегайте $scope.$apply() поскольку это обрабатывает все. Вместо этого используйте $scope.$digest() и он будет обрабатываться только из области, из которой он вызван.

  10. Держите своих $$watchers до абсолютного минимума!

  11. Только свяжите то, что вам нужно. Удостоверьтесь, что вы включаете минимальный размер библиотек и т. Д.

  12. Не используйте jQuery (хотя это очевидно)

Удачи!

Обновление 17.09.2015

Интеграция Кордовы с Crosswalk отлично работает в наши дни, и ее рекомендуется использовать для тестирования и сборки приложения для Android.


Ответ Darryn.ten определенно очень подробный и содержит множество замечательных советов. Я хотел бы добавить несколько вещей к тому, что было упомянуто выше:

  • Пересечение . Это основной инструмент для улучшения производительности (в Android 4.4 <, где он не имеет встроенного браузера Chromium). Если установка пешеходного перехода с использованием ионного cli вызывает ошибки и ошибки (как это почти наверняка будет), загрузите Intel XDK, и вы сможете легко протестировать / отладить / создать приложение с помощью Crosswalk.
  • Еще одна вещь, которую я засвидетельствовал, вызывает некоторые серьезные проблемы с производительностью – это фоновые изображения и градиенты , я все еще не уверен в производительности непрозрачности в целом, но когда я вынул эти два, прокрутка и переход пошли очень быстро.
  • Используйте аппаратный css ( translate3d ), чтобы перемещать вещи вокруг DOM.

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