Android获取储存信息以及内存信息可以用adb命令查看。
adb查看系统内存信息以及储存信息:
命令:adb shell cat /proc/meminfo
代码:
private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo";
/**
* 获取手机内存总大小
* @return
*/
public static String getTotalMemorySize() {
try {
FileReader fr = new FileReader(FILENAME_PROC_MEMINFO);
BufferedReader br = new BufferedReader(fr, 2048);
// String memoryLine = br.readLine();
String subMemoryLine = "";
String Line = "";
while ((Line = br.readLine()) != null)
{
if (Line.contains("MemTotal:")){
subMemoryLine = Line.substring(Line.indexOf("MemTotal:"));
break;
}
}
br.close();
Matcher mer = Pattern.compile("^[0-9]+$").matcher(subMemoryLine.replaceAll("\D+", ""));
//如果为正整数就说明数据正确的,确保在Double.parseDouble中不会异常
if (mer.find()) {
long memSize = Integer.parseInt(subMemoryLine.replaceAll("\D+", "")) ;
double mem = (Double.parseDouble(memSize + "")/1024)/1024;
NumberFormat nf = new DecimalFormat( "0.0 ");
mem = Double.parseDouble(nf.format(mem));
//Log.e(LOG_TAG,"=========mem================ " + mem);
return String.valueOf(mem);
}
} catch (IOException e) {
e.printStackTrace();
}
return "Unavailable";
}
/**
* 获取手机剩余内存大小
* @return
*/
public static String getFreeMemorySize() {
try {
FileReader fr = new FileReader(FILENAME_PROC_MEMINFO);
BufferedReader br = new BufferedReader(fr, 2048);
// String memoryLine = br.readLine();
String subMemoryLine = "";
String Line = "";
while ((Line = br.readLine()) != null)
{
if (Line.contains("MemFree:")){
subMemoryLine = Line.substring(Line.indexOf("MemFree:"));
break;
}
}
br.close();
Matcher mer = Pattern.compile("^[0-9]+$").matcher(subMemoryLine.replaceAll("\D+", ""));
//如果为正整数就说明数据正确的,确保在Double.parseDouble中不会异常
if (mer.find()) {
long memSize = Integer.parseInt(subMemoryLine.replaceAll("\D+", "")) ;
double mem = (Double.parseDouble(memSize + "")/1024)/1024;
NumberFormat nf = new DecimalFormat( "0.0 ");
mem = Double.parseDouble(nf.format(mem));
//Log.e(LOG_TAG,"=========mem================ " + mem);
return String.valueOf(mem);
}
} catch (IOException e) {
e.printStackTrace();
}
return "Unavailable";
}
adb 获取手机储存大小:
命令:adb shell cat /proc/partitions
代码:
private static final String FILENAME_PROC_EMMCINFO = "/proc/partitions";
/**
* 获取手机储存大小
* @return
*/
public static String getEmmcSize() {
try {
FileReader fr = new FileReader(FILENAME_PROC_EMMCINFO);
BufferedReader br = new BufferedReader(fr, 2048);
String Line = "";
String EmmcSize = "";
while ((Line = br.readLine()) != null)
{
if (Line.length() 7 && Line.lastIndexOf(" ") 0) {
if (Line.substring(Line.lastIndexOf(" ") + 1 , Line.length()).equals("mmcblk0"))
{
EmmcSize = removeAllSpace(Line);
break;
}
}
}
br.close();
if (EmmcSize.length() 7 ){
EmmcSize = (String) EmmcSize.subSequence(4, EmmcSize.length()-7);
Matcher mer = Pattern.compile("^[0-9]+$").matcher(EmmcSize);
//如果为正整数就说明数据正确的,确保在Double.parseDouble中不会异常
if (mer.find()) {
double mem = (Double.parseDouble(EmmcSize)/1024)/1024;
NumberFormat nf = new DecimalFormat( "0.0 ");
mem = Double.parseDouble(nf.format(mem));
return String.valueOf(mem);
}
}
return "0";
} catch (IOException e) {
e.printStackTrace();
}
return "Unavailable";
}
以上就是本文的全部内容,希望对大家的学习有所帮助。