07 | 启动优化(上):从启动过程看启动速度优化
该思维导图由 AI 生成,仅供参考
启动分析
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了应用启动优化对用户体验和核心数据的重要性,并以微信为例,分析了启动过程的关键阶段和可能出现的问题。文章提出了优化和监控应用启动速度的方法,强调了从用户真实体验出发的重要性。具体包括优化工具的选择和使用,以及优化方式的细致分析,如闪屏优化、业务梳理、业务优化、线程优化、GC优化和系统调用优化。通过实例和技术细节的解释,为读者提供了全面的启动优化知识。文章内容丰富,涵盖了技术细节和实用方法,对于应用开发者和技术人员来说具有很高的参考价值。文章还提到了启动优化对性能优化工作的重要性,以及对业务的梳理和优化是最快出成果的。同时,课后练习部分提到了systrace + 函数插桩作为一个非常不错的卡顿排查工具,为读者提供了进一步学习的方向。整体而言,本文内容丰富,涵盖了启动优化的全面知识,对于技术人员来说具有很高的参考价值。
《Android 开发高手课》,新⼈⾸单¥59
全部留言(40)
- 最新
- 精选
- 海贼凯闪屏页需要网络请求怎么进行优化?
作者回复: 一般都是提前准备好闪屏页的,在下一次生效
2019-10-1211 - mentypython systrace.py --list-cate... 请问这种命令在什么环境运行,试了在adb shell中运行不了
作者回复: 这个是在pc的shell环境下执行的,不是在手机的shell里执行的,然后这个脚本的地址在AndroidSdk\platform-tools\systrace 下
2019-03-145 - 黄秀明王老师,请问线程的优先级是否需要考虑?
作者回复: 需要,特别是后台线程优先级过高,导致系统真繁忙时的主线程卡顿。可以去看每个线程的utime stime
2019-02-264 - 66请问对于生成的trace文件,分析的重点应该是在哪几个指标?界面上指标参数有点多
作者回复: 主要还是以主线程的耗时为主,看它会不会因为锁,空转,被抢占,或者本身慢,导致界面刷出来慢了
2019-03-152 - 信仰年轻Unable to select a master clock domain because no path can be found from "SYSTRACE" to "LINUX_FTRACE_GLOBAL 老师,我查看生成的test.log.html报这个错误啊
作者回复: 可以看看其他人的答案
2019-01-201 - this is it请问Sample如何移植到自己的项目中去,我尝试移植一直不成功,还请能给出详细的移植操作步骤,感谢!
作者回复: 主要看出现了什么问题
2019-12-032 - 磊hi 老师,代码如何计算启动耗时啊?ad shell am start -W 计算规则怎么看的?
作者回复: 每个应用的启动结束点都不一样,基本不会是闪屏的时候。所以一般都是应用内部自己的启动统计框架
2019-03-20 - Egos张老师,你好!我们app 统计耗时和文章说的差不多,在主页onWindowFocusChanged 时计算最终时长。分析的时候发现在主页onResume 和onWindowFocusChanged 之间的时间差很大,看了源代码以后发现onResume 和onWindowFocusChanged 之间会执行ViewRootImpl#performMeasure,但是performMeasure 也远小于他们的时间差(大概小了1倍)。这种情况该怎么去分析呢,有办法dump 这段时间有什么耗时操作?
作者回复: Systrace和traceview都可以把
2019-03-18 - 炸山哥张老师,请问project.getProperties().get("android").registerTransform跟示例的注册Transform方式哪一种更好点呢?我见上面也有人问了同样的问题。
作者回复: 因为我们是想修改原来transform的逻辑,通过hook的方式可以控制的更好,而且关键还有时序的问题。
2019-02-24 - iniesta2014使用此插件集成到项目里面,然后打开生成的trace.html ,报了“Unable to select a master clock domain because no path can be found from "SYSTRACE" to "LINUX_FTRACE_GLOBAL". 关闭插件可以正常查看trace.html 。前面也有人遇到了
作者回复: 是6.0以下的手机吗? 可以这样使用 cd &ANDROID_HOME/tools ./monitor 直接使用android monitor来进行systrace
2019-01-02