当前位置: 首页 > wzjs >正文

装修设计图网站排名商城建站

装修设计图网站排名,商城建站,软件开发者能看到手机信息吗,公司无网站无平台怎么做外贸先来了解一下几种应用启动的概念: 冷启动(Cold Start):应用完全未启动,模拟全新启动过程。 暖启动(Warm Start):进程仍然存活,但 Activity可能需要重新创建。 热启动&am…

先来了解一下几种应用启动的概念:

冷启动(Cold Start):应用完全未启动,模拟全新启动过程。
暖启动(Warm Start):进程仍然存活,但 Activity可能需要重新创建。
热启动(Hot Start):进程存活,Activity只是从 onStop 恢复到 onResume

adb命令检测

adb shell am start -W com.example.quickdev/com.example.quickdev.ui.activity.SplashActivity

或者使用:

adb shell am start -S -W com.example.quickdev/.ui.activity.SplashActivity

-S 参数会强制停止目标 Activity
-W:等待启动完成并打印耗时(关键参数)

  • 执行结果-冷启动
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.quickdev/.ui.activity.SplashActivity }
Status: ok
LaunchState: COLD
Activity: com.example.quickdev/.ui.activity.SplashActivity
TotalTime: 1573
WaitTime: 1575
Complete
  • 执行结果-热启动
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.quickdev/.ui.activity.SplashActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
LaunchState: HOT
Activity: com.example.quickdev/.ui.activity.HomeActivity
TotalTime: 136
WaitTime: 138
Complete
  • 执行结果-暖启动
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.quickdev/.ui.activity.SplashActivity }
Status: ok
LaunchState: WARM
Activity: com.example.quickdev/.ui.activity.SplashActivity
TotalTime: 259
WaitTime: 262
Complete
字段含义单位备注
Status启动状态-ok 表示成功,error 表示失败
LaunchState启动类型-COLD(冷启动)/WARM(温启动)/HOT(热启动)
Activity实际启动的 Activity-可能被 Intent Filter 重定向
TotalTimeActivity 自身启动耗时毫秒(ms)从创建到首帧完成
WaitTime系统总等待时间毫秒(ms)包括系统资源准备时间
Complete完成标记-仅表示命令执行完毕

启动类型(LaunchState)

  • COLD:完全冷启动(进程不存在)
  • WARM:温启动(进程存在但Activity被销毁)
  • HOT:热启动(Activity仍在栈中)

时间统计原理

  • TotalTime:通过 ActivityRecordwindowsDrawn 时间戳计算
  • WaitTime:包含 AMS(ActivityManagerService)调度时间

WaitTime 包含系统调度开销(如 CPU 竞争),所以总是大于或等于TotalTime


BenchmarkRule

BenchmarkRuleAndroid Benchmark 库中的一个 JUnit 规则(@Rule),用于在 单元测试(JUnit4)环境下进行性能基准测试。它能够测量代码片段的执行时间,并提供 抖动控制精确的 CPU 时间测量,适用于 方法级别的性能评估

使用要求

  • Android 10以上设备运行
  • 装机应用为release版本
  • 测试应用需要在Manifest里面声明:
 <application><profileable android:shell="true"/>
