Intereting Posts
Использует библиотеку событий, такую ​​как Otto или EventBus, рекомендуемый способ обработки отношений между действиями, фрагментами и фоновыми потоками Сообщение тоста от широковещательного приемника Android 5.1.1 камера по умолчанию возвращает пустое намерение в onActivityResult после захвата изображения InputStream для JsonObject – GSON Как установить программный эффект Ripple на LinearLayout? SIG33 при отладке собственного Android Финишная активность не завершает работу? Точный контроль над андроидами VectorDrawable анимации Нет такого свойства: sonatypeUserName для класса: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer Build Ошибка при запуске платформы cordova add android Обновить базу данных sql с помощью ContentValues ​​и метод обновления Android Volley двойной пост, когда медленный запрос Внедрение многоколоночного ListView с независимыми строковыми строками Забыл пароль Keystore, думая об обнаружении Brute-Force. Это повредит хранилище ключей? Макет андроида с видимостью GONE

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.

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