Android性能分析工具的使用

一、Android Studio-Memory Monitor

使用方法

run起你的项目,找到Memory Monitor窗口,选择Memory  

[转]内存变化波形图

另外,还可选择查看CPU和GPU还有NetWork的使用情况。 

网络使用波形图.png

其中NetWork的频繁使用是造成应用耗电的关键,70%左右的电量是被上报数据,检查位置信息,定时检索后台广告信息所使用掉的。如何平衡这两者的电量消耗,就显得非常重要了。

二、Android Studio 1.5 Preview 新玩具-Heap Snapshot

使用方法

同样run起项目,进行一些操作之后点击左下角‘Dump Java Heap’的按钮

每次点击之后会生成一个.hprof的文件

点击一个.hprof文件,查看右侧的analyzer test,能看到两个选项

一个是‘Detect Leaeked Activites’,另一个是'Find Duplicate Strings',点击右上角的绿色播放按钮,会自动分析heap dump去定位泄露的activity和重复的string,出现如下的Analysis Results。

该面板里的信息可以有三种类型:app heap/image heap/zygote heap.

分别代表app 堆内存信息,图片堆内存信息,zygote进程的堆内存信息。

各属性中英文对照表

名称Total CountHeap CountSizeofShallow sizeRetained Size
意义内存中该类的对象个数堆内存中该类的对象个数物理大小对象本身占有内存大小释放该对象后,节省的内存大小
名称depthShallow SizeDominating Size
意义深度对象本身内存大小管辖的内存大小

三、Eclipse-Allocation Tracker(分配跟踪器)

使用方法

点击“Start Tracking”,在应用中执行某个操作,然后点击“Get Allocations”。 

Allocation Tracker

特点

a.需要进行间断的操作

b.可定位到具体某一行代码

四、hierarchyviewer

使用hierarchyviewer查看需要检查的页面的层次,检查页面最深层数, 官方建议最好控制在10层以内

hierarchyviewer

布局层级优化方案:

1). 自定义控件使用merge标签来减少不必要的根节点;

2).使用drawbleleft,代替多添加一个imageview;

3).有时使用relativelayout会比linearlayout需要更少层次就能达到实现效果;

4).使用viewstub来隐藏控件,ViewStub中的布局只有在你需要的时候才会渲染到主界面中;

...

五、leakcanary(Android 和 Java 内存泄露检测框架)

AndroidStudio

https://github.com/square/leakcanary

Eclipse

https://github.com/SOFTPOWER1991/LeakcanarySample-Eclipse

六、手机设置->开发者选项

1. Show GPU Overdraw

Show GPU Overdraw

蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。

优化方案:

Overdraw有时候是因为你的UI布局存在大量重叠的部分,还有的时候是因为非必须的重叠背景。例如某个Activity有一个背景,然后里面 的Layout又有自己的背景,同时子View又分别有自己的背景。仅仅是通过移除非必须的背景图片,这就能够减少大量的红色Overdraw区域,增加 蓝色区域的占比。这一措施能够显著提升程序性能。

Profile GPU Rendering - 选中On screen as bars的选项

每一条柱状线都包含三部分,蓝色代表测量绘制Display List的时间,红色代表OpenGL渲染Display List所需要的时间,黄色代表CPU等待GPU处理的时间。

 

中间有一根绿色的横线,代表16ms,我们需要确保每一帧花费的总时间都低于这条横线,这样才能够避免出现卡顿的问题。





本文作者:佚名
来源:51CTO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值