Android 查看每個應用的最大可用內存

http://blog.csdn.net/vshuang/article/details/39647167?? ?Android 內存管理 &Memory Leak & OOM 分析

單個應用可用的最大內存

Android設備出廠以后,java虛擬機對單個應用的最大內存分配就確定下來了,超出這個值就會OOM。這個屬性值是定義在/system/build.prop文件中的
dalvik.vm.heapstartsize=8m
它表示堆分配的初始大小,它會影響到整個系統對RAM的使用程度,和第一次使用應用時的流暢程度。
它值越小,系統ram消耗越慢,但一些較大應用一開始不夠用,需要調用gc和堆調整策略,導致應用反應較慢。它值越大,這個值越大系統ram消耗越快,但是應用更流暢。

dalvik.vm.heapgrowthlimit=64m // 單個應用可用最大內存
主要對應的是這個值,它表示單個進程內存被限定在64m,即程序運行過程中實際只能使用64m內存,超出就會報OOM。(僅僅針對dalvik堆,不包括native堆)

dalvik.vm.heapsize=384m//heapsize參數表示單個進程可用的最大內存,但如果存在heapgrowthlimit參數,則以heapgrowthlimit為準.
heapsize表示不受控情況下的極限堆,表示單個虛擬機或單個進程可用的最大內存。而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機(這樣設計就會在單個程序崩潰的情況下不會導致整個系統的崩潰)。
注意:在設置了heapgrowthlimit的情況下,單個進程可用最大內存為heapgrowthlimit值。在android開發中,如果要使用大堆,需要在manifest中指定android:largeHeap為true,這樣dvm heap最大可達heapsize。

不同設備,這些個值可以不一樣。一般地,廠家針對設備的配置情況都會適當的修改/system/build.prop文件來調高這個值。隨著設備硬件性能的不斷提升,從最早的16M限制(G1手機)到后來的24m,32m,64m等,都遵循Android框架對每個應用的最小內存大小限制,參考http://source.android.com/compatibility/downloads.html 3.7節。

通過代碼查看每個進程可用的最大內存,即heapgrowthlimit值:
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
int memClass = activityManager.getMemoryClass();//64,以m為單位

或:

$adb shell getprop dalvik.vm.heapgrowthlimit

192m

$adb shell getprop dalvik.vm.heapsize

512m

$adb shell getprop dalvik.vm.heapstartsize

16m

?

http://hukai.me/android-training-managing_your_app_memory/? Android Training - 管理應用的內存

檢查你應該使用多少的內存

正如前面提到的,每一個Android設備都會有不同的RAM總大小與可用空間,因此不同設備為app提供了不同大小的heap限制。你可以通過調用getMemoryClass())來獲取你的app的可用heap大小。如果你的app嘗試申請更多的內存,會出現OutOfMemory的錯誤。

在一些特殊的情景下,你可以通過在manifest的application標簽下添加largeHeap=true的屬性來聲明一個更大的heap空間。如果你這樣做,你可以通過getLargeMemoryClass())來獲取到一個更大的heap size。

然而,能夠獲取更大heap的設計本意是為了一小部分會消耗大量RAM的應用(例如一個大圖片的編輯應用)。不要輕易的因為你需要使用大量的內存而去請求一個大的heap size。只有當你清楚的知道哪里會使用大量的內存并且為什么這些內存必須被保留時才去使用large heap. 因此請盡量少使用large heap。使用額外的內存會影響系統整體的用戶體驗,并且會使得GC的每次運行時間更長。在任務切換時,系統的性能會變得大打折扣。

另外, large heap并不一定能夠獲取到更大的heap。在某些有嚴格限制的機器上,large heap的大小和通常的heap size是一樣的。因此即使你申請了large heap,你還是應該通過執行getMemoryClass()來檢查實際獲取到的heap大小。

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/onelikeone/p/7112184.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455965.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455965.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455965.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分析一段H264視頻數據

分析一段H264視頻數據 Posted on 2007-05-31 09:42 vcommon 閱讀(1968) 評論(8) 編輯 收藏 引用 分析 00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01 H264的數據流分為兩種,一種是NAL UNIT stream(RTP),一種是 bits stream, 兩者可以互相轉換。我們分析的這個…

SVN在vs2013中使用

http://download.csdn.net/download/show_594/9112963 內包含VisualSVN 5.0.1的官方原版安裝包及破解文件VisualSVN.Core.L.dll. 使用方法: 1、運行:VisualSVN-5.0.1.msi 進行原版的安裝。 2、打開VisualSVN的安裝路徑。進入其子目錄bin。將壓縮包內的Vi…

springboot springmvc mybatis_12道重點的Spring Boot面試題,幫你整理好了!

今天跟大家分享下SpringBoot常見面試題的知識。最新2020整理收集的一些面試題(都整理成文檔),有很多干貨,包含mysql,netty,spring,線程,spring cloud等詳細講解,也有詳細…

【數據分析】快速獲取微博用戶數據,圖片,視頻

