亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android中的位圖

Android中的位圖

波斯汪 2019-12-21 13:18:50
我對位圖對象和內存及其一般分類法有一些疑問。什么是內存或本機位圖?位圖內存與堆內存有何不同?
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

通過野外部署,我發現了以下設備:

  • 限制為16 MiB的設備(Java堆+本機位圖存儲)

  • 限制為24 MiB的設備(Java堆+本機位圖存儲)

24 MiB往往是高分辨率設備,可以使用Runtime.getRuntime()。maxMemory()進行檢測?,F在也有32MiB設備,并且某些植根電話默認情況下具有64MiB。以前,我幾次試圖弄清楚自己發生的事情時都感到困惑。我認為所有設備都將位圖計入堆限制。但是,很難對android機群進行全面的概括。

這是Android上的一個非常討厭的問題,非常令人困惑。此限制及其行為的文獻記載不充分,復雜且極其不直觀。它們還因設備和操作系統版本而異,并具有幾個已知的錯誤。問題的部分原因在于限制不精確-由于堆碎片,您將在實際限制之前達到OOM,并且必須保守地保留一兩個meg緩沖區。更糟糕的是,我有幾臺設備在發生Java OOM異常之前就發生了本機段錯誤(Android本身是100%的錯誤),因此永遠都無法達到極限變得非常重要,因為您甚至無法捕獲本機崩潰。有關我的調查的更多詳細信息,請查看這篇文章。在同一篇文章中,我解釋了如何根據限制衡量使用情況并避免崩潰。

Java堆的大小為Runtime.getRuntime()。totalMemory()。

沒有簡單的方法可以測量本機位圖存儲的大小??梢允褂肈ebug.getNativeHeapAllocatedSize()來衡量整個本機堆,但是只有位圖會計入限制(我認為)。


查看完整回答
反對 回復 2019-12-21
  • 3 回答
  • 0 關注
  • 522 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號