Android进程与内存及内存泄露

来源:互联网 发布:sql字符串拼接赋值 编辑:程序博客网 时间:2024/05/01 21:19
第一部分 Android进程
1.1、Android进程简介
    每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,而每一个虚拟机实例都是一个独立的进程空间,不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚拟机造成影响,可以最大程度的保护应用的安全和独立运行.
    关于此的更多内容可参考《Android Dalvik虚拟机简介
1.2、Android进程间内存的不可见性
Android进程之间的内存并不是直接可见。
关于此内容参考阅读《Android中单APK应用多进程
1.3、Android进程内存占用的最大值
Android进程内存占用的默认最大值为16M或32M ,该值只是指dalvik上分配的内存,它不包括在native上分配的内存值.
更多内容请参考《Android应用程序的默认最大内存值
1.4、单APK多进程技术
    默认一个APK包就对应一个进程,其进程名就为AndroidManifest.xml文件中 指定的package名。我们可以通过Activity, Service, BroadCastReceiver, ContentProvider的android:process属性来实现单APK多进程
关于此的更多内容请阅读《Android中单APK应用多进程》和《如何在Android中取得当前进程名》
第二部分 Android内存
2.1、Android中如何查看内存
像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存。查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同。
关于此的详细内容请阅读《Android中如何查看内存(上)》和《Android中如何查看内存(下)
2.2、对象的强引用,软应用,弱应用
关于此的详细内容请阅读《对象的强、软、弱和虚引用
2.3、Android中图片占用内存的计算
详细内容请阅读《Android中图片占用内存的计算
2.4、使用LinkedHashMap来实现高效的内存缓冲
详细内容请阅读《LinkedHashMap简介
第三部分 Android内存泄漏
3.1、Android内存泄漏简介
在java程序中,如果已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。
更多内容请阅读《Android内存泄漏简介
3.2、Android中如何查找内存泄露
我们可以在MAT中,对进程的hprof文件进行分析,以便找到内存泄露。
更多内容请参考《Android中如何查找内存泄露
0 0