Android启动优化--工具

这篇文章主要介绍在做启动优化的时候,会用到那些工具。

 

一,启动时间的测量方式

有两种方式,分别为 ADB命令 和 手动打点 。

adb命令

命令格式“ adb shell am start -W packagename/首屏Activity ”, 如下:

时间:
(1)ThisTime:最后一个Activity启动耗时
(2)TotalTime:所有Activity启动耗时
(3)WaitTime:AMS启动Activity的总耗时
三者的关系是:ThisTime <= TotalTime <= WaitTime

 

缺点:
(1)线下使用方便,但是不能带到线上。
(2) ADB 命令输出的时间,并非是严谨,精确的时间。

 

 

手动打点

手动打点的意思是,在被测量代码的前面设置一个点(记录时间),在测量代码后面设置另一个点(减去初始记录的时间)。通常用系统提供的方法:“ System.currentTimeMillis() ” 来记录时间。

手动打点,就是记录时间在 log 日志里,这个时间是比较精确的,也可以在线上使用。

 

 

MultiDex类库

这个工具是用来检查方法是否超标。在android5.0之前,每一个android应用中只会含有一个dex文件,但是这个dex的方法数量被限制在65535之内,这就是著名的64K(64*1024)事件。为了解决这个问题,Google官方推出了这个类似于补丁一样的support-library,MultiDex。

 

二,启动优化的工具

主要有两个:TraceView 和 SysTrace。

工具1:TraceView

(1)图形的形式展现执行时间,调用栈等。

(2)信息全面,包含所有线程。

使用方式:

(1)在被监视的代码开始处:Debug.startMethodTracing("AppTrace");

(2)在被检查的代码结束地方添加:Debug.stopMethodTracing();

(3)文件目录在“storage/sdcard0/Android/data/包名/files/AppTrace.trace”,在Android studio中直接双击这个文件即可。

如下:

 

时间的关系:  Total = self + children

Wall Clock Time 时间: 程序执行的时间,包括CPU执行的时间,比如拿不到锁,等待的时间

Thread Time 时间: CPU执行的时间,

 

总结:

(1)运行时开销严重,整体都会变慢

(2)可能会带偏优化方向。有的函数本来是不耗时的,加上traceView后,耗时10倍。

(3)traceview 与 cpu profiler。现在的Android studio 使用的是cpu profiler工具了,traceview最大的好处是在代码中埋点。

 

工具2:systrace

 

简介

(1)结合Android内核的数据,生成Html报告。

(2)须在API 18以上使用,推荐TraceCompat。

在被测代码的开始处:TraceCompat.beginSection("AppCreate");
在被测代码的结束处:TraceCompat.endSection();

在 Android studio 上点击安装程序到Android设备上;

 

使用方式

(1)python systrace.py -t 10 [other-options] [categories]

(2)官网地址:https://developer.android.com/studio/command-line/systrace

使用命令:

python D:\02_android\08_androidStudio\Sdk\platform-tools\systrace\systrace.py -b 32768 -t 5 -a com.optimize.performance -o performance.html sched gfx view vm am app

 

 

 

 

总结

(1)轻量级,开销小

(2)直观反映CPU利用率

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值