当前位置:   article > 正文

内存优化 . 内存泄露 内存溢出 内存抖动 分析与解决.android stido 工具_安卓stido工具定位内存

安卓stido工具定位内存

内存分配
dalvik 5.0之前
art 5.0之后用

根据运行的特定的数据类型 不同分配内存

卡顿 是怎么形成的 卡顿的解决方式 ANR

讲下 GC 回收导致 画面卡顿的问题:

这里写图片描述

比如自定义view 中
绘制第一个画面 ,绘制完 以后 再绘制第二个画面 把第一个页面会的回收掉.时间16毫秒

一般手机 刷新频率60hz, 1秒钟 刷新60次 , 那么 每隔16ms 就需要重新绘制一次 ,假如自定义view的计算超过16ms ,那么就会形成卡顿的情况 ,第二个画面就没有刷新上去. 就会形成卡顿.

例如 : 在一个长期运行循环的最内侧创建对象, 那么就会不断增加,很多数据会污染内存堆, 导致GC 回收,由于 这中额外的内存压力导致 GC非正常回收,导致多次回收.就形成卡顿.

需要内存优化.

工具1 momory monitor

作用 : 跟踪APP内存变化的情况.
含义: 内存 监测
视图方式观看 内存变化.

工具2 heap viewer

作用: 获取内存堆 的快照.
含义: 堆栈快照
位置 : 在device monitor 中

问题 1 : 内存泄露, 观察 momory monitor 出现,内存不断增加 内存不断增加情况 然后降低.

工具 使用

通过 heap viewer 查看

说下内存泄露的情况:
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出.

http://blog.csdn.net/cyq1028/article/details/19980369 这篇文章讲的不错 不过他用的是Eclipse的查看 工具,我用的studio . studio 的这个比较好.

解决方式: 最简单的方式. 可以添加一个清理方法. 防止内存泄露 .

解决: 跟踪内存分配

问题2 内存抖动: 通过momory monitor 发现 出现内存忽上忽下 形成针尖状的情况.

这里写图片描述

工具 3 allocation tracking 使用

含义: 分配-跟踪
最重要的功能 :
可以跟踪出现问题的源代码, 上面两个工具只能观察现象.

http://www.th7.cn/Program/Android/201602/764859.shtml 所用工具的具体使用

工具4 Trace View

含义: 分配 视图
http://blog.jobbole.com/78995/ 连接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/651761
推荐阅读
相关标签
  

闽ICP备14008679号