android獲取ram
A. android adb shell 怎麼查ram
Android 中查看內存的使用情況集常用adb命令
http://blog.csdn.net/bigconvience/article/details/35553983
B. 索愛 lt15i android系統怎麼查手機的 rom 和ram
設置里有儲存和應用程序設置,儲存是SD卡什麼的。。。應用程序設置里有存儲空間使用情況,有RAM查看。這樣查很不方便,建議你去下載個安卓優化大師,CPU,RAM,ROM等等全在一起
C. 請問android模擬器如何增加RAM
很簡單,點開始菜單,點運行,輸入cmd然後回車,cd 到android sdk裡面的tools目錄中然後輸入如下命令:emulator -memory 512 -partition-size 512 -avd **** 注釋:1:memroy 512是設置ram為 512 M 2:-partition-size 512 是設置rom為512 M 3:-avd **** 是指你需要載入的虛擬設備,其中的****就是虛擬設備的名字如果你在新建虛擬設備時取的名字是android,ram為512M,rom為1024M的話,參考命令如下:emulator -memory 512 -partition-size 1024 -avd android如有不明白的,可以向我咨詢!
D. 安卓開發怎樣獲取RAM大小
獲取RAM總大小
[mw_shl_code=java,true]private long readTotalSize() {
try {
long memTotal = 0;
FileInputStream is = new FileInputStream("/proc/meminfo");
int len = is.read(mBuffer);
is.close();
final int BUFLEN = mBuffer.length;
for (int i=0; i<len && memTotal == 0; i++) {
if (matchText(mBuffer, i, "MemTotal")) {
i += 8;
memTotal = extractMemValue(mBuffer, i);
break;
}
while (i < BUFLEN && mBuffer != '\n') {
i++;
}
}
return memTotal;
} catch (java.io.FileNotFoundException e) {
} catch (java.io.IOException e) {
}
return 0;
}[/mw_shl_code]
獲取剩餘大小
[mw_shl_code=java,true]private long readAvailMem() {
try {
long memFree = 0;
long memCached = 0;
FileInputStream is = new FileInputStream("/proc/meminfo");
int len = is.read(mBuffer);
is.close();
final int BUFLEN = mBuffer.length;
for (int i=0; i<len && (memFree == 0 || memCached == 0); i++) {
if (matchText(mBuffer, i, "MemFree")) {
i += 7;
memFree = extractMemValue(mBuffer, i);
} else if (matchText(mBuffer, i, "Cached")) {
i += 6;
memCached = extractMemValue(mBuffer, i);
}
while (i < BUFLEN && mBuffer != '\n') {
i++;
}
}
return memFree + memCached;
} catch (java.io.FileNotFoundException e) {
} catch (java.io.IOException e) {
}
return 0;
}[/mw_shl_code]
裡面的兩個方法
[mw_shl_code=java,true]private long extractMemValue(byte[] buffer, int index) {
while (index < buffer.length && buffer[index] != '\n') {
if (buffer[index] >= '0' && buffer[index] <= '9') {
int start = index;
index++;
while (index < buffer.length && buffer[index] >= '0'
&& buffer[index] <= '9') {
index++;
}
String str = new String(buffer, 0, start, index-start);
return ((long)Integer.parseInt(str)) * 1024;
}
index++;
}
return 0;
}[/mw_shl_code]
[mw_shl_code=java,true]private boolean matchText(byte[] buffer, int index, String text) {
int N = text.length();
if ((index+N) >= buffer.length) {
return false;
}
for (int i=0; i<N; i++) {
if (buffer[index+i] != text.charAt(i)) {
return false;
}
}
return true;
}[/mw_shl_code]
要是還不能解決?
你來我們群里說吧
這里是開發者互相學習交流的
有大神
讓他們給你解釋你的疑問 q un號: 188168 040
E. 如何獲取 Android 設備的CPU核數,時鍾頻率以及內存大小
Device Year Class 的主要功能是根據 CPU核數、時鍾頻率 以及 內存大小 對設備進行分級。代碼很簡單,只包含兩個類:
DeviceInfo-> 獲取設備參數,
YearClass-> 根據參數進行分級。
下表是 Facebook 公司提供的分級標准,其中Year欄表示分級結果。
Year Cores Clock RAM
2008 1 528MHz 192MB
2009 n/a 600MHz 290MB
2010 n/a 1.0GHz 512MB
2011 2 1.2GHz 1GB
2012 4 1.5GHz 1.5GB
2013 n/a 2.0GHz 2GB
2014 n/a >2GHz >2GB
關於輸出年份的計算方法可以參考源碼,本文只把一些比較常用的功能抽取出來做一個簡要介紹。
獲取 CPU 核數
我們都知道,Linux 中的設備都是以文件的形式存在,CPU 也不例外,因此 CPU 的文件個數就等價與核數。
Android 的 CPU 設備文件位於/sys/devices/system/cpu/目錄,文件名的的格式為cpu\d+。
?
1
2
3
4
5
6
7
8
9
10
root@generic_x86_64:/sys/devices/system/cpu # ls <b>cpu0</b> cpufreq
cpuidle
kernel_max
modalias
offline
online
possible
power
present
uevent
統計一下文件個數便可以獲得 CPU 核數。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public static int getNumberOfCPUCores() {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1) {
// Gingerbread doesn't support giving a single application access to both cores, but a
// handful of devices (Atrix 4G and Droid X2 for example) were released with a al-core
// chipset and Gingerbread; that can let an app in the background run without impacting
// the foreground application. But for our purposes, it makes them single core.
return 1;
}
int cores;
try {
cores = new File("/sys/devices/system/cpu/").listFiles(CPU_FILTER).length;
} catch (SecurityException e) {
cores = DEVICEINFO_UNKNOWN;
} catch (NullPointerException e) {
cores = DEVICEINFO_UNKNOWN;
}
return cores;
}
private static final FileFilter CPU_FILTER = new FileFilter() {
@Override
public boolean accept(File pathname) {
String path = pathname.getName();
//regex is slow, so checking char by char.
if (path.startsWith("cpu")) {
for (int i = 3; i < path.length(); i++) {
if (path.charAt(i) < '0' || path.charAt(i) > '9') {
return false;
}
}
return true;
}
return false;
}
};
回到頂部
獲取時鍾頻率
獲取時鍾頻率需要讀取系統文件 -/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq或者/proc/cpuinfo。
我的 Android 模擬器中並沒有cpuinfo_max_freq文件,因此只能讀取/proc/cpuinfo。
/proc/cpuinfo包含了很多 cpu 數據。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 70
model name : Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
stepping : 1
cpu MHz : 0.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 4
wp : yes
代碼如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public static int getCPUMaxFreqKHz() {
int maxFreq = DEVICEINFO_UNKNOWN;
try {
for (int i = 0; i < getNumberOfCPUCores(); i++) {
String filename =
"/sys/devices/system/cpu/cpu" + i + "/cpufreq/cpuinfo_max_freq";
File cpuInfoMaxFreqFile = new File(filename);
if (cpuInfoMaxFreqFile.exists()) {
byte[] buffer = new byte[128];
FileInputStream stream = new FileInputStream(cpuInfoMaxFreqFile);
try {
stream.read(buffer);
int endIndex = 0;
//Trim the first number out of the byte buffer.
while (buffer[endIndex] >= '0' && buffer[endIndex] <= '9'
&& endIndex < buffer.length) endIndex++;
String str = new String(buffer, 0, endIndex);
Integer freqBound = Integer.parseInt(str);
if (freqBound > maxFreq) maxFreq = freqBound;
} catch (NumberFormatException e) {
//Fall through and use /proc/cpuinfo.
} finally {
stream.close();
}
}
}
if (maxFreq == DEVICEINFO_UNKNOWN) {
FileInputStream stream = new FileInputStream("/proc/cpuinfo");
try {
int freqBound = parseFileForValue("cpu MHz", stream);
freqBound *= 1000; //MHz -> kHz
if (freqBound > maxFreq) maxFreq = freqBound;
} finally {
stream.close();
}
}
} catch (IOException e) {
maxFreq = DEVICEINFO_UNKNOWN; //Fall through and return unknown.
}
return maxFreq;
}
回到頂部
獲取內存大小
如果 SDK 版本大於等於JELLY_BEAN,可以通過ActivityManager來獲取內從大小。
?
1
2
3
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
ActivityManager am = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
am.getMemoryInfo(memInfo);
如果版本低於JELLY_BEAN,則只能讀取系統文件了。
?
1
2
FileInputStream stream = new FileInputStream("/proc/meminfo");
totalMem = parseFileForValue("MemTotal", stream);
完整代碼如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public static long getTotalMemory(Context c) {
// memInfo.totalMem not supported in pre-Jelly Bean APIs.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
ActivityManager am = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
am.getMemoryInfo(memInfo);
if (memInfo != null) {
return memInfo.totalMem;
} else {
return DEVICEINFO_UNKNOWN;
}
} else {
long totalMem = DEVICEINFO_UNKNOWN;
try {
FileInputStream stream = new FileInputStream("/proc/meminfo");
try {
totalMem = parseFileForValue("MemTotal", stream);
totalMem *= 1024;
} finally {
stream.close();
}
} catch (IOException e) {
}
return totalMem;
}
}
F. android系統的手機配置一般都提到RAM+ROM組合,這里的ROM是什麼意思是只讀嗎把軟體安裝到內存是何解
1、 ROM 是 ROM image(只讀內存鏡像)的簡稱,常用於手機定製系統玩家的圈子中。 一般手機刷機的過程,就是將只讀內存鏡像(ROM image)寫入只讀內存(ROM)的過程。
常見的 ROM image 有 img、zip 等格式,前者通常用 fastboot 程序通過數據線刷入(線刷),後者通常用 recovery 模式從 sd刷入(卡刷),固 img 鏡像也被稱為線刷包,zip 鏡像也被稱為卡刷包。 國內的定製系統開發者,經常會陷入自己的產品究竟是應該稱為 OS 還是 UI 的爭論,為了避免此類爭論和表示謙虛,會自稱為 ROM。很多定製系統玩家也會統一將定製系統稱為 ROM。
2、把軟體安裝到內存,其實是軟體要運行,需要佔用內存,所以軟體是要安裝在內存。
G. 安卓系統的手機怎麼查看RAM和ROM有多大
查看rom:
打開系統設置
點擊存儲
向下拖動找到內存設備(有的叫內部存儲)。
總容量顯示了當前的內置模擬sd的容量。
關於這個值和rom容量的對應關系:
顯示0~2.5g,rom為4g
顯示2.5~6.5g,rom為8g
顯示6.5~14g,rom為16g
顯示14~26g,rom為32g
顯示38~58g,rom為64g
顯示更多為128g(目前最大容量)。
查看ram:
打開系統設置
點擊應用
向左滑動屏幕切換到「正在運行」頁面
屏幕下方條狀示意圖顯示了已用、可用ram,加起來結果再加10%就是理論ram值了。
其它的方法:
可以下載手機管家或驗機、跑分軟體,裡面也有詳細配置信息。
H. 怎樣增加安卓手機的虛擬運行內存RAM 怎麼刷謝謝!
朋友,其實不必過於在意android系統的運存大小,系統會幫你管理,android不是windows,剩餘內存大不是就會快,我也是android用戶,以前總用什麼es任務管理器清理小z(Desire Z)後台的程序,而且用得是CM的系統,總保持230M+的運存,可是並沒有什麼體現在使用上,現在用得帶sense的rom,開著動態壁紙,有時候後台就76M的空餘內存,但是一點也不卡,有的時候看會到130M+(很大一部分內存都被sense界面佔用了)依然不卡,android系統的任務管理和資源分配做得不錯,不必過於在意運存,我還真不相信有壓榨乾RAM的android應用呢,一個進程佔用30M、40M了不起了,就算是比較大型的游戲佔用100M+系統也能很好的管理RAM,這時候他會自動釋放後台程序,合理配置資源,用了那種清理RAM的軟體反倒會打亂這機制導致系統變卡。而樓主想用swapper來增加內存,說實話,這就像windows的虛擬內存一樣,不一樣的是虛擬內存基於硬碟,而swap基於儲存卡,儲存卡的讀寫是有次數的,這樣頻繁的讀寫還會減少儲存卡壽命。樓主不要迷信RAM大會增加運行速度。望對樓主有用。