怎么使用Android基准配置文件Baseline Profile方案提升启动速度


这篇“怎么使用Android基准配置文件BaselineProfile方案提升启动速度”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Android基准配置文件BaselineProfile方案提升启动速度”文章吧。官方建议使用Jetpack Macrobenchmark来测试应用在已启动基准配置文件时的性能,然后将这些结果与已停用基准配置文件时的基准进行比较。接入的方式也很简单,如果你的AS版本满足要求,File/New Module/Benchmark就可以了。会在benchmark Module生成一个ExampleStartupBenchmark测试类,将其修改一下变成如下。选择带有Benchmark后缀的build variant,测试结果如下所示:ExampleStartupBenchmark_startUpCompilationModePartial
timeToInitialDisplayMs min 290.7, median 310.5, max 391.2
Traces: Iteration 0 1 2 3 4ExampleStartupBenchmark_startUpCompilationModeNone
timeToInitialDisplayMs min 359.4, median 381.9, max 420.6
Traces: Iteration 0 1 2 3 4timeToInitialDisplayMs– 从系统收到启动 intent 到渲染目标 activity 的第一帧的时间timeToFullDisplayMs– 从系统收到启动 intent 到应用通过reportFullyDrawn方法报告已完成绘制的时间。这个需要你手动调用activity.reportFullDrawn()才会有结果展示,表示此时已完全绘制。Trace: Iteration可以看到每次启动的trace记录,点击数字会跳到Profiler分析界面运行的时候可能会遇到的问题:有配置多渠道(Flavor),然后提示Run configuration ExampleStartupBenchmark is not supported in the current project.Cannot obtain the package.解决办法是benchmark里的flavor保持跟app模块一致就可以了aar依赖找不到解决方案:在benchmark模块的build.gradle中添加Unable to read any metrics during benchmark因为benchmark模块中的benchmark buildtype中debuggable要设为true才行官方文档在benchmark模块处新建一个测试类:新建一个Android9以上版本模拟器(真机不行),注意系统选择不包含Google Api的,执行adb root命令,修改ndk filter添加支持,之后就可以跑上面新建的测试了,执行完成之后基准配置文件会生成于benchmark/build/outputs/connected_android_test_additional_output/flavorDemoBenchmark/Pixel 2处,名字类似于BaselineProfileGenerator_generateBaselineProfile-baseline-prof-20免费云主机域名23-01-30-07-29-28.txt,将之拷贝到app/src/main/目录下,重命名为baseline-prof.txt。官方文档万事俱备,只欠惊喜,验证一下对启动速度有多大提升。在app模块添加以下依赖:连接真机再次跑ExampleStartupBenchmark测试,在不同机型分别得到的结果为:Pixel 1: android 10ExampleStartupBenchmark_compilationPartial
timeToInitialDisplayMs min 1,359.2, median 1,422.4, max 2,583.0 ExampleStartupBenchmark_compilationNone
timeToInitialDisplayMs min 1,454.1, median 1,556.7, max 2,610.3三星S20: android 13ExampleStartupBenchmark_compilationPartial
timeToInitialDisplayMs min 597.2, median 683.9, max 763.4ExampleStartupBenchmark_compilationNone
timeToInitialDisplayMs min 699.5, median 726.1, max 753.5三星S8+: android7ExampleStartupBenchmark_compilationPartial
timeToInitialDisplayMs min 1,089.1, median 1,121.6, max 1,249.4ExampleStartupBenchmark_compilationNone
timeToInitialDisplayMs min 1,147.5, median 1,166.2, max 1,338.2观察数据可以看出,总体来说有一定的提升,特别是在性能低一点的机器会比较明显,但相比于google官方给的文档中的示例结果(提升20%+)还有一点差距,猜测应该跟生成的baseline-prof.txt有关,因为我这里只生成了启动过程到完成第一帧绘制时的热点代码列表,google的例子是生成了到首页并且切换tab的热点代码。此外,基准配置文件也可以用在提升首次打开操作流畅性上,原理也是一样的,只需要在BaselineProfileGenerator处添加首次进入之后的一些操作,比如像官方的例子一样的切换tab、列表滑动,生成新的文件即可。以上就是关于“怎么使用Android基准配置文件BaselineProfile方案提升启动速度”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: Python字典高级用法有哪些

本文小编为大家详细介绍“Python字典高级用法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python字典高级用法有哪些”文章能帮助大家解决疑惑,下面跟着小编的免费云主机域名思路慢慢深入,一起来学习新知识吧。将下面的列表转成字典l = [(‘a’,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/28 20:57
下一篇 02/28 20:57

相关推荐