Android代码优化(一)

          上个星期写了人生中第一篇博客,觉得感觉还不错,多多总结,对自己的提升还是很大的。昨天去腾讯面试,今天没消息,自觉已跪(哭),不过也让我知道了自身的不足,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

今天就说这么多了,其他的代码优化,我们慢慢来。。。。吐舌头

     





























  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值