Холодный старт android studio

Содержание
  1. Saúl Molinero
  2. Avoiding cold starts on Android
  3. Splash screens, launch screens & cold starts.
  4. Your new friend, windowBackground
  5. Styling the onboarding of your app
  6. Styling with a placeholder
  7. Русские Блоги
  8. Холодный старт и горячий старт Android и схема оптимизации
  9. Горячий старт
  10. Определение:
  11. Особенности:
  12. Холодный старт
  13. Определение:
  14. Особенности:
  15. Холодный старт для приложения, чтобы открыть в считанные секунды
  16. Схема оптимизации
  17. Устранить белый / черный экран при запуске
  18. 1. Установите фоновое изображение в качестве логотипа нашего приложения в качестве руководства для запуска приложения. Теперь большинство приложений на рынке делают то же самое.
  19. 2. Установите прозрачный фоновый цвет, чтобы, когда пользователь нажимает на изображение APP на рабочем столе, он не входил в приложение «сразу» и некоторое время оставался на рабочем столе. Фактически, приложение уже активировано в это время, на наш взгляд Я установил прозрачный цвет windowBackground в Theme и принудительно отправил банк производителю приложений для мобильных телефонов (отклик на мобильный телефон слишком медленный, ха-ха). На самом деле WeChat делает то же самое сейчас. Не думаю, что вы можете попробовать.
  20. Русские Блоги
  21. Путь к холодному запуску Android: за секунды
  22. Предисловие
  23. Принцип анализа
  24. Холодный запуск
  25. Что такое холодный старт
  26. Проявление холодного старта
  27. Причины холодного старта
  28. решение
  29. Как сократить время холодного старта?
  30. Как адаптироваться к холодному запуску?
  31. 1. Сплошной цвет фона + значок запуска
  32. 2. Используйте фоновое изображение

Saúl Molinero

I usually talk about android development

Avoiding cold starts on Android

During the last weeks, has been seen in the Android developer community some movement regarding the cold starts, splash screens or launch screens on Android. In this post, I’d like to make clear my opinion of whether they are necessary or not, how to use them and how to go beyond in order to offer the best user experience of onboarding to our users.

The code and the examples shown in this article are available at this Github repository

Splash screens, launch screens & cold starts.

With this post, Colt McAnlis, (developer advocate at Google) again opened the discussion regarding the usage of Splash/Launch screens on Android sharing a keynote by Cyril Mottier which, among other things, talks about why we should avoid using Splash Screens on Android, arguing that they hurt the user experience, increase the size of the application, etc.

In my opinion, users should have the content available as soon as possible, but inevitably, when a user launches an application, Android creates a new process that, during it charge, shows a black/white screen which is built with the application theme, or the theme of the activity that is the entry point.

This load can be increased if our application is complex and overwrites the application object, which is normally used to initialize the analytics, error reporters, etc.

Airbnb shows a white screen in its initialization

Therefore, a black screen is not the best choice for our user. If our application load time is slow, we could use a placeholder to simply fill it by real content, or on the other hand, if our workload is complex, we could show the logo of our application to reinforce the branding.

AliExpress shows its logo in its initialization

Your new friend, windowBackground

As we talked about before, the window displayed by the window manager when the process is in the loading state is set up with the application theme. Specifically with the value inside android:windowBackground . As concerns this post by Ian Lake, if we play with this attribute setting a with the color of the background of the main activity over a small bitmap in the center we can achieve the following effect:

Читайте также:  Как прошивать андроид huawei

We must keep in mind that to avoid problems, the has to be opaque, android:opacity=»opaque» . And the background of the parent of your activity should be filled with a color in your layout, if not, the shown at the start will remain in your activity.

Styling the onboarding of your app

Taking advantage of the windowBackground we can enrich the experience of our users. If our application is complex, and will show a unique activity like a login or a choice selector, we could take the same anchor point of the bitmap and animate it to achieve a nice effect.

For example:

This animation, translates an ImageView that contains the same resource of the .

This ImageView is slightly above of the center of the screen, this could be influenced by system bars, I’ve put a margin top of 12dp which just coincides with the half of the height of the status bar.

Styling with a placeholder

With the we can also create a placeholder of theu ui which will take the real content of the main activity, for example, we could emulate a Toolbar by playing with the .

In this case, the second emulates the Toolbar that is displayed in the actual content, even, we could put the same height (less the width of the status bar) and apply some nice animation on the toolbar to provide a better experience to the user.

