android app內(nèi)存使用限制

1. app內(nèi)存限制

??Android給每個(gè)App分配一個(gè)VM,讓App運(yùn)行在dalvik上,這樣即使App崩潰也不會影響到系統(tǒng)。系統(tǒng)給VM分配了一定的內(nèi)存大小,App可以申請使用的內(nèi)存大小不能超過此硬性邏輯限制,就算物理內(nèi)存富余,如果應(yīng)用超出VM最大內(nèi)存,就會出現(xiàn)內(nèi)存溢出crash。
??由程序控制操作的內(nèi)存空間在heap上,分java heapsizenative heapsize,Java申請的內(nèi)存在vm heap上,所以如果java申請的內(nèi)存大小超過VM的邏輯內(nèi)存限制,就會出現(xiàn)內(nèi)存溢出的異常。native層內(nèi)存申請不受其限制,native層受native process對內(nèi)存大小的限制。

app_heapSize.png

2. 查看Android設(shè)備上的對APP的內(nèi)存限制

主要查看系統(tǒng)配置文件 build.prop,我們可以通過adb shell在 命令行窗口查看

  1. 查看設(shè)備app內(nèi)存限制
    adb shell getprop | findstr dalvik.vm.heapgrowthlimit
    heapgrowthlimit
  2. Android app可以在AndroidManifast.xml里的<application/>標(biāo)簽里加入android:largeHeap="true"開啟內(nèi)存加強(qiáng),開啟內(nèi)存加強(qiáng)后,可使用內(nèi)存會變大,這也是一個(gè)固定值,可以查看
    adb shell getprop | findstr dalvik.vm.heapsize
    heapsize
  3. 可以查看更詳細(xì)的
    adb shell cat /system/build.prop | findstr dalvik.vm
    build.prop
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容