Android Boot ist langsam?
Mein Telefon verfügt über einen Quad Core, 3 Gig RAM ... Android (sowohl KitKat als auch Lollipop) benötigt ca. 80 Sekunden, um vollständig zu starten.
Mein Telefon ist nur Dual Core mit 1G RAM (Zenfone 4) und ich habe dieses Problem nie. Kaltstart in ~ 60 Sekunden, Neustart in 40 Sekunden (CyannogenMod 12.1).
Einige Benutzer berichten von einer Startzeit von weniger als 10 Sekunden mit Ubuntu mit systemd und etwa 20 Sekunden ...
Dies hängt von der Konfiguration und der von Ihnen als "Startzeit" betrachteten Zeit ab . Mein Laptop (i5 1st Gen, 4 GB RAM mit sich drehender Festplatte) gilt nach ca. 90 Sekunden als verwendbar (beendetes Booten). Natürlich kann ich einige Dienste verzögern / deaktivieren, um eine schnellere Startzeit zu erzielen und sie bei Bedarf manuell zu starten. Aber aus meiner Sicht, basierend auf meiner Präferenz, wird das nicht als brauchbar gelten .
Auf PC vs Mobile
Es gibt einige Unterschiede, die Sie beim Vergleich zwischen PC und Mobile Linux berücksichtigen sollten. von der CPU bis zum Kernel . Bemerkenswerteste Unterschiede:
- Aufgrund der Beschaffenheit des Geräts ist die mobile CPU hauptsächlich auf Energieeinsparung ausgelegt. Dies wirkt sich stark auf die Leistung aus.
- Der Android-Kernel verfügt über einige mobile spezifische Funktionen, die sich auf die Startzeit und den Hardware-E / A-Zugriff auswirken können .
- Darüber hinaus hat der Android-Kernel bekanntermaßen Kompatibilitätsprobleme mit Mainline / Stable. Dies ist hauptsächlich auf die Präferenz des Herstellers zurückzuführen, bei der alten Kernel-Version zu bleiben, die mit den Gerätetreibern kompatibel ist. AOSP Eibisch läuft
3.18.10
während Stable - Kernel ist derzeit auf 4.6.2
.
Was macht Android so langsam booten?
Warum überprüfen wir nicht? :) :)
Wenn Sie Zugriff auf adb haben und bereits Entwickleroptionen aktivieren , überprüfen Sie das Startprotokoll mit
adb logcat -d -b events -v threadtime | grep "boot"
Auf meinem Gerät ist dies die Ausgabe:
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
Wie Sie sehen können, beträgt die Gesamtstartzeit vom VM-Start bis zur ersten Bildschirmzeichnung durch den Fenstermanager ~ 40 Sekunden. Zusätzliche Zeit für Firmware- und Kernel-Speicherplatz (auf Ihrer verknüpften Antwort wird dies in Schritt 1-4 übersetzt) ist nicht enthalten.
Beachten Sie, dass die Verarbeitung von apk ( boot_progress_pms_*
) des gesamten Systems ca. 18 Sekunden dauert. Dies entspricht ~ 45% der Startzeit . Dazu gehören:
- Bereinigen nicht vorhandener Systempakete und unvollständige Installation von Paketen,
- Überprüfung installierter Apps,
- Bibliothekspfad einstellen,
- usw. (siehe: vollständiger Quellcode von PackageManagerService )
Daher hängt die Gesamtstartzeit im Allgemeinen von der Anzahl der auf dem Gerät installierten Pakete (App) ab. Mehr App bedeutet längeres Warten während des PMS-Prozesses. Darüber hinaus dauert das Starten von Aktivitäten ~ 5 Sekunden / 20% der Startzeit. Der Rest ist ohne signifikante Kenntnis des Systemverhaltens weder signifikant noch sicher veränderbar.
Kann ich irgendetwas tun, um den Startvorgang zu beschleunigen?
- Versuchen Sie es mit einem anderen ROM. Sony ist einer der "Guten" , die Tweakern eine gesunde Umgebung bieten. Ich empfehle AOSP oder Cyanogen . Seien Sie sich nur der Einschränkungen bewusst
- Test, nicht annehmen! Es ist leicht anzunehmen, dass A langsam und B schneller ist. Ein einfacher logcat-Befehl wie oben würde einige nützliche Informationen für das grundlegende Benchmarking der Startzeit zwischen ROMs anzeigen.
- Wenn Sie wissen, was Sie tun, bietet Embedded Linux Wiki eine Liste möglicher Verbesserungen, um die Startzeit zu verbessern.
Zur Verbesserung der Startzeit
Auf deinen Kommentar
ART wurde entwickelt, um das Ausführen von Apps zu beschleunigen. Wer arbeitet an einem Boot schneller machen aus der Box ?
Meiner Meinung nach ist das Optimieren der Startzeit sowohl unnötig als auch ein unbedeutender Gewinn. Da Ihr Telefon theoretisch die meiste Zeit wach bleibt ; Es ist weitaus wichtiger, die Systemstabilität (mit dem Kompromiss eines längeren Startvorgangs) aufrechtzuerhalten, um eine höhere Betriebszeit und weniger Fehler zu gewährleisten.