Android進程與內存及內存泄露

第一部分 Android進程
1.1、Android進程簡介
    每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,而每一個虛擬機實例都是一個獨立的進程空間,不同的應用在不同的進程空間裏運行,當一個虛擬機關閉或意外中止時不會對其它虛擬機造成影響,可以最大程度的保護應用的安全和獨立運行.
    關於此的更多內容可參考《Android Dalvik虛擬機簡介
1.2、Android進程間內存的不可見性
Android進程之間的內存並不是直接可見。
關於此內容參考閱讀《Android中單APK應用多進程
1.3、Android進程內存佔用的最大值
Android進程內存佔用的默認最大值爲16M或32M ,該值只是指dalvik上分配的內存,它不包括在native上分配的內存值.
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中如何查找內存泄露
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章