参考资料
启动性能
- https://developer.android.com/topic/performance/vitals/launch-time
- https://developer.android.com/topic/performance/rendering/profile-gpu
startuptime(){
adb shell pm clear com.xueqiu.android
adb shell pm grant com.xueqiu.android android.permission.WRITE_EXTERNAL_STORAGE
adb shell pm grant com.xueqiu.android android.permission.READ_PHONE_STATE
adb shell pm grant com.xueqiu.android android.permission.ACCESS_FINE_LOCATION
adb shell pm grant com.xueqiu.android android.permission.ACCESS_COARSE_LOCATION
adb shell pm grant com.xueqiu.android android.permission.READ_CALENDAR
adb shell pm grant com.xueqiu.android android.permission.WRITE_CALENDAR
adb shell pm grant com.xueqiu.android android.permission.READ_EXTERNAL_STORAGE
adb shell pm grant com.xueqiu.android android.permission.RECORD_AUDIO
adb shell pm grant com.xueqiu.android android.permission.CAMERA
adb shell pm grant com.xueqiu.android android.permission.REQUEST_INSTALL_PACKAGES
adb shell pm grant com.xueqiu.android android.permission.MOUNT_UNMOUNT_FILESYSTEMS
adb shell pm grant com.xueqiu.android android.permission.CALL_PHONE
adb shell am start -W -n com.xueqiu.android/.view.WelcomeActivityAlias
adb logcat | grep -i displayed
}
录屏
adb shell screenrecord --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4
adb pull /data/local/tmp/xueqiu.mp4 .
ffmpeg -i xueqiu.mp4 xueqiu.gif
ffmpeg -i xueqiu.mp4 frames_%05d.jpg
!(/uploads/photo/2019/2c6d809b-ead2-4fa5-ab01-758ac720c4d8.gif!large =300x)
网络性能
- tcpdump + wireshark
- charles mitmproxy
webview性能
- chrome://inspect/#devices
- timeline
- w3c performance api
打造自己的性能测试工具或者平台
#driver.excute_script("js")
window.performance.timing.toJSON()
打印timeline以表格的形式
// Get the first entry
const [entry] = performance.getEntriesByType("navigation");
// Show it in a nice table in the developer console
console.table(entry.toJSON());
Android Studio的Profile功能
CPU Profile
MEM profile
while true; do sleep 1;adb shell input swipe $((w/2)) $((h/10*8)) $((w/2)) $((h/10*2));done
Network Profile
耗电量分析
//TODO
systrace
作业1
- 录制自己公司的app启动过程并把gif图片上传上来
作业2
- 使用模拟器打开自己公司的app
- 找出其中的webview部分
- 使用chrome devtools分析webview内容
把页面的具体性能的分析图贴到回复里
作业3
分析自己公司app的卡顿,并给出我在上面贴的那个具体某几帧的卡顿图