Android启动时间分析,系统,开机

发表时间:2021-05-11

参看博客:

https://www.jianshu.com/p/30fdf86c3462?from=singlemessage Android开机时间系统优化

https://blog.csdn.net/a04081122/article/details/52314709 Android 开机时间慢问题debug

https://www.jianshu.com/p/6dba42c022a9 Android 开机优化

--------------------------

背景:

目前我的机器,高通msm8909,Android7.1 user版本。

开机大体三个阶段:

1.按下电源键 ,显示小企鹅,到开始Android动画开始 。                           耗时19.97s - 0 = 19.97s

2.开机动画开始到开机动画完成,                                                              耗时 25.31s - 19.97 = 5.34s

3.开机动画完成到进入Launcher3桌面。                                                    耗时38.95s - 25.31 = 13.64s

一共30~40s。

目前宏观上给人的感觉:

1. 开机动画之前,也就是开机logo显示约20s,感觉太长。

2.  开机动画完了之后,进入Android系统界面这里的一段时间,感觉太长。

-------------

我来按照csdn和百度上看的一些博客,实际来一顿操作,分析下时间分别在哪里耗时,然后看下能不能缩短一点时间。顺便熟悉下别人是怎么分析的。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

步骤:

1.在源码下的system/core/init/目录下下的perfboot.py,连接机器,生成一个数据表格

./perfboot.py --iterations=5 --interval=15 -v --output=/home/share/xiao/J416.tsv                  //重启5次,每次间隔15秒, 生成为J416.tsv文件

2.在ubuntu中打开表格,然后利用AVERAGE公式计算平均值到第8行,然后选取第1行和第8行,绘制折线图。

结果:  
     
可以看到我的机器,重启5次,平均启动时间为34.9秒。(当然也可以去设置命令测100次等~
然后也可以看出开机流程:   

    boot_progress_start
            |
    boot_progress_preload_satrt
            |
    boot_progress_preload_end
            |
    boot_progress_system_run
            |
    boot_progree_pms_start
            |
    boot_progress_pms_system_scan_start
            |
    boot_progress_pms_data_scan_satrt
            |
    boot_progress_scan_end
            |
    boot_progress_pms_ready
            |
    boot_progress_ams_ready
            |
    boot_progress_enable_scan
            |
    sf_stop_bootanim
            |
    wm_boot_animation_done


pms:  安装包管理
ams:  activity管理

3. 根据上面参考博客,kernel层的优化,去掉kernel中config里面的没用宏,减少编译到内核的驱动。还有自己写的一些log,都去掉。

去掉的宏包括:

1.带有coresight的宏,全部去掉

2.带有debug的宏,全部去掉

3.明显未使用的,自己认识的驱动的宏,全部去掉

4.宏CONFIG_SERIAL_MSM_HSL和宏CONFIG_SERIAL_MSM_HSL_CONSOLE     (ps: 这两个宏关闭后,串口不会输出log)

下载boot,然后在抓取开机时间数据,如下:

去掉kernel中log和一些宏后,效果还是很明显的。

5次重启平均值,平均开机时间29.05s,较第一次,减少了约6s

-------------------------------------

先写到这儿,参考博客里面还有framework里的优化,后面看下能不看的懂.....先不写

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free