【转】获取Activity启动时间的三种方式
应用程序的启动时间也是衡量应用性能好坏的重要指标之一,所以我们来看一下如何获取一个程序启动所需的时间。
获取程序启动的时间有几种方法,详情见下文分析:
方法一:通过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。
转载于:https://www.cnblogs.com/xiao-kkp/p/4117997.html
【转】获取Activity启动时间的三种方式相关推荐
- 获取Class对象的三种方式
获取Class对象的三种方式 Object --> getClass() 通过对象.getclass 任何数据类型(包括基本数据类型)都有一个"静态"的class属性 通过类 ...
- 获取class文件对象三种方式
Class类 阅读API的Class类得知,Class 没有公共构造方法.Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的 获取Clas ...
- 反射应用和获取Class对象的三种方式
一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- JS基础-Java Class类以及获取Class实例的三种方式
JS基础-Java Class类以及获取Class实例的三种方式 由于JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,包括类名.包名.父类.实现的接口. ...
- webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...
- Struts2-从值栈获取list集合数据(三种方式)
创建User封装数据类 public class User {private String username;private String password;public String getPass ...
- Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式
1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...
- java反射获取实体类_java 反射获取类对象的三种方式
Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...
最新文章
- IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题
- 如何填写微软2007MVP申请表格以及相关建议
- 考试用计算机反思800字,考试反思作文800字
- 编码规范一 结构与要求
- (一)golang工作区
- Oracle Logminer 说明
- android 百分比loading,牛逼的loading加载效果
- php7 viewmodel,【初念科技】| php框架实例: Laravel之Model Observer模型
- pantone潘通色卡对照表_赶快收藏!快速对色必备:潘通色卡电子版(一)1TPX~113TPX...
- 【Ceres基本使用方法】使用Ceres拟合曲线求解最小二乘问题
- leetcode - Recover Binary Search Tree
- 190514每日一句
- Webmagic爬虫框架
- 个人公众号: AI科技时讯
- 什么是互联网运营?运营小白应该了解的理论基础
- Android面试题收集(有具体答案)
- 重磅!谷歌突然宣布!百度、滴滴懵了
- Qt 之 事件总线模型
- linux中寄存器的作用是什么,c-x86_64汇编器中RBP寄存器的作用是什么?
- storm风暴英雄 tempo_暴雪发布2018《风暴英雄》HGC战队实力排行榜