如何排查开机/重启时间长问题

如何排查开机/重启时间长问题

前提条件:抓开机ylog或抓重启串口log。

开机流程:请参见客户文档的详细阶段分析。

定位开机各阶段方法:

显示开机logo时间:在uboot log中检索lcd init关键词,backlight on time:对应的时间即为logo开始显示时间。

Uboot阶段时间:在uboot log中检索consume或boot_reason关键词,enter mode normal前的时间为uboot阶段时间,正常uboot阶段时间在约8S以下为正常。

Kernel阶段时间:在kernel log中检索first stage,对应log中如[ 1.644287]的时间即为kernel阶段时间。

安卓阶段:在android log 中检索boot_progress关键词,出现如下带有时间(单位ms)的记录,并注意各阶段的影响因素。

boot_progress_start: //该时间点偏大,需考虑当前在init.rc中通过insmod装入的KO文件数量是否有客制化增加

boot_progress_preload_start: //该时间点偏大,需检索dex2oat,更新为最新mainline并注意客制化的编译配置

boot_progress_preload_end: //该时间段时间段偏大,需在log中查看preload相同数量classes took的时间,并对比测试机与对比机的IO跑分差异。

boot_progress_system_run:

boot_progress_pms_start:

boot_progress_pms_system_scan_start: //系统APK数量,IO性能

boot_progress_pms_data_scan_start:

boot_progress_pms_scan_end: //内置APK数量,IO性能

boot_progress_pms_ready:

boot_progress_ams_ready: //启动众多系统服务,pms做权限更新

boot_progress_enable_screen: //关注luncher的冷启动时间

如以上开机时间正常,但重启时间长,请抓串口log,关注停止打印log到再次打印log间隔,并在关机log中:

检索ShutdownThread,检查安卓阶段关机时间;检索jumping to kernel,并计算由此到停止打印log的时间。jumping to kernel之前时间为init进程关闭众多服务时间,并针对性排查特定服务关闭环节。如无明显错误,请对比测试机与对比机的CPU跑分差距。

开机动画时间受安卓开机过程影响,排查方法同上。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值