Le démarrage Android est lent?
Mon téléphone a un Quad Core, 3 Go de RAM ... Android (KitKat et Lollipop) prend environ 80 secondes pour démarrer.
Mon téléphone est uniquement dual core avec 1G RAM (Zenfone 4) et je n'ai jamais ce problème. Démarrage à froid en ~ 60 secondes, redémarrage en 40 ish (CyannogenMod 12.1).
certains utilisateurs signalent moins de 10 secondes de temps de démarrage en utilisant Ubuntu avec systemd et environ 20 secondes ...
Cela dépend de la configuration et de ce que vous considérez comme le "temps de démarrage" . Mon ordinateur portable (i5 1st Gen, 4 Go de RAM avec disque tournant) est considéré comme utilisable (démarrage terminé) après environ 90 secondes. Bien sûr, je peux retarder / désactiver certains services pour obtenir un temps de démarrage plus rapide et les démarrer manuellement si nécessaire. Mais à mon avis, selon ma préférence, cela ne comptera pas comme utilisable .
Sur PC vs mobile
Il y a quelques différences que vous devriez considérer lors de la comparaison entre Linux et Mobile Linux. du CPU au noyau . Différences les plus notables:
- En raison de la nature de l'appareil, le processeur mobile est principalement conçu avec la conservation de l'énergie comme considération principale. Cela affecte considérablement les performances.
- Le noyau Android possède des fonctionnalités spécifiques aux mobiles qui peuvent affecter le temps de démarrage et l'accès aux E / S matérielles.
- De plus, le noyau Android est connu pour avoir des problèmes de compatibilité avec mainline / stable. Cela est principalement dû à la préférence du fournisseur de s'en tenir à l'ancienne version du noyau compatible avec leurs pilotes de périphérique. AOSP Marshmallow s'exécute
3.18.10
alors que le noyau stable est actuellement à 4.6.2
.
Alors, qu'est-ce qui rend le démarrage d'Android si lent?
Pourquoi ne vérifions-nous pas? :)
Si vous avez accès à adb et activez déjà les options pour les développeurs , consultez le journal de démarrage à l'aide de
adb logcat -d -b events -v threadtime | grep "boot"
sur mon appareil, voici la sortie:
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
Comme vous pouvez le voir, le temps total de démarrage depuis le démarrage de la machine virtuelle jusqu'au dessin d'écran initial par le gestionnaire de fenêtres est d'environ 40 secondes. Le temps supplémentaire sur l'espace du micrologiciel et du noyau (sur votre réponse liée, cela se traduit par l'étape 1-4) n'est pas inclus.
Notez qu'il faut environ 18 secondes pour traiter l' apk ( boot_progress_pms_*
) du système entier , ce qui correspond à environ 45% du temps de démarrage, ce qui comprend:
- le nettoyage de packages système inexistants et l'installation incomplète de packages,
- valider les applications installées,
- définition du chemin d'accès à la bibliothèque,
- etc (voir: code source complet de PackageManagerService )
Donc, généralement, le temps de démarrage total dépend du nombre de packages (application) installés sur l'appareil. Plus d'application signifie plus d'attente pendant le processus pms. De plus, le démarrage des activités prend environ 5 secondes / 20% du temps de démarrage. Le reste n'est ni significatif ni modifiable en toute sécurité sans connaissance approfondie des comportements du système.
Puis-je faire quelque chose pour accélérer le processus de démarrage?
- Essayez une autre ROM. Sony est l'un des «bons gars» qui offrent un environnement sain aux tweakers. Je recommande AOSP ou Cyanogen . Soyez conscient des limites
- Testez, ne partez pas du principe! Il est facile de supposer que A démarre lentement, B est plus rapide. Une simple commande logcat comme ci-dessus révélerait des informations utiles pour l'analyse comparative de base du temps de démarrage entre les ROM.
- Si vous savez ce que vous faites , le Wiki Linux embarqué a une liste de réglages possibles pour améliorer le temps de démarrage.
Sur l'amélioration du temps de démarrage
Sur votre commentaire
ART a été conçu pour accélérer l'exécution des applications. Qui travaille sur l'un d'eux pour accélérer le démarrage de la boîte ?
À mon avis, le réglage du temps de démarrage est à la fois non nécessaire et offre un gain insignifiant. Puisque votre téléphone restera théoriquement debout la plupart du temps; il est beaucoup plus important de maintenir la stabilité du système (avec le compromis d'un processus de démarrage plus long) pour garantir une disponibilité plus élevée et moins d'erreurs.