功能輸出實例運行環境使用說明 下載腳本安裝依賴程序設置設置數據庫(可選)運行腳本按需求修改腳本(可選) 如何獲取user_id添加cookie與不添加cookie的區別(可選)如何獲取cookie(可選&#xff09…

“云計算”越來越重要 但更重要的是“云安全”

據Gartner公司的預測,云安全服務業務繼續保持強勁,2017年最終將達到59億美元的規模,比2016年上漲了21%。 云安全服務市場的增長速度將超過整體信息安全市場。Gartner表示,電子郵件的安全性,網絡安全和身份識…

HTML中Head頭

HTML中Head頭 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>網頁標題</title> </head> <body>網頁顯示內容 </body> </html>HEAD標簽里面負責對網頁進行一些設置以及…

H.264的兩個概念:DC系數和AC系數。 MV預測過程詳解(附圖)

在做熵編碼之前&#xff0c;先明確兩個概念&#xff1a;DC系數和AC系數。 量化后得到的仍是64個系數&#xff0c;量化并沒有改變系數的性質。大家知到DCT變換是將數據域從時&#xff08;空&#xff09;域變換到頻域&#xff0c;在頻域平面上變換系數是二維頻域變量u和v的函數。…

1028. List Sorting (25)

題目鏈接&#xff1a;http://www.patest.cn/contests/pat-a-practise/1028 題目&#xff1a; 1028. List Sorting (25) 時間限制200 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, YueExcel can sort records according to any column. Now you are suppose…

【后端開發】分析抖音后臺架構

最后分享抖音美女爬蟲 https://github.com/wangshub/Douyin-Bot

看日本如何用IoT打造智能工廠

在技術、市場、政策等方面因素的推動下&#xff0c;全球正在掀起一股智能制造的熱潮&#xff0c;越來越多的國家大力推進智能工廠的建設。有機構預測&#xff0c;未來五年智能工廠領域的投資將促進生產力增長27%&#xff0c;預計到2022年年底&#xff0c;21%的工廠將會成為智能…

HTML標題

HTML標題 通過 <h1>、<h2>、<h3>、<h4>、<h5>、<h6>,標簽可以在網頁上定義6種級別的標題。 6種級別的標題表示文檔的6級目錄層級關系&#xff0c;比如說&#xff1a; <h1>用作主標題&#xff08;最重要的&#xff09;&#xff0c;其…

264中 POC的計算方法

作者&#xff1a;jogh.264 參考代碼 JM86 一參數說明 這一節闡述的是encoder.cfg 中的參數對編碼過程的影響 要注意的是encoder.cfg 中的參數跟input 結構體中的變量是一一對應的 ? StartFrame&#xff1a;從視頻流的第幾幀開始編碼 ? FramesToBeEncoded&#xff1a;指明…

c++ 測試串口速率_納米軟件案例之電流控制測試系統

項目背景西安某機電研究所電流控制測試系統軟件需要用記錄儀設置采樣速率對電流數據進行采集&#xff0c;并能夠進行數據實時顯示、保存。為更好的分析實驗現象&#xff0c;需要歷史測試數據可查詢并顯示。目前采用的傳統的手動測試&#xff0c;測試操作繁雜。數據保存困難&…

【Sublime】使用 Sublime 工具時運行python文件

使用 Sublime 工具時報Decode error - output not utf-8解決辦法 在菜單中tools中第四項編譯系統 內最后一項增添新的編譯系統 自動新建 Python.sublime-build文件,并添加"encoding":"cp936"這一行,保存即可 使用python2 則注釋encoding改為utf-8 {&quo…

智慧城市這份試卷 國外城市怎么答題?

在近五年&#xff0c;國內智慧城市建設的熱潮一直增無減。據媒體梳理&#xff0c;透過各地政府工作報告和“十三五”規劃發現&#xff0c;我國95%的副省級城市、76%的地級城市&#xff0c;總計超過500個城市&#xff0c;均在政府工作報告或“十三五”規劃中明確提出&#xff0c…

HTML段落,換行,字符實體

HTML段落,換行,字符實體 html段落 <p>標簽定義一個文本段落&#xff0c;一個段落含有默認的上下間距&#xff0c;段落之間會用這種默認間距隔開&#xff0c;代碼如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"&g…

【python】有意思的python小項目GitHub地址匯總

Licence_plate_recognize 車牌識別 Djang-Stu 基于python的Django框架學生信息管理系統 sklearn-machine-learning 數據分析-機器學習-深度學習【個人學習筆記】 movie_analysis 對電影影評分析生成詞云 spider_doubanTOP 爬取豆瓣電影top250/爬取豆瓣圖書top250 yuyin_re…

CBP詳解

cbp一共6bit&#xff0c;高2bit表示cbpc(2&#xff1a;cb、cr中至少一個4x4塊的AC系數不全為0&#xff1b;1&#xff1a;cb、cr中至少一個2x2的DC系數不全為0&#xff1b;0&#xff1a;所有色度系數全0&#xff09; 低4bit分別表示4個8x8亮度塊&#xff0c;其中從最低一位開始的…

R 包的安裝,使用,更新

R包的使用方法 包就是提供了種類繁多的函數&#xff0c;當然還有它的一些數據集&#xff0c;可以使用這些函數來操作這些數據集&#xff0c;來學習使用。 library()&#xff0c;當前的工作環境里&#xff0c;可以使用的包 包的幫助文檔&#xff1a;help(package"包名"…

nginx 電子書_13本免費的電子書,拿走,不謝

傻白甜程序員13本電子書的清單01《PyTorch官方教程中文版》傻白甜程序員中&#xff0c;后臺回復“pytorch”獲取02《Think Python》傻白甜程序員中&#xff0c;后臺回復“ThinkPython”獲取03《走向分布式》傻白甜程序員中&#xff0c;后臺回復“分布式”獲取04《Nginx教程&…