app启动性能分析

一、客户端专项测试

1、用户维度

 崩溃(crash,弱网) 
 卡顿(掉帧,gc, cpu) 
 响应慢(启动时间,交互响应,H5加载)
 发热(CPU,mem,io,network, gps等硬件使用)
 耗电快(硬件占用)
 兼容性问题(机型覆盖,回归)

2、技术维度

 崩溃
     - 自动遍历、monkey测试,横竖屏切换,快速进退   
 卡顿(掉帧,gc, cpu) 	
 	- 卡顿测试,内存泄漏测试,method profile 
 响应慢(启动时间,交互响应,h5加载) 
    - 冷热启动、界面切换、h5性能  
 发热(CPU、mem、io、network、gps等硬件使用) 
 	- method profile,gc统计,io统计,流量统计,硬件使用统计,耗电量分析  
 兼容性问题(机型覆盖,回归)
    - 兼容性测试,自动化测试,自动遍历测试,monkey测试

二、APP启动性能分析

1、Activity启动流程:

启动app—创建一个空白窗口–启动进程

①Application OnCreate
	- 加载第三方sdk
②Activity OnCreate
	- 加载自身的逻辑
	- 发送远端数据请求 xxx.json
	- 渲染界面 List

2、App启动性能指标

冷启动:App进程创建(≥5s)
暖启动:App进程存在,但Activity结束(≥2s)
热启动:Activity已创建,从后台到前台(≥1.5s)
首屏启动:第一屏加载完整

整个启动过程可以用以下工具进行分析:
① adb logcat
② 录屏+ 视频拆帧
③ uiautomator等自动化工具200ms巡检界面变化
④ tranceview
⑤ 硬埋点(需研发提前做好埋点)

(1)使用adb logcat

package= com.xueqiu.android
# 清理缓存数据
adb shell pm clear $package
# 停止进程
adb shell am force-stop $ package
# 启动app
adb shell am start -S -W $package/.view.WelcomeActivityAlias
# 获取数据
adb logcat |grep -i displayed

adb logcat结果
startTime :记录刚准备调用startActivityAmdWait()的时间点;
endTime:记录startActivityAndWait()函数调用返回的时间点;
WaitTime: startActivityAndWait()调用耗时;
WaitTime = endTime - startTime

(2)使用ffmpeg拆针

package= com.xueqiu.android
# 清理缓存数据
adb shell pm clear $package
# 强制关闭app
adb shell am force-stop $package
# 录屏并保存到指定路径
adb shell screenrecord --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4 &
# 启动app(或手动启动app)
adb shell am start -S -W $package/.view.WelcomeActivityAlias
# 下载录屏到本地
adb pull / data/local/tmp.xueqiu.mp4 .
# 使用ffmpeg拆帧
ffmpeg -i xueqiu.mp4 -r 10 frames_%03d.jpg

-S表示启动之前先停止应用进程
-W是表示等待对应的activity启动完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值