码迷,mamicode.com
首页 > 其他好文 > 详细

启动速度

时间:2016-11-29 18:57:19      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:nbsp   ota   activity   isp   开发者选项   定义   pre   splay   数据   

标准如下:

技术分享

 

应用启动的过程:

1.桌面点击图标 2.系统为应用创建进程 3.进程创建自己的组件

Activity的启动过程:

首先执行的是onCreate()、onStart()、onResume(),再等View树全部构建完毕,setContentView中的View全部显示结束了,算作是应用完全启动了

速度测试方法差别:

adb shell am start -W -n 包名/activity 

?  ~  adb shell am start -W com.xys.preferencetest/.MainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xys.preferencetest/.MainActivity }
Status: ok
Activity: com.xys.preferencetest/.MainActivity
ThisTime: 1047
TotalTime: 1047
WaitTime: 1059
Complete
  • ThisTime:最后一个启动的Activity的启动耗时
  • TotalTime:自己的所有Activity的启动耗时
  • WaitTime: ActivityManagerService启动App的Activity时的总时间(包括当前Activity的onPause()和自己Activity的启动) 

缺陷:未包括view的绘制

$ adb logcat | grep “ActivityManager”

Activity启动,到Layout全部显示的过程,这里并不包括数据的加载,因为很多App在加载时会使用懒加载模式,即数据拉取后,再刷新默认的UI

优点:包括了view的绘制

缺点:未包括数据的加载

最跟移器测试相接近的软件方法:

reportFullyDrawn(自定义上报时间)

$ adb logcat | grep “ActivityManager”
ActivityManager: Displayed com.example.launcher/. LauncherActivity: +999ms
ActivityManager: Fully drawn com.example.launcher/. LauncherActivity: +1s999ms

前提条件:API19+,所以,这里需要对SDK版本进行判断

缺陷:API19+,要代码添加 

 

 

帧率的测试:

?  ~ adb shell screenrecord --bugreport /sdcard/test.mp4

备注:

强制冷启动:在『开发者选项』中的Background Process Limit中设置为No Background Processes

 

启动速度

标签:nbsp   ota   activity   isp   开发者选项   定义   pre   splay   数据   

原文地址:http://www.cnblogs.com/penghong2014/p/6114578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!