Источник

Русские Блоги

Холодный старт и горячий старт Android и схема оптимизации

Горячий старт

Определение:

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

Особенности:

Поскольку горячий запуск будет начинаться с существующего процесса, поэтому горячий запуск не будет выполнять шаг приложения, а будет напрямую переходить к MainActivity (включая серию измерений, макет, чертеж), поэтому процесс горячего запуска нужно только создать И инициализировать MainActivity без необходимости создавать и инициализировать приложение,

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

Процесс создания, инициализации и запуска Activity может ссылаться на эту статью:Глубокое погружение в жизненный цикл деятельности и процесс запуска

Холодный старт

Определение:

Когда приложение запускается, процесс в фоновом режиме для приложения отсутствует. В это время система заново создаст новый процесс, назначенный приложению. Этот метод запуска — холодный запуск.

Особенности:

Холодный запуск, потому что система будет воссоздавать новый процесс, назначенный ей, поэтому он будет создан и инициализирован первымКласс приложенияЗатем создайте и инициализируйте класс MainActivity (включая серию измерений, макет, чертеж) и, наконец, отобразите в интерфейсе.

WindowBackground и другие свойства имеют значение MainActivity и настраивают некоторые свойства на уровне Activity, а затем раздувают макет.После завершения метода onCreate / onStart / onResume мера contentView / layout / draw наконец-то отображается в интерфейсе, так что пока здесь,

Первый запуск приложения считается завершенным. На данный момент интерфейс, который мы видим, является первым кадром. Итак, подведем итог, процесс запуска приложения выглядит следующим образом:

Метод конструктора приложения-> attachBaseContext () -> onCreate () -> Метод построения действия-> onCreate () -> настроить фон и другие свойства в теме-> onStart () -> onResume ( ) -> Схема измерений рисуется и отображается на интерфейсе.

Читайте также:  Архив переписок ватсап андроид

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

Холодный старт для приложения, чтобы открыть в считанные секунды

Время холодного старта:
Время холодного запуска относится к периоду времени с момента, когда пользователь щелкает приложение с мобильного рабочего стола, до момента, когда активность на странице запуска вызывает метод onCreate ().

Что произошло в период холодного старта:
Прежде всего, нам нужно знать, что происходит при открытии действия. Когда открывается действие, если приложение, которому принадлежит действие, не было запущено, система создаст процесс для этого действия ( Приложение вызывается каждый раз, когда создается процесс, поэтому метод ApplicationContate () может вызываться несколько раз.) Во время создания и инициализации процесса он определенно будет занимать некоторое время. За это время WindowManager загрузит Фон окна в стиле темы (windowBackground) используется в качестве элемента предварительного просмотра, а затем фактически загружается макет. Если это время слишком длинное и фон по умолчанию черный или белый, это создаст иллюзию для пользователя. Это приложение очень застряло Очень свободно, естественно, также влияет на пользовательский опыт.

Схема оптимизации

Устранить белый / черный экран при запуске

Когда пользователь нажимает на мобильное приложение для настольного компьютера, черный или белый экран, который он видит, фактически является первым кадром перед визуализацией интерфейса. Если вы понимаете две проблемы в начале статьи, решить эту проблему очень легко. Достаточно установить windowBackground в теме на изображение, которое мы хотим видеть пользователю. Вот два способа:

1. Установите фоновое изображение в качестве логотипа нашего приложения в качестве руководства для запуска приложения. Теперь большинство приложений на рынке делают то же самое.

2. Установите прозрачный фоновый цвет, чтобы, когда пользователь нажимает на изображение APP на рабочем столе, он не входил в приложение «сразу» и некоторое время оставался на рабочем столе. Фактически, приложение уже активировано в это время, на наш взгляд Я установил прозрачный цвет windowBackground в Theme и принудительно отправил банк производителю приложений для мобильных телефонов (отклик на мобильный телефон слишком медленный, ха-ха). На самом деле WeChat делает то же самое сейчас. Не думаю, что вы можете попробовать.

При таком способе прозрачности следует помнить, что если тема непосредственно вводится в Activity, во время выполнения могут возникать следующие исключения:

Это потому, что используется несовместимая тема. Например, моя активность здесь наследует AppCompatActivity. Решение простое:
1. Пусть его Activity интегрируется с Activity вместо AppCompatActivity с совместимостью
2. Установите тему нашего оригинального приложения перед super.onCreate (saveInstanceState) в методе onCreate ()

