Android獲取系統(tǒng)儲(chǔ)存以及內(nèi)存信息的方法(二)
Android獲取儲(chǔ)存信息以及內(nèi)存信息可以用adb命令查看。
adb查看系統(tǒng)內(nèi)存信息以及儲(chǔ)存信息:
命令:adb shell cat /proc/meminfo
代碼:
private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo"; /** * 獲取手機(jī)內(nèi)存總大小 * @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+", "")); //如果為正整數(shù)就說明數(shù)據(jù)正確的,確保在Double.parseDouble中不會(huì)異常 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"; } /** * 獲取手機(jī)剩余內(nèi)存大小 * @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+", "")); //如果為正整數(shù)就說明數(shù)據(jù)正確的,確保在Double.parseDouble中不會(huì)異常 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 獲取手機(jī)儲(chǔ)存大小:
命令:adb shell cat /proc/partitions
代碼:
private static final String FILENAME_PROC_EMMCINFO = "/proc/partitions"; /** * 獲取手機(jī)儲(chǔ)存大小 * @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); //如果為正整數(shù)就說明數(shù)據(jù)正確的,確保在Double.parseDouble中不會(huì)異常 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"; }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android-ViewModel和LiveData使用詳解
這篇文章主要介紹了Android-ViewModel和LiveData使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android實(shí)現(xiàn)動(dòng)態(tài)改變shape.xml中圖形的顏色
這篇文章主要介紹了Android實(shí)現(xiàn)動(dòng)態(tài)改變shape.xml中圖形的顏色,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android?Gradle?插件自定義Plugin實(shí)現(xiàn)注意事項(xiàng)
這篇文章主要介紹了Android?Gradle?插件自定義Plugin實(shí)現(xiàn)注意事項(xiàng),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-06-06Android開發(fā)實(shí)現(xiàn)跟隨手指的小球效果示例
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)跟隨手指的小球效果,涉及Android圖形繪制、事件響應(yīng)、界面布局等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04深入分析Android NFC技術(shù) android nfc開發(fā)
本篇文章我們對(duì)android開發(fā)中nfc技術(shù)做了全面的原理分析以及實(shí)現(xiàn)過程,需要的讀者們一起參考一下吧。2017-11-11Android游戲開發(fā) 自定義手勢(shì)--輸入法手勢(shì)技術(shù)
本文主要介紹 Android游戲開發(fā)中自定義手勢(shì)--輸入法手勢(shì)技術(shù),這里提供了實(shí)現(xiàn)效果圖以及示例代碼,有開發(fā)手機(jī)游戲的朋友可以參考下2016-08-08Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法,涉及Android針對(duì)應(yīng)用相關(guān)信息的獲取操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-02-02Android SQLite數(shù)據(jù)庫增刪改查操作的使用詳解
本篇文章介紹了,在Android中SQLite數(shù)據(jù)庫增刪改查操作的使用詳解。需要的朋友參考下2013-04-04