android 性能优化-工具篇

本文介绍如何使用Traceview进行热点函数分析,包括两种主要使用方式及其输出结果解读,并概述dumpsys命令的功能,帮助开发者更好地理解并优化Android应用性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、Traceview

使用TraceView主要有两种方式:

1、直接打开DDMS,选择一个进程,然后按上面的“Start Method Profiling”按钮,等红色小点变成黑色以后就表示TraceView已经开始工作了。然后我就可以滑动一下列表(现在手机上的操作肯定会很卡,因为Android系统在检测Dalvik虚拟机中每个Java方法的调用,这是我猜测的)。操作最好不要超过5s,因为最好是进行小范围的性能测试。然后再按一下刚才按的按钮,等一会就会出现上面这幅图,然后就可以开始分析了。
2、使用android.os.Debug.startMethodTracing();和android.os.Debug.stopMethodTracing();方法,当运行了这段代码的时候,就会有一个trace文件在/sdcard目录中生成,也可以调用startMethodTracing(String traceName) 设置trace文件的文件名,最后你可以使用adb pull /sdcard/test.trace /tmp 命令将trace文件复制到你的电脑中,然后用DDMS工具打开

  目的:找到hotspot,主要包括两种类型的函数:

 1、一类是调用次数不多,但每次调用却需要花费很长时间的函数。在示例代码中,它就是hotspot 1。

 2、一类是那些自身占用时间不长,但调用却非常频繁的函数。在示例代码中,它就是hotspot 2。

 

 Profile Panel各列作用说明

列名

描述

Name

该线程运行过程中所调用的函数名

Incl Cpu Time

某函数占用的CPU时间,包含内部调用其它函数的CPU时间

Excl Cpu Time

某函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间

Incl Real Time

某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间

Excl Real Time

某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间

Call+Recur Calls/Total

某函数被调用次数以及递归调用占总调用次数的百分比

Cpu Time/Call

某函数调用CPU时间与调用次数的比。相当于该函数平均执行时间

Real Time/Call

同CPU Time/Call类似,只不过统计单位换成了真实时间

 2、dumpsys命令

dumpsys + account 
名字功能
account 显示accounts信息
activity 显示所有的activities的信息
cpuinfo显示CPU信息
window显示键盘,窗口和它们的关系
wifi 显示wifi信息
batteryinfo $package_name电量信息及CPU 使用时长
package packagename获取安装包信息
usagestats每个界面启动的时间
statusbar显示状态栏相关的信息
meminfo
内存信息(meminfo $package_name or $pid 
使用程序的包名或者进程id显示内存信息)
diskstats 磁盘相关信息
battery 电池信息
alarm显示Alarm信息

 

参考文章:http://blog.youkuaiyun.com/innost/article/details/9008691 介绍了三种性能分析工具

     http://blog.jobbole.com/78995/    详解traceview

     http://www.open-open.com/lib/view/open1405061994872.html    dumpsys介绍

转载于:https://www.cnblogs.com/lipeil/p/5278546.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值