Для вышеупомянутых двух методов нам нужно ввести тему в соответствующее задание

Источник

Русские Блоги

Путь к холодному запуску Android: за секунды

Предисловие

Что касается страницы-заставки, я считаю, что каждый разработчик Android хорошо знаком с ней, и многие люди также сталкивались с необходимостью добавить рекламное изображение в заставку, а затем задержать 3 секунды перед переходом на главную страницу. Всплеск должен быть просто стартовой страницей, и не следует размещать рекламу. , Но что он может сделать? Это не подходит для менеджера по продукту.
В большинстве случаев запускается белый экран и черный экран, поэтому в этой статье будут обсуждаться несколько решений, которые я использовал при разработке.

Принцип анализа

Холодный запуск

Что такое холодный старт

Холодный старт в Android при прямом использовании:

  • При перезагрузке телефона процесс щелчка значка на рабочем столе для запуска приложения является холодным запуском.
  • Телефон не запускается, долгое время не использовался, после того, как приложение убито, процесс нажатия на иконку на рабочем столе для запуска приложения
Читайте также:  Соединить андроид с машиной

Проявление холодного старта

  • Нет ответа после нажатия на значок на рабочем столе, и приложение не открывается мгновенно, то есть приложение открывается не сразу
  • После щелчка по значку на рабочем столе отображается черный или белый экран, и элементы страницы не отображаются вовремя

Подробности вы можете посмотреть на картинке ниже:

Как видно из приведенного выше рисунка, после щелчка по значку появляется короткий белый экран, а затем отображается содержимое страницы-заставки.Страница-заставка задерживается на 1500 миллисекунд перед переходом на главную страницу. Хотя время белого экрана очень мало, пользовательский опыт не очень хороший.

Причины холодного старта

Основная причина холодного старта — запуск процесса запуска приложения:

  1. Значок щелчка пользователя
  2. Система начинает загружаться и запускать приложение
  3. Запуск приложения: открыть пустое (черное) окно
  4. Создать процесс заявки
  5. Инициализировать приложение
  6. Запустить поток пользовательского интерфейса
  7. Создайте первое действие
  8. Анализировать (надувать) и загружать представление содержимого
  9. Макет
  10. Привлечь

На следующем рисунке представлена ​​информация журнала запуска:

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

решение

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

Как сократить время холодного старта?

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

  1. Сократите трудоемкие операции в приложении (отложенная загрузка)
  2. Сократите трудоемкие операции в onCreate

Как адаптироваться к холодному запуску?

Android предоставляет нам решение android: windowBackground. Мы можем установить фон специально для SplashActivity, чтобы избежать затруднений при создании пустого (черного) окна. Для android: windowBackground расширены различные решения.

1. Сплошной цвет фона + значок запуска

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

Затем мы создаем тему для SplashActivity:

Наконец, установите тему SplashActivity на SplashThemeLayer и посмотрите эффект при запуске.

Добились желаемого эффекта? При нажатии на значок приложения сразу отображается наш значок.

Что касается списка слоев, мы также можем расширить его: например, добавить линейный градиент 45 °.

Реализация немного некрасива, но как это может быть?

2. Используйте фоновое изображение

Первый способ, описанный выше, — использовать сплошной цвет фона + значок запуска. Этот метод определенно не удовлетворяет наших менеджеров по продукту. Им нужна персонализированная страница.
Также очень просто использовать фоновое изображение, просто замените наш предыдущий рисунок на наш рисунок в них:

Следует отметить, что: цвет фона страницы-заставки должен быть установлен на прозрачный # 00000000, не устанавливайте другие фоны, иначе это приведет к растяжению и деформации изображения.

Взгляните на эффект запуска:

Как видно из рендеров, мы получили желаемый эффект, но этот метод создает еще одну проблему:
Использование памяти и OOM изображений, как и стартовая страница этого типа, в основном упаковываются непосредственно в приложение, и чем богаче цвет, тем больше объем изображения, в большинстве случаев В данном случае мы не можем это опровергнуть. Мы можем максимально уменьшить размер изображения, сжав изображение. Вот рекомендуемый сайт сжатия png:tinypng, Можно в основном уменьшить объем получаемого дизайнерского рисунка более чем наполовину.

Источник

Оцените статью