холодный старт приложения что такое

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

Анализ оптимизации скорости запуска AndroidAPP, холодный старт и горячий старт

Метод запуска

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

особенности

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

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

Процесс запуска приложения

В системе Android, когда в приложении нет процесса, запуск приложения представляет собой такой процесс: при нажатии на значок запуска приложения. Система Android раскроет новый процесс из процесса Zygote и назначит его приложению. После этого класс Application, класс MainActivity, windowBackground в теме стиля темы будут созданы и инициализированы по очереди в MainActivity, а некоторые свойства на уровне Activity будут настроены. Наконец, мера / макет / отрисовка contentView отображаются на интерфейсе, поэтому пока здесь первый запуск приложения не завершен. На данный момент интерфейс, который мы видим, является первым кадром.

Итак, подведем итог: процесс запуска приложения выглядит следующим образом:

Измерение времени, необходимого для запуска приложения

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

Какое время запуска приложения

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

После успешной операции будут возвращены три измеренных времени:
1. ThisTime: обычно совпадает с TotalTime. Если при запуске приложения не будет открыта прозрачная активность, она будет заранее отображать основную активность, которая будет меньше, чем TotalTime.
2. TotalTime: время запуска приложения. В том числе процесс создания + инициализация приложения + инициализация активности для отображения интерфейса.

3. WaitTime: обычно больше, чем TotalTime, включая длительное воздействие на систему.

Ниже приводится измерение холодного запуска приложения и времени горячего запуска:
Холодный старт:

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Сократить время, затрачиваемое на запуск приложения

3. Для MainActivity до получения первого кадра. Необходимо измерить операцию рисования макета в contentView, попытаться снизить уровень макета. Рассмотрим стратегию отложенной загрузки StubView. Конечно, избегайте трудоемких операций в методах onCreate, onStart и onResume.

Следующие три стратегии могут значительно улучшить скорость запуска приложения.

Оптимизируйте опыт при запуске приложения

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

1. Сначала напишите стиль темы для основного интерфейса отдельно, установите изображение для отображения, здесь я установил цвет, а затем установите его в MainActivity в манифесте:

2. Затем снова установите AppTheme в MainActivity перед загрузкой макета в MainActivity:

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

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Наконец, добро пожаловать присоединиться к передовой группе связи Android; 964557053. Войти в группу можно бесплатно получить копию последней технической схемы и расширенную информацию Android. Пожалуйста, обратите внимание, CSDN

Источник

«Холодный» запуск Android-приложения

Всем приветъ! Давно ничего не писал.

Это будет серия постов о процессе «холодного» запуска Android приложения, с момента нажатия на иконку и до создания процесса приложения.

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Общая схема

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Открывая «окно»…

Перед тем как запустить новый процесс приложения, system_server создает стартовое окно используя метод PhoneWindowManager.addSplashScreen():

Стартовое окно это то, что пользователь будет видеть пока запускается само приложение. Окно будет отображаться до тех пор пока не будет запущена Activity и не будет отрисован первый кадр. То есть пока не будет завершен «холодный» запуск. Пользователь может видеть данное окно длительное время, поэтому постарайтесь сделать его приятным.

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Содержимое стартового окна берется из drawable-ресурсов windowSplashscreenContent и windowBackground запускаемого Activity. Банальный пример такого окна:

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Если пользователь восстанавливает Activity из режима последнего экрана(Recent screen), при этом на нажимая на иконку приложения, то system_server вызывает метод TaskSnapshotSurface.create(), чтобы создать стартовое окно из уже сделанного скриншота.

Как только стартовое окно показано пользователю, system_server готов запустить процесс приложения и вызывает метод ZygoteProcess.startViaZygote():

В коде видно, что метод ZygoteProcess.zygoteSendArgsAndGetResult() отправляет аргументы запуска через сокет Zygote-процессу.

«Разделение» Zygote-ы

Каждый процесс приложения запускается с помощью форкания(разделения) от существующего Zygote-процесса…

Вкратце об этом я писал в предыдущей статье про запуск Android-а. А теперь давайте посмотрим поглубже на происходящие процессы.

Когда система загружается процесс Zygote стартует и выполняет метод ZygoteInit.main():

Как вы видите метод ZygoteInit.main() делает 2 важные вещи:

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

На заметку: Начиная с Android 10 есть оптимизационная фича под названием Unspecialized App Process, которая имеет пул не специализированных Zygote-процессов, для еще более быстрого запуска приложений.

