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 件のコメント:
コメントを投稿