2013-01-17 42 views
5

很多帖子都討論過Android堆大小,到目前爲止,我發現最大堆大小的唯一常見事情是它至少有16MB,但這是API 3以來的限制。記憶,人們會建議使用NDK或任何超出「正常」Android開發的東西。Android版本是否有最小的堆大小?

是否有任何Android設備版本需要設備具有較大的堆大小,以便我可以開始假設一個較大的並且不再在內存上如此便宜?

在清單中是否還有關於大堆(來自API 11 - 蜂窩)的標誌的要求,還是該設備甚至可能忽略它的模糊請求?

這些年來Android的硬件已經有了很大的改進,但即使設備的RAM超過1GB,我們仍然需要在內存上如此便宜。奇怪的是,我們無法從操作系統要求我們獲得特定數量的堆大小,並承諾我們不會再使用這種堆。

回答

9

好了,我終於找到了答案(感謝this post):

裸最小的爲Android的所有版本(包括5),爲16MB。

每個android的版本的要求,可約在這裏讀到:

http://source.android.com/compatibility/downloads.html

您可以通過打開CDD文件,搜索「運行兼容性」(或「虛擬機兼容性瞭解他們「對於舊版本)。同樣,您可以通過搜索「內存和存儲」來找到最低內存要求,但我認爲這只是系統本身的要求。

所以,例如,在4.0.3 - 5最小堆大小是:

  • 16MB:小/正常用LDPI/MDPI,或用大LDPI
  • 32MB:小/正常用tvhdpi/hdpi,或與mdpi大
  • 64MB:小/正常與xhdpi,或大與tvdpi/hdpi,或xlarge與mdpi。
  • 96MB:小/正常與400dpi的,或XLARGE與tvhdpi/HDPI
  • 128MB:小/正常與xxhdpi,或大與xhdpi
  • 192MB:小/正常與560dpi,或大以400dpi的,或XLARGE與xhdpi。
  • 256MB:小/正常與xxxhdpi,或大與xxhdpi
  • 288MB:XLARGE與400dpi的
  • 384MB:大以560dpi,或者XLARGE與xxhdpi
  • 512MB:大與xxxhdpi
  • 576MB:XLARGE用560dpi
  • 768MB:XLARGE與xxxhdpi

我找不到版本3.x最小堆大小,但它可能是一樣的4.0.3。

爲2.1-2。如圖3所示,最小堆大小是:

設備實現以分類爲中等或低 密度屏幕必須配置的Dalvik到存儲器 至少16MB分配給每個應用程序。將屏幕分類爲 高密度或超高密度的設備實現必須配置Dalvik爲每個應用程序分配至少24MB內存的 。請注意,設備 可能會比這些數字分配更多內存。

含義:

  • 媒體屏幕或LDPI - 16MB
  • 華電國際或xhdpi - 24MB

我找不到1.6版本的最小堆大小,但它可能與2.1相同。

另外,我不能找出大堆標誌應該爲每個Android版本(從3.0開始)做什麼。

+0

鏈接到確切的部分[這裏](http://static.googleusercontent.com/media/source.android.com/en/us/compatibility/4.4/android-4.4-cdd.pdf) –

+0

@ChristopherPerry true,但是這個鏈接會隨着版本的變化而改變...... –