</application>
  • 运行时需在主项目build.gradle指定 androidx.benchmark.junit4.AndroidBenchmarkRunner 作为 runner
 android {defaultConfig {//testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 替换掉这个testInstrumentationRunner "androidx.benchmark.junit4.AndroidBenchmarkRunner"}
}
  • 运行设备要为 userdebug 模式,可 root

Macrobenchmark(宏基准测试)

在项目根目录 New -> Moudle 选择 benchmark 、Macrobenchmark ,Finsh 创建宏基准测试模块。

在这里插入图片描述
定义
宏基准测试主要关注整个应用程序或大部分应用功能的性能表现。它通常测试的是较大的操作或完整的业务流程,比如用户登录、数据加载、界面渲染等。

目的
衡量应用程序在真实使用场景下的总体性能,通常关注用户的整体体验。

示例
1.测试整个应用启动的时间。
2. 测试一个完整的用户交互流程的响应时间,比如从点击按钮到完成操作的时间。
3. 测试应用加载某个大数据集的性能。


当模块创建完毕后,会在清单文件自动生成

        <profileableandroid:shell="true"tools:targetApi="29" />

和主项目的build.gradle 中

        benchmark {initWith releasematchingFallbacks = ['release']signingConfig signingConfigs.release //++}

其中 signingConfig signingConfigs.release 是后面要加的,代表运行的时候指定签名配置。否则会报错:
Exception thrown during onBeforeAll invocation of plugin AndroidTestApkInstallerPlugin: ErrorName: INSTALL_PARSE_FAILED_NO_CERTIFICATES

其他的配置不需要更改,benchmark 模块默认配置如下:

    buildTypes {// This benchmark buildType is used for benchmarking, and should function like your// release build (for example, with minification on). It's signed with a debug key// for easy local/CI testing.benchmark {debuggable = truesigningConfig = debug.signingConfigmatchingFallbacks = ["release"]}}

看别人的 debuggable 不能为true,不过我的为true好像也没什么影响。

启动测试

先打包release版本apk,安装进可 root 设备。接着在 benchmark 模块下的 ExampleStartupBenchmark 类中 启动 startup 方法,左边有个小箭头直接启动即可。

代码介绍如下:

    @Testpublic void startup() {// 调用 mBenchmarkRule.measureRepeated 方法进行重复测量,记录应用启动性能mBenchmarkRule.measureRepeated(// 第一个参数是包名,指定测试的应用包名"com.example.quickdev",// 第二个参数是要收集的性能指标,这里使用的是 StartupTimingMetric 来度量启动时间Collections.singletonList(new StartupTimingMetric()),// 第三个参数是编译模式,DEFAULT 表示使用默认编译模式CompilationMode.DEFAULT,// 第四个参数是启动模式,COLD 表示冷启动,意味着应用从完全退出状态启动StartupMode.COLD,// 第五个参数是测量次数,这里指定了测量 5 次5,// 第六个参数是一个 Lambda 表达式,表示测量期间需要执行的操作scope -> {// 按下 Home 键,模拟用户离开应用并返回桌面scope.pressHome();// 启动并等待指定应用,等待应用启动完成后再继续执行后续操作scope.startActivityAndWait();// 返回 null,表示操作执行完毕return null;});}
冷启动测试结果

在这里插入图片描述
在这里插入图片描述

暖启动测试结果

在这里插入图片描述
在这里插入图片描述

热启动测试结果

在这里插入图片描述
在这里插入图片描述
可点击右侧测试次数的下标,点进去查看详细的测试信息,在第二张图的左上角可以查看cpu的消耗,左下找到当前应用行,查看代码具体耗时信息,右侧 Frames Chart可查看代码耗时火焰图展示书数据等。可以分析 CPU & 线程使用情况(避免 主线程阻塞)、查看火焰图,找到性能瓶颈(减少不必要的方法调用)

📊 BenchmarkRule vs. Macrobenchmark

  • BenchmarkRule方法级测试,适用于小型、局部代码性能分析(如字符串拼接、循环优化)。
  • MacrobenchmarkUI 级测试,适用于整个应用的性能分析(如 Activity 启动时间、RecyclerView 滚动性能)。

文章转载自:

http://xj27PiXC.rqknq.cn
http://g9jNJppY.rqknq.cn
http://ZMS6nNeE.rqknq.cn
http://Xf1ga5CH.rqknq.cn
http://4pZgGgYT.rqknq.cn
http://PuIZwgVd.rqknq.cn
http://hfPasJS1.rqknq.cn
http://LxEqrqQX.rqknq.cn
http://0x9lQ2RG.rqknq.cn
http://Kp8mF8E0.rqknq.cn
http://oqFhgYGT.rqknq.cn
http://wsuxQRP1.rqknq.cn
http://2biyTkHv.rqknq.cn
http://9LAEmllX.rqknq.cn
http://pIi6eDmM.rqknq.cn
http://pLZkdOcQ.rqknq.cn
http://GGblFhr6.rqknq.cn
http://GuszS7gb.rqknq.cn
http://OXfEqf9I.rqknq.cn
http://9F8BA4iJ.rqknq.cn
http://XlZ9eIlk.rqknq.cn
http://YOTkiZ1T.rqknq.cn
http://L8RJY3X0.rqknq.cn
http://TDZMEqd8.rqknq.cn
http://3On7jhde.rqknq.cn
http://JwWhweBf.rqknq.cn
http://XsgVEOIw.rqknq.cn
http://WD90icwZ.rqknq.cn
http://Piwa5YD4.rqknq.cn
http://dH6pPWA4.rqknq.cn
http://www.dtcms.com/wzjs/701549.html

相关文章:

  • 服务器网站崩溃自己的网站什么做优化
  • 做游戏下载网站赚钱php能区别电脑网站和手机网站吗怎么嵌入到phpcms
  • 外贸网站如何做推广怎么样wordpress 小刀娱乐
  • wp网站建设模板小程序推广网站
  • 红安县城乡建设局网站网络游戏名字
  • 公司广告片拍摄公司杭州seo泽成
  • 怎么自己做微网站吗linux下搭建wordpress
  • 哪些企业网站做的比较好最版网站建设案例
  • 怎么用新浪云做淘宝客网站网站建设平台简介
  • 北京网站优化实战广西网站建设费用
  • 阿里云搭建网站教程网页美工设计心得体会
  • seo网站沙盒期做美食直播哪个网站最好
  • 网站开发电脑内存要多少电子商务 网站前台功能
  • 做网站公司什么条件做物流网站
  • 什么网站上面能接点小活做自己app的制作费用多少
  • 网站开发属于软件开发行业吗青岛网站建设哪家更好
  • 苏州公司做网站织梦做的网站别人提交给我留的言我去哪里看
  • 商城网站开发需要多少钱企业网站的建立标准
  • 诚信网站体系建设工作总结网站加v怎么做
  • 哈尔滨公司网站建设多少钱广告设计公司实习周记
  • 大型商城网站建设方案一站式婚庆公司
  • 档案网站的建设方案域名注册成功后怎么使用网站
  • 企业网站空间在哪里深圳家具设计公司排名
  • 如何检测做的网站的兼容性长春火车站停车场24小时收费标准
  • 网站设计服务费英文成功的电商网站
  • 怎么把自己做的网站放上网络那个网站做图片好看
  • 如何免费弄一个网站wordpress的数据库
  • 做网站软件 手机会展门户网站源码
  • 沈阳建网站 哪家好官方网站模板
  • 怎么做网站编辑上海服装外贸公司排名