mqtt移动开发Android技术知识

内存处理机制

2016-06-30  本文已影响79人  冯奕欢

因为Android内存比较少,16M,有的是24M,虽然有着GC帮我们管理,但是我们还是应该对内存有简单的了解。

内存简介

看图



我们了解一下我们代码申请的数据都放在哪里。

内存区别

内存管理

上面简单介绍了一下Android内存基本知识,下面我们简单介绍一下内存管理机制。
GC帮我们管理者内存,只有被废弃的对象才会被回收。那哪些才是被废弃的?简单的说,没有被引用的对象就是被废弃的对象。Android和Java内存管理相似,采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以作为有向图的起始顶点,该图就是从起始顶点开始的一棵树,根顶点可以到达的对象都是有效对象,GC不会回收这些对象。如果某个对象 (连通子图)与这个根顶点不可达(注意,该图为有向图),那么我们认为这个(这些)对象不再被引用,可以被GC回收。

管理内存是为了防止内存溢出,毕竟Android内存比较少。
发生内存溢出的原因:

解决办法:

说明

以上只是描述一些常用的场景,其实,要减小内存的使用,其实还有很多方法和要求。比如不要使用整张整张的图,尽量使用9path图片。Adapter要使用convertView等等,好多细节都可以节省内存。这些都需要我们去挖掘。

上一篇 下一篇

猜你喜欢

热点阅读