今天在寫到獲取手機可用記憶體空間的總大小的時候,通過下面的方法去獲取的時候,發現該方法最低支援的版本是16,這顯然是不可取的。
1 public static long gettotalspace(context ctx)經查閱資料後,通過讀取proc/meminfo的資料,發現第一行就是我想要的可用記憶體空間的總大小,通過流的形式讀取了想要的記憶體空間的總大小
1 try然而不禁對proc/meminfo中的其他資料產生了資訊,都代表什麼意思?16 }
17 //將sb轉換成字串,同時注意到資料庫檔案中的單位是kb,為了統一方便使用,轉換成位元組為單位的
18 return long.parselong(sb.tostring())*1024;
19 20 } catch (exception e)
通過adb shell切換到linux環境下,切換到該目錄下,通過cat meminfo得到如下資訊
當然你可以在ddms中找到相應的檔案路徑,匯出來,用記事本開啟檢視,基本是一樣的。
針對這些其他資料,查閱資料後,各自的解釋如下: memtotal: 所有可用ram大小(即物理記憶體減去一些預留位和核心的二進位制**大小)
memfree: lowfree與highfree的總和,被系統留著未使用的記憶體
buffers: 用來給檔案做緩衝大小
cached: 被高速緩衝儲存器(cache memory)用的記憶體的大小(等於 diskcache minus swapcache ).
swapcached:被高速緩衝儲存器(cache memory)用的交換空間的大小,已經被交換出來的記憶體,但仍然被存放在swapfile 中。用來在需要的時候很快的被替換而不需要再次開啟i/o埠。
active: 在活躍使用中的緩衝或高速緩衝儲存器頁面檔案的大小,除非非常必要否則不會被移作他用.
inactive: 在不經常使用中的緩衝或高速緩衝儲存器頁面檔案的大小,可能被用於其他途徑.
hightotal:
highfree: 該區域不是直接對映到核心空間。核心必須使用不同的手法使用該段記憶體。
lowtotal:
lowfree: 低位可以達到高位記憶體一樣的作用,而且它還能夠被核心用來記錄一些自己的資料結構。among many
swaptotal: 交換空間的總大小
swapfree: 未被使用交換空間的大小
dirty: 等待被寫回到磁碟的記憶體大小。
writeback: 正在被寫回到磁碟的記憶體大小。
anonpages:未對映頁的記憶體大小
slab: 核心資料結構快取的大小,可以減少申請和釋放記憶體帶來的消耗。
sreclaimable:可收回slab的大小
sunreclaim:不可收回slab的大小(sunreclaim+sreclaimable=slab)
pagetables:管理記憶體分頁頁面的索引表的大小。
nfs_unstable:不穩定頁表的大小
vmalloctotal: 可以vmalloc虛擬記憶體大小
vmallocused: 已經被使用的虛擬記憶體大小。
vmallocchunk: largest contigious block of vmalloc area which is free
個人覺得上述的總結還是比較好的,這裡引用下,作為乙個擴充套件。。。
android 中layout weight的作用
layout weight 用於給乙個線性布局中的諸多檢視的重要度賦值。所有的檢視都有乙個layout weight值,預設為零,意思是需要顯示多大的檢視就佔據多大的螢幕空 間。若賦乙個高於零的值,則將父檢視中的可 用空間分割,分割大小具體取決於每乙個檢視layout weight 值以及該值在當前...
Android中LayoutParams的用法
寧願做過了後悔,也不要錯過了後悔。本講內容 layoutparams的用法 一 layoutparams的認識 從官方文件可知layoutparams繼承於android.view.viewgroup.layoutparams.layoutparams相當於乙個layout的資訊包,它封裝了layo...
android中layout weight的理解
例如 xmlns android android layout width fill parent android layout height wrap content android background 00ff00 android weightsum 0 android orientation...