Android之基准配置文件

概述

基准配置文件可以略过所包含代码路径的解译和即时 (JIT) 编译步骤,从而使应用首次启动时的代码执行速度即可提高约 30%。

通过在应用或库中分发基准配置文件,Android 运行时 (ART) 可以通过预先 (AOT) 编译来优化指定的代码路径,从而针对每位新用户以及每个应用更新提升性能。这种配置文件引导式优化 (PGO) 可让应用优化启动、减少互动卡顿,并在用户首次启动应用时即可提高整体的运行时性能。

优势

利用基准配置文件,自应用首次运行起,所有用户互动(例如应用启动、切换界面或滚动浏览内容)都会变得更加顺畅。通过提升应用的速度和响应能力,基准配置文件可以提高日活跃用户数和平均回访率。

使用

vbnet 复制代码
AS版本:Android Studio Iguana | 2023.2.1 RC 2
AGP:8.3.0-rc02版本
  1. 选择 File > New > New Module
  2. Templates 面板中选择 Baseline Profile Generator 模板,并对其进行配置
  3. 生成基准配置文件baseline-prof.txt有两种方式
    • 使用./gradlew :app:generateReleaseBaselineProfile命令
    • 运行Generate Baseline Profile for app

方式1:使用./gradlew :app:generateReleaseBaselineProfile命令 同样官网教程中也有提示:

方式2. 运行Generate Baseline Profile for app 提示

vbnet 复制代码
Error: Target module's selected variant is debuggable. Please use Build Variants tools window to change the variant of Test.app.

app模块不能选debug,要选release。

点击运行在底部Run任务栏的Test Results里看到执行的也是:app:generateReleaseBaselineProfilegradle任务

两种方式都会在app\src\release\generated\baselineProfiles文件夹下生成baseline-prof.txt和startup-prof.txt文件(两个txt文件二进制一样)

问题1:针对Build Variants里:app模块变体的选择问题

方式1中,因为是针对Release这个变体运行的,不需要手动更改

方式2 run时,只有release才可生成基准配置文件,故要明确

问题2:两种方式生成的baseline-prof.txt文件对比发现,方式1生成的baseline-prof.txt的文件,部分行会多个S

  1. 启动效果

在StartupBenchmarks文件中,选择run

效果几乎没有

把baseline-prof.txt文件复制到app\src\main\下,再运行

启动效果提升12.2%

推荐做法:生成baseline-prof.txt文件使用 ./gradlew :app:generateReleaseBaselineProfile。 查看效果,在StartupBenchmarks文件中直接run

代码路径

基准配置文件的原理

相关推荐
csj5013 小时前
安卓基础之《(21)—高级控件(3)翻页类视图》
android
2501_9159184113 小时前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
betazhou13 小时前
MySQL相关性能查询语句
android·数据库·mysql
一起养小猫13 小时前
Flutter for OpenHarmony 进阶:Timer组件与倒计时系统深度解析
android·网络·笔记·flutter·json·harmonyos
符哥200813 小时前
Fastjson2.X 使用详解
android·java
月明泉清14 小时前
Android中对于点击事件的深度梳理(三)
android
电饭叔14 小时前
DataFrame和 Series 索引
android·python
lexiangqicheng14 小时前
【全网最全】React Native 安卓原生工程结构与构建机制深度解析
android·react native·react.js
数据蜂巢14 小时前
MySQL 8.0 生产环境备份脚本 (Percona XtraBackup 8.0+)
android·mysql·adb
jingling55514 小时前
uniapp | 基于高德地图实现位置选择功能(安卓端)
android·前端·javascript·uni-app