赞
踩
APP启动大概分为冷启动和热启动
冷启动 没有相关APP进程,APP首次启动,或者进程被杀死后再次启动。
热启动 已经有相关APP进程,在用户按back或者home键回到桌面,再次启动app
这里我们优化主要是针对耗时较长的冷启动,首先来看几个官方指标
超过以上时间被认为是需要对app启动进行优化
adb shell am start -W -n [packagename]/[packagename.SplashActivity]
ThisTime:最后一个启动的Activity的启动耗时
TotalTime:自己的所有Activity的启动耗时
WaitTime: ActivityManagerService启动App的Activity时的总时间(包括当前Activity的onPause()和自己Activity的启动)
如果你的APP启动时间过长,请优化>>>>>https://www.jianshu.com/p/f5514b1a826c
例如
adb shell am start -W -n com.aaa.bbb/com.main.ui.activity.WelcomeActivity
这里需要注意的是 前后两个 packagename 可能不一样,前者是你的编译环境对应的packagename,后者是你启动Activity的绝对路径。
如果你的APP 在build.gradle中配置了开发,测试,预装环境那么很可能是这样,因为三个环境的包名是不一样的
因为我当时是在debug环境所以前面的package是com.aaa.bbb
注意 applicationIdSuffix是拼接manifest的package 值为包名的。
有人可能觉得太麻烦,更简单的方法
adb shell "logcat | grep START"
adb shell am force-stop packagename
adb shell input keyevent 3
adb shell "dumpsys cpuinfo | grep packagename"
数据表示:这个应用cpu占用率为4.9%,这个过程是在用户(user)中花3.8%的时间,并在内核空间(kernel)花费1.1%的时间
receive是指当前进程接收的数据,transmit是指当前进程发出请求的数据,流量是这两者之和
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。