Android代码优化(一)
来源:互联网 发布:java中数组特点 编辑:程序博客网 时间:2024/06/05 09:23
上个星期写了人生中第一篇博客,觉得感觉还不错,多多总结,对自己的提升还是很大的。昨天去腾讯面试,今天没消息,自觉已跪(),不过也让我知道了自身的不足,Android这条路还长的很,不放弃才是生存之道。
Android性能优化大概有几个方面:(1)代码优化;(2)布局优化;(3)缓存优化(个人理解);(4)调优工具
今天重点总结一下我使用Android Studio调优工具Android Device Monitor的过程(真机调试)。
首先打开自己想要优化的项目,这个不用我多说。然后找到右上方Android Device Monitor按钮:
点击之后稍等片刻,出现Android Device Monitor的界面:
如果真机连接成功,左边Device会有显示。
接着,运行项目,Device会出现一个UI主线程。
手机进入应用后,可以通过Heap来查看当前进程使用的详细情况:
先点击左侧Update Heap(堆)按钮,再点击右侧Cause GC(Garbage Collection)显示
注:Update Heap只需点击一次,它会自动更新
从这里可以看到dataObject(数据对象)和classObject(类对象)的使用情况。
这里,你可以通过不断操作当前应用,来查看dataObject的Totalsize值的变化,它代表当前数据对象的内存总量。
一般情况下,如果代码良好,Totalsize会维持在一个不连续波动的数值范围内,意思是当前对象没有发生不被GC回收的情况发生;但是如果代码中存在有对象被引用没有被释放的话,那么GC就不会回收被引用的对象,Totalsize会随着操作增多而不断累积,那么就有可能发生内存泄露。
注:同样可以观察Android Monitor的Memory窗口或CPU观察,如果Memory有锯齿状的情况,也可能发生内存泄露。
然而这样虽然可以了解APP是否发生内存泄露,但是无法精确找到可能发生内存泄露的Class,那么我们就需要通过另外一种方法。接下来继续介绍。
Android内存分析工具MAT,直接搜MAT即可,下载后解压就可以,不用安装。
DDMS切换到里面的Allocation Tracker窗口,点击Start Tracking,然后Get Allocations。
然后Dump HPROF file导出*.hprof文件,但这个时候还不能直接用MAT打开,需要cmd进入命令行, 然后进入到D:\Android
SDK\platform-tools目录下运行hprof-conv XXX.hprof YYY.hprof,其中XXX.hprof为原文件,YYY.hprof为转化后的文件,特
别注意,要将导出的*.hprof文件先放下\platform-tools目录下,否则转换失败,我有过经验(踩过坑)。之后就可以直接用MAT打开转化后的文件。
饼状图大概可以看出内存使用情况.
如果需要查找对象以及所有的引用,MAT的具体操作可以看看下面这篇博客:
http://blog.csdn.net/aaa2832/article/details/19419679
今天就说这么多了,其他的代码优化,我们慢慢来。。。。
- Android代码优化(一)
- Android代码优化(一)
- Android优化(一)_Java代码优化
- Android代码性能优化技巧 (一)
- Android进阶专题一:代码优化
- Android 应用性能优化(一)JAVA代码优化
- Android优化技术(一)之代码优化篇
- 代码优化(一)
- 项目代码优化(一)
- Android优化之代码优化
- Android性能优化-代码优化
- Android代码优化
- Android代码优化
- Android代码优化
- android 代码优化
- android 代码优化2
- Android代码优化
- Android中的代码优化
- 记录一些UIScrollView的代理方法
- 双向链表的实现
- Leetcode: Zigzag Iterator
- IOS AFNetworking https
- WebRTC
- Android代码优化(一)
- mysql主从配置常用命令
- pom.xml配置文件详解
- 剑指 offer:跳台阶
- 我发现我最不敢面对的是我自己
- 【iOS】Swift中扩展extension与协议protocol
- 超级强大的SVG SMIL animation动画详解
- 七牛---用JAVA生成各种凭证代码
- 在java servlet中获得session中保存对象的值。