Android性能优化
文章平均质量分 84
肖恩伊森
欢迎评论交流!
展开
-
Android ANR Trace日志阅读分析技巧
Trace日志是指ANR目录下的一份txt文件,Trace日志用于分析应用ANR无响应的问题,,Trace日志的三个关键组成Heap部分、垃圾回收器histograms部分、Thread部分。原创 2024-05-28 09:52:35 · 1169 阅读 · 0 评论 -
内存泄漏面面谈
主要介绍了内存泄漏的关注点是对象,对内存问题进行了分类并且确定本文关注点是内存泄漏,15种内存泄漏判断方式,hprof文件的用法和分析过程,以及memory profiler工具一些基本概念,最后提到了如何触发内存泄漏问题原创 2024-05-28 18:15:00 · 2190 阅读 · 0 评论 -
内存泄漏案例分享4-异步任务流内存泄漏
优化后的效果:优化后可看到Depth为空,GC root 为空,表明没有其他实例引用Activity了,当垃圾回收器扫描到此实例,该实例内存会被回收。还记得开头的问题吗?rxjava就会存在内存泄漏吗?答:会存在,consumer作为Activity的内部类,持有当前Activity的引用,任务未结束,Activity已销毁就会出现内存泄漏subscribe传入的匿名内部类Consumer实例不会造成内存泄漏吗?答:只要是匿名内部类,就很有可能内存泄漏,上例子已经证明会产生内存问题。原创 2024-05-27 17:50:35 · 697 阅读 · 0 评论 -
内存泄漏案例分享3-view的内存泄漏
案例3——view内存泄漏前文提到,profile#Leaks视图无法展示非Activity、非Fragment的内存泄漏,换言之,除了Activity、Fragment的内存泄漏外,其他类的内存问题我们只能自己检索hprof文件查询了。下面有一个极佳的view内存泄漏例子,它的操作步骤为:我们重复三次之后,得到一份hprof文件,下面我们来分析一下内存泄漏问题①输入view的名称②选择view③可以看到分配了3个实例对象④Instance List视图显示,view有3个实例对象及其引用我们原创 2024-05-27 22:15:00 · 1744 阅读 · 0 评论 -
内存泄漏案例分享2-Fragment的内存泄漏
可以看到Fragment内存泄漏的第一个原因,内部类runnable持有了view的实例,每个Runnbale会发送一个延时5秒的消息,消息发送期间,有可能view、fragment已经结束了生命周期,此时产生了内存泄漏。接下来我们来看fragment内存泄漏,老规矩查看fields和references,确保它符合内存泄漏的情形;解决办法也很简单,view离开窗口的时候,释放Handler中消息,释放Runnbale对view 的引用。Fragment#MZBannerView#内部类Runnbale。原创 2024-05-27 21:45:00 · 405 阅读 · 0 评论