手机开关机、重启时间优化总结

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

本篇文章主要介绍 Android 开发中 开关机 重启时间 部分知识点,通过阅读本篇文章,您将收获以下内容:

一、zygote,预加载class、resources
二、开机动画进程 bootanimation
三、SystemServer.java 代码逻辑
四、非必要服务请放在system_server进程外启动
五、kernel init 时间过长
六、排查驱动设备初始化是否完成
七、apk dex2oat时间过长
八、尽量少把APP设置为persist
九、定频定核,调高CPU频率,会带来一定的功耗
十、PackageManagerService 扫描apk 优化
十一、关机时间优化
十二、优化第三apk 后台服务
十三、谷歌官方参考资料

开机性能是使用功能和其它因素多方面平衡的结果,片面追求单方面的性能没有太大意义;
有些产品设计开机动画非常酷炫,动画图片过多、高帧率会影响开机速度,这时就需要看是开机速度优先还是体验优先;

具体开机优化方案如下:

一、zygote,预加载class、resources

zygote预加载多了,会影响开机时间,所以需要优化预加载内容。

MTK 平台 开机时间信息保存在 /proc/bootprof下,或mtklog/mobilelog/Aplog下。

开机时间信息

1.bootprof 举例

<< /proc/bootprof >>:
----------------------------------------
0       BOOT PROF (unit:msec)
----------------------------------------
      1612        : preloader
      1915        : lk (Start->Show logo: 981)
----------------------------------------
        34.132076 : ON
        88.563768 :    1-swapper/0       : initcall: of_init    17.915384ms
       131.311461 :    1-swapper/0       : initcall: customize_machine    24.395769ms
       164.462461 :    1-swapper/0       : initcall: param_sysfs_init    16.619385ms
       228.096692 :    1-swapper/0       : initcall: event_trace_init    30.488846ms
       297.817461 :    1-swapper/0       : initcall: populate_rootfs    53.605462ms
       353.950769 :    1-swapper/0       : initcall: mt_i2c_init    16.164154ms
      2367.197389 :    1-swapper/0       : probe: probe=i2c_device_probe drv=mt6311(c0e57f6c)  1998.596236ms
      2367.745697 :    1-swapper/0       : initcall: mt6311_init  1999.229312ms
      2385.294389 :    1-swapper/0       : probe: probe=platform_drv_probe drv=musb-hdrc(c0e5876c)    16.914000ms
      2385.426543 :    1-swapper/0       : initcall: musb_init    17.640462ms
      2503.717235 :    1-swapper/0       : probe: probe=platform_drv_probe drv=mtk-msdc(c0ea070c)    36.834692ms
      2540.662159 :    1-swapper/0       : probe: probe=platform_drv_probe drv=mtk-msdc(c0ea070c)    36.847000ms
      2542.779389 :    1-swapper/0       : initcall: mt_msdc_init    76.216231ms
      2852.160621 :    6-kworker/u8:0    : probe: probe=i2c_device_probe drv=fts_ts(c0e9b9cc)   234.830693ms
      2855.127621 :    6-kworker/u8:0    : probe: probe=platform_drv_probe drv=mtk-tpd(c0e78d4c)   238.288846ms
      2869.938159 :    1-swapper/0       : initcall: battery_init   253.557308ms
      2879.950852 :    1-swapper/0       : Kernel_init_done

     ... ...
 
     29772.775531 :  727-system_server   : AMS:systemRea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值