【转】获取Activity启动时间的三种方式
2014-11-24 09:44
302 查看
应用程序的启动时间也是衡量应用性能好坏的重要指标之一,所以我们来看一下如何获取一个程序启动所需的时间。
获取程序启动的时间有几种方法,详情见下文分析:
方法一:通过log获取。
思路:通过记录开始时间与结束时间,计算时间差来获取启动时间。
在onCreate()方法最后一行加入log.e(“TAG”,”"finish),通过查看logcat中的log输出来计算程序启动时间。
此种方法需要有源代码,并且比较原始,不推荐。
方法二:通过ActivityManager轮训来实现获取启动时间。
思路:通过轮训未出现时间与出现时间,计算时间差来获取启动时间。
此方法较第一种方法,不需要源代码,较精准。
方法三:通过外部调起应用(shell am)的方法来获取启动时间。
思路:通过Android shell 命令来调起应用获取启动时间。
此法获取的启动时间非常精准,可精确到毫秒。
综上三种方法,方法一比较原始但是操作简单,适用于初学者用于要求不高的黑盒测试;方法二技术要求较高,适合于在手机上开发的应用对其他应用来检测启动时间;方法三适用于批量查看应用启动时间,缺点在于必须获取所有应用的LanuchActivity。
获取程序启动的时间有几种方法,详情见下文分析:
方法一:通过log获取。
思路:通过记录开始时间与结束时间,计算时间差来获取启动时间。
在onCreate()方法最后一行加入log.e(“TAG”,”"finish),通过查看logcat中的log输出来计算程序启动时间。
此种方法需要有源代码,并且比较原始,不推荐。
方法二:通过ActivityManager轮训来实现获取启动时间。
思路:通过轮训未出现时间与出现时间,计算时间差来获取启动时间。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActivityManager am = (ActivityManager) getSystemService(this.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appinfo = am.getRunningAppProcesses(); for (RunningAppProcessInfo runningAppProcessInfo : appinfo) { if (runningAppProcessInfo.processName.equals("yourpakagename")) { Log.e("TAG", System.currentTimeMillis() + ""); } } }
此方法较第一种方法,不需要源代码,较精准。
方法三:通过外部调起应用(shell am)的方法来获取启动时间。
思路:通过Android shell 命令来调起应用获取启动时间。
adb shell am start -W -n yourpakagename/MainActivity 或者 adb shell logcat -v time -b events | findstr activity_launch_time
此法获取的启动时间非常精准,可精确到毫秒。
综上三种方法,方法一比较原始但是操作简单,适用于初学者用于要求不高的黑盒测试;方法二技术要求较高,适合于在手机上开发的应用对其他应用来检测启动时间;方法三适用于批量查看应用启动时间,缺点在于必须获取所有应用的LanuchActivity。
相关文章推荐
- github项目解析(八)-->Activity启动过程中获取组件宽高的三种方式
- JAVA获取时间戳的三种方式
- IOS获取当前的系统时间的三种方式
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- Activity启动过程中获取控件宽高的方式
- 启动另外的一个应用程序的Activity(三种方式)
- VC中三种获取本地时间的方式
- 启动另外的一个应用程序的Activity(三种方式)
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- JAVA获取时间戳的三种方式
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 一个应用程序启动另外的一个应用程序的Activity的方法(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- Android 获取系统时间的三种方式
- 启动另外的一个应用程序的Activity(三种方式)(转载)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)