Android開発を相変わらずしておりまして、
端末のメモリ情報をちぃっと取得したいと思いました。
ActivityManager.MemoryInfoってクラスがあるのですが、
API levelによって、totalMemoryが取得出来ないようでしたので、
端末のメモリの最大容量を取得するコードを書いてみました。
メソッドだけですが、貼っておきます。
/**
* Get total memory size on the device
*
* @return memory size
*/
private long getTotalMemorySize() {
try {
Process process = Runtime.getRuntime().exec("cat /proc/meminfo");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()), 1024);
String line = null;
while ((line = br.readLine()) != null) {
// "totalMemTotal: xxxxxxx kB"の部分だけ抜き出す
if (line.contains("MemTotal:")) {
line = line.replaceAll("\\D+", "");
return Long.parseLong(line) * 1024;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
AndroidはLinuxなので、/proc/meminfoに情報があります。
それをcatして、ファイルの中身を出力します。
BurreredReaderで読み込み、
totalMem:のある行の数字部分を抜き出します。
totalMem:はkB単位になっているので、
1024を掛けて戻り値とします。
(もしかしたら、MB表記の端末とかもあるかもしれません)

0 件のコメント:
コメントを投稿