Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 中級開發 >> Android開發之Java虛擬機原理和內存分配

Android開發之Java虛擬機原理和內存分配

編輯:中級開發

開發出高效穩定的Android應用我們不得不需要了解下Java虛擬機的原理和內存分配機制,android使用的是Google經過優化的Dalvik Java VM。通常情況下Java編譯過的代碼是一些class文件,通過Java VM的類解析器分析、效驗後執行。Java語言和C/C++有著本質區別的就是內存管理上,Java VM有一個垃圾收集清理器GC可以自動的回收內存。

  Java虛擬機在執行代碼的時候,首先解析Class,查找該類的方法、常量,這些對於常規情況下都編譯成二進制的代碼保存在jar文件中,而對於Java的反射,VM的類加載器需要動態的查找這些類名,雖然節省了編譯時間,但是運行時的查找大大降低運行效率。

  對於android應用來說,手機的RAM相對於PC還小了很多,同時電腦上的主流應用使用的是Visual C++編寫,所以對於手機上已經不占優勢的硬件來講使用Java這樣的內存大戶語言必須嚴格的了解內存釋放有助於提高程序的性能。對於android的內存釋放情況,大家可以在DDMS中的Logcat中看到類似  08:10:18.895: DEBUG/dalvikvm(1281): GC freed 38611 objects / 2097960 bytes in 182ms 這樣的語句。可以大概了解你的應用的對象回收情況,如圖

  android dalvik vm

  android應用通常情況的運行的RAM占用在20MB左右,對於程序美工我們盡量用代碼繪制方式實現,而不是貼圖。下面我們一起看下有關內存的使用跟蹤: 首先我們在Eclipse的DDMS中找到Devices設備管理,選擇需要查看的進程,單擊上方的Update head那個綠色的按鈕,然後切換到Heap頁面,單擊Cause GC按鈕即可,如圖

  如果你在左邊找不到你應用的進程,可以先在手機上運行你的軟件之後即可,同時上面的Update Heap按鈕不要忘記,上圖中標記為紅色的一個都不能少。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved