Андроид загружается медленно?
Мой телефон имеет Quad Core, 3 Гб оперативной памяти ... Android (и KitKat, и Lollipop) требуется около 80 секунд для полной загрузки.
Мой телефон только двухъядерный с 1G RAM (Zenfone 4), и у меня никогда не было этой проблемы. Холодная загрузка через ~ 60 секунд, перезагрузка через 40 минут (CyannogenMod 12.1).
некоторые пользователи сообщают о времени загрузки менее 10 секунд с использованием Ubuntu с systemd и около 20 секунд ...
Это зависит от конфига и того, что вы считали «временем загрузки» . Мой ноутбук (i5 1st Gen, 4 ГБ оперативной памяти с вращающимся диском) считается работоспособным (завершил загрузку) примерно через 90 секунд. Конечно, я могу отложить / отключить некоторые сервисы, чтобы ускорить загрузку и запустить их вручную при необходимости. Но, с моей точки зрения, исходя из моих предпочтений, это не будет считаться полезным .
На ПК против мобильного
Есть некоторые различия, которые вы должны учитывать при сравнении ПК и мобильного Linux. от процессора до ядра . Наиболее заметные различия:
- Из-за особенностей устройства, мобильный процессор в основном разработан с энергосбережения в качестве основного соображения. Это сильно влияет на производительность.
- Ядро Android имеет некоторые специфические для мобильных устройств функции, которые могут влиять на время загрузки и доступ к аппаратному вводу-выводу.
- Кроме того, в ядре Android есть проблемы с совместимостью с mainline / stable. В основном это связано с тем, что вендоры предпочитают использовать старую версию ядра, совместимую с их драйверами устройств. AOSP Marshmallow работает,
3.18.10
пока стабильное ядро работает 4.6.2
.
Итак, что заставляет Android загружаться так медленно?
Почему бы нам не проверить? :)
Если у вас есть доступ к adb и вы уже включили параметры разработчика , проверьте журнал загрузки, используя
adb logcat -d -b events -v threadtime | grep "boot"
на моем устройстве это вывод:
bambang@pamungkas ~ % adb logcat -d -b events -v threadtime | grep "boot"
06-08 04:35:01.417 193 193 I boot_progress_start: 9906
06-08 04:35:03.718 193 193 I boot_progress_preload_start: 12208
06-08 04:35:07.838 193 193 I boot_progress_preload_end: 16328
06-08 04:35:08.158 513 513 I boot_progress_system_run: 16647
06-08 04:35:09.880 513 513 I boot_progress_pms_start: 18370
06-08 04:35:10.204 513 513 I boot_progress_pms_system_scan_start: 18693
06-08 04:35:24.487 513 513 I boot_progress_pms_data_scan_start: 32977
06-08 04:35:28.552 513 513 I boot_progress_pms_scan_end: 37042
06-08 04:35:28.696 513 513 I boot_progress_pms_ready: 37186
06-08 04:35:33.088 513 513 I boot_progress_ams_ready: 41578
06-08 04:35:40.755 513 533 I boot_progress_enable_screen: 49244
Как видите, общее время загрузки от запуска виртуальной машины до начального рисования экрана диспетчером окон составляет ~ 40 секунд. Дополнительное время на прошивку и пространство ядра (в вашем связанном ответе это переводится на шаг 1-4) не включено.
Обратите внимание, что для обработки apk ( boot_progress_pms_*
) всей системы требуется ~ 18 секунд , что означает ~ 45% времени загрузки, которое включает в себя:
- очистка несуществующих системных пакетов и неполная установка пакетов,
- проверка установленных приложений,
- установка пути к библиотеке,
- и т.д. (см .: полный исходный код PackageManagerService )
Таким образом, общее время загрузки зависит от количества пакетов (приложений), установленных на устройстве. Больше приложения означает больше времени ожидания во время процесса pms. Кроме того, запуск действий занимает ~ 5 секунд / 20% времени загрузки. Остальное не может быть ни значительным, ни безопасно изменяемым без глубокого знания поведения системы.
Что я могу сделать, чтобы ускорить процесс загрузки?
- Попробуйте другой ROM. Sony - один из «хороших парней», которые обеспечивают здоровую среду для твикеров. Я рекомендую AOSP или Cyanogen . Просто знайте об ограничениях
- Тест, не думай! Легко сделать предположение, что A загружается медленно, а B быстрее. Простая команда logcat, подобная приведенной выше, покажет некоторые полезные сведения для базового сравнения времени загрузки между ПЗУ.
- Если вы знаете, что делаете , в Embedded Linux Wiki есть список возможных настроек для улучшения времени загрузки.
По улучшению времени загрузки
На ваш комментарий
ART был разработан для ускорения запуска приложений. Кто работает над тем, чтобы ускорить загрузку из коробки ?
На мой взгляд, настройка времени загрузки является ненужной и обеспечивает незначительный выигрыш. Поскольку теоретически ваш телефон будет работать в течение большей части времени; гораздо важнее поддерживать стабильность системы (с учетом более длительного процесса загрузки), чтобы обеспечить более длительное время безотказной работы и меньше ошибок.