6

具体的には、Android デバイスのシステム情報をプログラムで見つけようとしています。

  • CPU速度
  • # コア、アーキテクチャなど

この情報を指定する Android クラスはありますか。私は android.board ライブラリを使用していますが、必要なものがすべて揃っているわけではないようです。

4

4 に答える 4

11

私が何をしたかをお話ししましょう。このスレッドにアクセスする他の人は、手順を知ることができます。

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 のコードを繰り返し呼び出すことができます。

于 2012-04-19T01:33:02.753 に答える
2

必要な情報のほとんどを/proc/cpuinfoファイルから取得できます。そのファイルをロードして解析する方法に関するチュートリアルは次のとおりです。http://www.roman10.net/how-to-get-cpu-information-on-android/

さらに、RAMに関する情報は/proc/meminfoファイルから取得できます

于 2012-04-18T23:52:16.057 に答える
1

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;
    }
于 2012-08-25T06:34:25.990 に答える