首次开机时间优化可先参考[FAQ13573]L版本首次开机慢 进行修改。
非首次开机时间优化需要check以下阶段是否存在问题:
Zygote阶段:
一般有两个耗时点:
-
预加载class/resource的时间。需要确认是否有添加很多系统资源。
-
这期间是否有很多GC动作;
SystemServer阶段:
(1)PMS scan package阶段,PMS扫描apk的时间与预置apk的数量及大小有关,预置apk的size越大、数量越多扫描时间会越长。一般建议如果一个apk的elapsed time大于100ms需要删除该预置apk。
01-09 08:30:01.487 750 750 D PackageManager: scan package: /system/framework/framework-res.apk , end at: 16266ms. elapsed time = 87ms.
01-09 08:30:01.499 750 750 D PackageManager: scan package: /system/framework/mediatek-res , end at: 16278ms. elapsed time = 11ms.
01-09 08:30:01.515 750 750 D PackageManager: scan package: /system/priv-app/BackupRestoreConfirmation , end at: 16295ms. elapsed time = 15ms.
01-09 08:30:01.544 750 750 D PackageManager: scan package: /system/priv-app/CDS_INFO , end at: 16323ms. elapsed time = 28ms.
01-09 08:30:01.574 750 750 D PackageManager: scan package: /system/priv-app/CalendarProvider , end at: 16354ms. elapsed time = 31ms.
。。。。。。
01-09 08:30:04.957 750 750 D PackageManager: scan package: /system/app/VoiceUnlock , end at: 19736ms. elapsed time = 29ms.
01-09 08:30:04.986 750 750 D PackageManager: scan package: /system/app/YGPS , end at: 19765ms. elapsed time = 28ms.
01-09 08:30:05.015 750 750 D PackageManager: scan package: /system/app/webview , end at: 19794ms. elapsed time = 29ms.
(2)PMS dexopt阶段:开机时apk作Running dexopt的操作比较耗时,需要参考[FAQ14131] L版本预编译提取apk的odex文件进行修改。
(3)开机过程出现camera I2C transfer timeout,需要排查camera加载慢的原因。
[292:mediaserver][mt-i2c]ERROR,481: id=0,addr: 10, transfer timeout
(4)Check各个service开机初始化过程的耗时情况,如果某个service初始化过程耗时,需要check这个具体service的行为。
BootAnimation阶段:
如果log中有打印Waiting for service media.camera.proxy... ,可以参考[FAQ18051]M版本开机时间优化进行修改;
当开机动画包中图片很多或占内存很大时会出现lowmemory的现象,导致开机较慢。建议将开机动画包bootanimation.zip中part1部分的图片控制在10张以内。
Keyguard阶段:check锁屏绘制是否存在延时
//画锁屏
01-09 08:30:17.710 891 891 D KeyguardViewMediator: handleShow
//锁屏画完
01-09 08:30:17.787 891 891 D KeyguardViewMediator: handleShow exit
相关FAQ:
[FAQ13573]L版本首次开机慢
[FAQ14128]L版本如何关闭默认加密
[FAQ18051]M版本开机时间优化