日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Android應用開發中largeHeap屬性的妙用與潛在風險

來源: 責編: 時間:2024-04-25 08:57:27 170觀看
導讀largeHeap是Android開發中的一個屬性,主要作用是向系統請求為App進程的虛擬機分配更大的堆內存空間。在manifest文件的application節點或activity節點中使用。largeHeap屬性設置為true時,應用可以使用更大的堆內存。具

largeHeap是Android開發中的一個屬性,主要作用是向系統請求為App進程的虛擬機分配更大的堆內存空間。在manifest文件的application節點或activity節點中使用。largeHeap屬性設置為true時,應用可以使用更大的堆內存。具體能為虛擬機分配多大的堆內存,取決于當前設備的相關配置,由dalvik.vm.heapsize后面的配置大小限制。Hon28資訊網——每日最新資訊28at.com

在Android開發中,官方建議開發者應努力減少內存的使用,采用回收和復用的方法,而不是通過增大內存來解決內存問題。當內存過大時,每次垃圾回收(gc)的時間也會變長,可能導致性能下降。Hon28資訊網——每日最新資訊28at.com

largeHeap具體分配大小

largeHeap屬性本身并不直接指定一個具體的內存大小。實際可以看做是一個用于向系統請求為應用進程分配更大的堆內存空間標志。具體能為虛擬機分配多大的堆內存,取決于當前設備的配置和系統的內存管理策略。Hon28資訊網——每日最新資訊28at.com

在Android設備中,每個應用都會有一個內存最大值的限制。在應用的manifest文件中為某個activity或整個應用設置了largeHeap="true"后,這個應用或activity可以嘗試使用比默認限制更大的堆內存。“更大”的堆內存具體有多大,并不是固定的,受到設備總內存、其他應用和系統服務的內存需求,以及Android版本和廠商定制等因素的影響。Hon28資訊網——每日最新資訊28at.com

獲取當前應用可以使用的最大堆內存大小方法:Hon28資訊網——每日最新資訊28at.com

//如果largeHeap屬性被設置為true,將返回一個比默認情況下更大的值。Runtime.getRuntime().maxMemory()//獲得應用正常情況下內存的大小ActivityManager.getMemoryClass();//獲得開啟largeHeap最大的內存大小ActivityManager.getLargeMemoryClass();

在/system/build.prop文件中,可以找到與內存管理相關的設置,如dalvik.vm.heapsize和dalvik.vm.heapgrowthlimit。定義了應用進程堆內存的默認大小和增長限制。Hon28資訊網——每日最新資訊28at.com

通過adb shell查看:Hon28資訊網——每日最新資訊28at.com

cat /system/build.prop

圖片圖片Hon28資訊網——每日最新資訊28at.com

  • 「dalvik.vm.heapstartsize=8m」 相當于Java虛擬機的-Xms配置,用來設置堆內存的初始大小。
  • 「dalvik.vm.heapgrowthlimit=192m」 相當于虛擬機的-XX:HeapGrowthLimit配置,用來設置一個標準的應用的最大堆內存大小。一個標準的應用就是沒有使用android:largeHeap屬性的應用。
  • 「dalvik.vm.heapsize=512m」 相當于虛擬機的-Xmx配置,設置了使用android:largeHeap的應用的最大堆內存大小。
  • 「dalvik.vm.heaptargetutilizatinotallow=0.75」 相當于虛擬機的-XX:HeapTargetUtilization,用來設置當前理想的堆內存利用率。取值位于0與1之間,當GC進行完垃圾回收之后,Dalvik的堆內存會進行相應的調整,通常結果是當前存活的對象的大小與堆內存大小做除法,得到的值為這個選項的設置,即這里的0.75。注意,這只是一個參考值,Dalvik虛擬機也可以忽略此設置。
  • 「dalvik.vm.heapminfree=2m與dalvik.vm.heapmaxfree=8m」 前者對應的是-XX:HeapMinFree配置,用來設置單次堆內存調整的最小值。后者對應的是-XX:HeapMaxFree配置,用來設置單次堆內存調整的最大值。通常情況下,還需要結合上面的-XX:HeapTargetUtilization的值,才能確定內存調整時,需要調整的大小。

使用largeHeap屬性弊端

largeHeap會增加應用的內存使用。雖然可以幫助解決某些OutOfMemoryError(OOM)的問題,但也可能導致系統垃圾回收(GC)的時間變長。垃圾回收是Android系統用于清理不再使用的內存的過程,當堆內存變得更大時,這個過程可能需要更長的時間。可能導致應用在執行某些任務時變得卡頓,尤其是在進行復雜的UI操作時,如RecyclerView的滑動可能會變得異常緩慢。Hon28資訊網——每日最新資訊28at.com

過度使用largeHeap可能會對整個系統的性能產生負面影響。如果每個應用都請求更多的內存,那么系統可用的總內存就會減少。可能導致系統需要更頻繁地進行內存管理操作,如內存交換或殺死后臺進程,以釋放足夠的內存給前臺應用。不僅可能影響前臺應用的性能,還可能影響用戶的多任務體驗。Hon28資訊網——每日最新資訊28at.com

依賴largeHeap來解決內存問題并不是一種長期或可持續的解決方案。更好的做法應該是優化應用的內存使用,確保應用能夠高效地管理其內存資源。Hon28資訊網——每日最新資訊28at.com

largeHeap屬性并不能保證應用一定能夠獲得更多的內存。即使設置了largeHeap="true",系統仍然會根據設備的總內存、其他應用的內存需求以及系統的內存管理策略來決定實際分配給應用的內存大小。Hon28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-85373-0.htmlAndroid應用開發中largeHeap屬性的妙用與潛在風險

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C#中編寫系統操作日志的實踐

下一篇: Java對象不再使用時,為什么要賦值為 null ?

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 三星獲批量產iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續在今年9月舉辦一年一度的秋季新品發布會,有傳言稱發布會將于9月12日舉行,屆時全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 回歸OPPO兩年,一加贏了銷量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創佳績。今年618期間,一加手機全渠道銷量同比增長362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • 聯想的ThinkBook Plus下一版曝光,鍵盤旁邊塞個平板

    ThinkBook Plus 是聯想的一個特殊筆記本類別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據有人爆料,聯想的下一款 ThinkBook Plus 可能更特殊,它
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 主站蜘蛛池模板: 津南区| 西华县| 邳州市| 敖汉旗| 滨州市| 凤山县| 汨罗市| 新余市| 徐汇区| 格尔木市| 靖远县| 旬邑县| 广东省| 廊坊市| 临澧县| 博客| 铜陵市| 旬邑县| 乐都县| 阿拉善左旗| 新乡县| 镇远县| 丰原市| 阿鲁科尔沁旗| 新化县| 荔浦县| 平武县| 营山县| 武穴市| 金湖县| 龙游县| 德惠市| 集贤县| 昌平区| 安泽县| 九寨沟县| 竹山县| 鄂托克前旗| 梨树县| 开平市| 民乐县|