Android開發之Java虛擬機器原理和記憶體配置

來源:互聯網
上載者:User
Android開發之Java虛擬機器原理和記憶體配置作者: Android開發網原創 時間: 2011-04-01

   開發出高效穩定的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應用通常情況的啟動並執行RAM佔用在20MB左右,對於程式美工我們盡量用代碼繪製方式實現,而不是貼圖。下面我們一起看下有關記憶體的使用跟蹤: 首先我們在Eclipse的DDMS中找到Devices裝置管理,選擇需要查看的進程,單擊上方的Update head那個綠色的按鈕,然後切換到Heap頁面,單擊Cause GC按鈕即可,

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.