具体的には、Android デバイスのシステム情報をプログラムで見つけようとしています。
- 羊
- CPU速度
- # コア、アーキテクチャなど
この情報を指定する Android クラスはありますか。私は android.board ライブラリを使用していますが、必要なものがすべて揃っているわけではないようです。
私が何をしたかをお話ししましょう。このスレッドにアクセスする他の人は、手順を知ることができます。
1) /proc/meminfo コマンドを解析します。ここで参照コードを見つけることができます: Get Memory Usage in Android 2) 以下のコードを使用して、現在の RAM を取得します。
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
注: 注意してください - 合計メモリを計算する必要があるのは 1 回だけです。そのため、ポイント 1 をコード内で 1 回だけ呼び出してから、ポイント 2 のコードを繰り返し呼び出すことができます。
必要な情報のほとんどを/proc/cpuinfo
ファイルから取得できます。そのファイルをロードして解析する方法に関するチュートリアルは次のとおりです。http://www.roman10.net/how-to-get-cpu-information-on-android/
さらに、RAMに関する情報は/proc/meminfo
ファイルから取得できます
Agarwalの回答は非常に役に立ちました。アクティビティで空きメモリを計算するのではなく、アプリケーション コンテキストをシステム ユーティリティ ファイルに渡すため、少し変更する必要がありました。
主な活動から:
public class MyActivity extends Activity {
...
public void onCreate(Bundle savedInstanceState) {
...
MySystemUtils systemUtils = new MySystemUtils(this); // initializations
...
}
}
SystemUtils ファイル内:
MySystemUtils (Context appContext) { // called once from within onCreate
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = ActivityManager)appContext.getSystemService(Activity.ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
}