之前碰到的OOM问题,终于很直白的呈现在我的眼前:我尝试了MAT,但是发现不怎么会用。直到今天终于发现了这个新工具: 当我们的App中存在内存泄露时会在通知栏弹出通知: 当点击该通知时,会跳转到具体的页面,展示出Leak的引用路径,如下图所示: LeakCanary 可以用更加直白的方式将内存泄露展 ...
分类:
移动开发 时间:
2018-02-26 15:06:03
阅读次数:
229
在Android性能优化第(一)篇 基本概念中讲了JAVA的四大引用,讲了一下GCRoot,第二篇Memory Monitor检测内存泄露仅仅说了Menmery Monitor的使用,这篇博客谈一下MAT来寻找内存泄露,相对来说,Memory Monitor没有MAT强大,但是在开始介绍MAT之前, ...
分类:
移动开发 时间:
2018-02-26 15:01:19
阅读次数:
218
1, Dalvik & ART Android在4.4之前一直使用的Dalvik虚拟机作为App的运行VM的, 4.4中引入了ART作为开发者备选, 5.0起正式将ART作为默认VM了. 我们首先来简单了解下二者: 1.1 Dalvik 如果只是想简单了解, 个人觉得百度百科上这个Dalvik的介绍 ...
分类:
移动开发 时间:
2018-02-26 13:42:15
阅读次数:
235
上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露的问题,现在通过Android Studio自带工具Memory Monitor 检测出来。性能优化的重要性不需要在强调,但是要强调一下,我并不是一个老司机,嘿嘿!没用过这个工具的,请睁大 ...
分类:
移动开发 时间:
2018-02-26 13:29:45
阅读次数:
183
引言 接App优化之内存优化(序), 作为App优化系列中内存优化的一个小部分. 由于内存相关知识比较生涩, 内存优化中使用到的相关工具, 也有很多专有名词. 对Java内存管理, GC, Android内存管理, Dalvik/ART等知识有一个理论的认识, 可以让我们更好的使用这些工具, 分析内 ...
分类:
移动开发 时间:
2018-02-25 19:17:16
阅读次数:
294
开篇废话 今天我们一起来学习JVM的内存分配,主要目的是为我们Android内存优化打下基础。 一直在想以什么样的方式来呈现这个知识点才能让我们易于理解,最终决定使用方法为:图解+源代码分析。 欢迎访问我的个人博客:senduo's blog 希望能在我们平时开发写代码的时候,能够知道当前写的这段代 ...
分类:
移动开发 时间:
2018-02-25 19:15:38
阅读次数:
233
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的f ...
分类:
移动开发 时间:
2018-02-25 19:14:39
阅读次数:
249
开篇废话 如果我们想要进行内存优化的工作,还是需要了解一下,但这一块的知识属于纯理论的,有可能看起来会有点枯燥,我尽量把这一篇的内容按照一定的逻辑来走一遍。首先,我们为什么要学习垃圾回收的机制,我大概归纳了一下几点: 1.方便我们理解什么样的对象,什么时候,会被系统回收掉 2.有助于我们后面的内存优 ...
分类:
移动开发 时间:
2018-02-25 19:11:41
阅读次数:
217
我们知道,在Android中ViewPager主要是用于多个View的切换,本文不会介绍ViewPager的基本使用,而是介绍怎么对ViewPager的内存优化。ViewPager是继承于ViewGroup,所以它里面会有很多的子View,这里的目的就 ...
分类:
移动开发 时间:
2017-11-16 14:32:38
阅读次数:
179
在Android内存优化方面,我们不可能做到没有大内存的占用情况。 所以有时候要清楚我们的app到底占用了多少内存,哪一步操作占用了多少的内存。 这时候,android的ddms中提供了一个工具,是可是实时查看app运行时的内存使用情况。 下面我以android studio为例。其实eclipse ...
分类:
移动开发 时间:
2017-09-04 17:47:33
阅读次数:
185