Приложение запустилось!

После форка дочерний процесс запускает метод RuntimeInit.commonInit(), который устанавливает дефолтный UncaughtExceptionHandler. Далее, процесс запускает метод ActivityThread.main():

Тут происходят две интересные вещи:

Контроль над приложением

В процессе system_server метод ActivityManagerService.attachApplication() вызывает метод ActivityManagerService.attachApplicationLocked(), который завершает настройку запускаемого приложения:

Парочка ключевых выводов:

Давайте немного подробно разберем 3-ий пункт и узнаем что и как происходит при загрузке компонентов и ресурсов приложения. Порядок шагов такой:

Эпилог

Мы начали изучать «холодную» загрузку с очень обще-абстрагированного уровня:

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

Теперь мы знаем, что происходит «под капотом»:

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

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

Источник

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

Холодный запуск приложения, запуск горячего старта и оптимизация реализации запуска для решения проблемы белого экрана

[Заявление Blogger] Добро пожаловать в обзор, пожалуйста, не перепечатывайте без разрешения, спасибо!

· Введение

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

Холодный запуск: приложение запускается в этом состоянии после его закрытия в фоновом режиме. Этот метод запуска называется холодным запуском.

Горячий старт: это означает, что приложение не убивается в фоновом режиме и все еще работает в фоновом режиме. Обычно мы снова открываем приложение. Этот метод запуска называется горячим стартом.

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

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

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

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

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

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

Затем примените эту тему к нужным нам действиям, таким как моя SplashActivity:

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

Примечание. Наша SplashActivity не выполняет инициализацию и компоновку, просто откройте нашу MainActivity непосредственно в onCreate. В противном случае, если вы проведете слишком много времени в SplashActivity, он будет застревать на заставке на долгое время перед входом, и наше второе открытие изменит вкус.

Давайте поговорим о нашей реализации горячего старта. Обычно, когда мы нажимаем кнопку «Назад», жизненный цикл действия выполняется onStop, onDestory-> onCreate. Вызвала нас, чтобы попытаться быть уничтоженным и воссозданным. Тем не менее, мы нажимаем кнопку домой по-другому. Жизненный цикл действия будет выполняться onStop-> onReStart, поэтому горячее начало заключается в замене кнопки домой на кнопку назад. На самом деле, приложение находится в фоновом режиме, поэтому, когда вы снова Когда вы нажмете, чтобы открыть приложение, оно запустится немедленно.

Однако этот тип приложения обычно используется для фоновой обработки, такой как получение фона QQ, фоновое воспроизведение музыкального проигрывателя, обычно кнопка «Назад» блокируется, или будет кнопка «Назад» для предотвращения случайного касания. Конечно, это зависит от потребностей нашего собственного приложения.

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

· Идея для оптимизированного запуска:

Это тот тип мышления, который я видел давным-давно: когда речь идет о страницах-заставках, объясните их вместе. Он использует EventBus, и вместо загрузки различных конфигураций и библиотек при создании приложения сначала отображается страница с заставкой. На странице заставки используйте EventBus для запуска загрузки различных конфигураций и библиотек (в приложении). После загрузки этих библиотек используйте EventBus для повторной отправки событий в основной интерфейс.

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

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

Источник

Рекомендательная система: введение в проблему холодного старта

Меня зовут Василий, уже более трех месяцев, как я работаю математиком в компании Surfingbird.

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

Постановка задачи рекомендательной системы уже описана Сергеем Николенко в статье Рекомендательные системы: постановка задачи.
В основе большинства рекомендательных систем лежат так называемые методы коллаборативной фильтрации. Наша рекомендательная система не исключение. Все алгоритмы коллаборативной фильтрации опираются только на информацию о рейтингах, проставляемых пользователями, и не анализируют контент ресурсов (в нашем случае веб-страниц). Поэтому, эти алгоритмы работают при достаточно большом количестве рейтингов, как правило это 10-20 рейтингов. Задача выдачи релевантных рекомендаций для новых пользователей и для новых сайтов называется проблемой холодного старта.

Итак, проблема холодного старта делится на холодный старт для пользователей (что показывать новым пользователям?) и холодный старт для сайтов (кому рекомендовать вновь добавленные сайты?). Начнем по порядку.

Холодный старт для пользователей

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

