第一部分 Android進程
1.1、Android進程簡介
每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,而每一個虛擬機實例都是一個獨立的進程空間,不同的應用在不同的進程空間裏運行,當一個虛擬機關閉或意外中止時不會對其它虛擬機造成影響,可以最大程度的保護應用的安全和獨立運行.
1.2、Android進程間內存的不可見性
Android中進程之間的內存並不是直接可見。
1.3、Android進程內存佔用的最大值
Android進程內存佔用的默認最大值爲16M或32M ,該值只是指dalvik上分配的內存,它不包括在native上分配的內存值.
1.4、單APK多進程技術
默認一個APK包就對應一個進程,其進程名就爲AndroidManifest.xml文件中 指定的package名。我們可以通過Activity, Service, BroadCastReceiver, ContentProvider的android:process屬性來實現單APK多進程
第二部分 Android內存
2.1、Android中如何查看內存
像Linux這種現代操作系統的內存使用是很複雜的,因此很難準確的知道你的應用程序使用了好多內存。查看內存使用的方式有很多種,但是各個方式查看到的結果可能會有微略不同。
2.2、對象的強引用,軟應用,弱應用
2.3、Android中圖片佔用內存的計算
2.4、使用LinkedHashMap來實現高效的內存緩衝
第三部分 Android內存泄漏
3.1、Android內存泄漏簡介
在java程序中,如果已經不再使用某個對象,但是因爲仍然有引用指向它,垃圾回收器就無法回收它,當然該對象佔用的內存就無法被使用,這就造成了內存泄露。
3.2、Android中如何查找內存泄露
我們可以在MAT中,對進程的hprof文件進行分析,以便找到內存泄露。