Существуют два основных подхода к применению в рекомендациях демографической информации о пользователе:
— Экспертным образом составляются стереотипы для различных демографических категорий. То есть эксперт сам определяет что на холодном старте показывать каждой из категорий. Очевидным минусом такого подхода является необходимость работы эксперта, при этом пользователю будут рекомендоваться только популярные сайты субъективно подобранные экспертом. Объем экспертной работы существенно возрастает с ростом числа категорий.
— Демографические категории определяются автоматически путем выявления кластеров пользователей со схожими интересами. Рекомендации строятся на основе того, какие рейтинги проставляли пользователи из той же категории, то есть того же возраста, пола, местоположения и т. д.

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

Для построения демографических категорий естественно использовать методы кластеризации. Объекты кластеризации x — это пользователи. Признаки (или характеристики) объектов — это отнормированные демографические данные пользователя: пол, возраст, местоположение, образование и другие.
Для кластеризации по демографическим данным естественно использовать метод k-средних, так как в этом случае каждый кластер определяется точкой своего центра и, в следствии этого, хорошо интерпретируется. Расстояние от объекта (пользователя) до центра кластера можно определять, вообще говоря, бесконечным числом способов. Принято использовать евклидову метрику в пространстве признаков.
Однако, в нашей задаче необходимо учесть данные о рейтингах, а не только демографические данные.
Ситуацию спасает наличие рассчитанных для всех сайтов топиков алгоритма SVD, которые можно также добавить как признаки объектов при кластеризации. В этом случае, расстояние между сайтами будет рассчитываться исходя как из сходства демографических данных, так и рейтингов пользователей.

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

Наиболее естественным является метод групповых рекомендаций (group recommendation to individual user), название которго говорит само за себя: мы подбираем новому пользователю такие рекомендации, которые нравятся большинству пользователей в его демографической категории.
Существует ряд различных стратегий, как агрегировать рейтинги разных пользователей в групповую рекомендацию. Например, групповой рейтинг можно рассчитывать так:
GR= П r_i^w_i,
где r_i – рейтинг i-го пользователя, w_i – вес i-го пользователя. Произведение берется по всем пользователям или по выделенной группе по какому-то критерию (например, возраст-пол).
Весам w_i для пользователей с тем же возрастом, полом и местоположением мы даем большее значение, остальным меньшее (подбираются вручную).

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

Холодный старт для веб-страниц

Для решения проблемы холодного старта для новых веб-страниц применяются различные методы анализа текста и другого контента страницы (картинки, видео, flash, ссылки и т.д.).
Основные методы семантического анализа текста, на которых я хотел бы остановиться – это LDA и relevance feedback.

Общая схема рекомендаций на основе текстового контента страницы приблизительно такова. Сначала по всем сайтам собирается полезный контент (отбрасывается реклама, меню и т.д.). Слова в тексте проходят предварительную обработку, то есть отбрасываются стоп-слова и производится лемматизация. Далее составляется единый словарь слов и таблица встречаемости слов в текстах веб-страниц (контент-профили страниц). Слова взвешиваются по TF-IDF и для слишком длинных текстов оставляется только top N самых весомых слов.

Алгоритм relevance feedback составляет профиль тегов (то есть ключевых слов) для каждого пользователя по контент-профилям страниц, которые лайкал этот пользователь.
Новые сайты рекомендуются тем пользователям, прифили тегов которых наиболее коррелируют с контент-профилем вновь добавленной страницы.

Алгоритм LDA действует по-другому. Слова из словаря слов в результате обучения вероятностной модели группируются по фиксированному количеству топиков (например, 100). Для каждой веб-страницы строится вероятностное распределение по топикам (то есть вектор из 100 фич, каждая из которых характеризует, в какой степени данная страница соответствует топику). Для предсказания вероятности лайка для каждого пользователя обучается логистическая регрессия на LDA-фичах страниц, которые смотрел пользователь, в результате чего у каждого пользователя тоже появляется вектор весов по всем LDA-топикам. При добавлении нового сайта для него сначала рассчитываются LDA-фичи, а затем он рекомендуется пользователям с максимальной предсказанной вероятностью лайка, которая легко вычисляется по известным фичам пользователя и веб-страницы.

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

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

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

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

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

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

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

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

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

холодный старт приложения что такое. Смотреть фото холодный старт приложения что такое. Смотреть картинку холодный старт приложения что такое. Картинка про холодный старт приложения что такое. Фото холодный старт приложения что такое

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *