Вопрос по android, java – Программно найти информацию о системе Android

6

Я пытаюсь программно найти системную информацию для устройств Android, а именно:

  • RAM
  • CPU speed
  • # cores, architecture, etc.

Существуют ли классы Android, которые определяют эту информацию. Я использовал библиотеку android.board, но, похоже, в ней нет всего, что я хочу.

Ваш Ответ

4   ответа
2

/proc/cpuinfo файл. Вот учебник о том, как загрузить и проанализировать этот файл:http://www.roman10.net/how-to-get-cpu-information-on-android/

Дополнительно информацию об оперативной памяти можно получить из/proc/meminfo файл

Error: User Rate Limit Exceeded
11

что я сделал, поэтому другие, кто посещает эту ветку, могут узнать шаги:

1) parse /proc/meminfo command. You can find reference code here: Получить использование памяти в Android 2) используйте приведенный ниже код и получите текущую оперативную память:

MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;

Примечание: обратите внимание, что - нам нужно рассчитать общий объем памяти только один раз. поэтому вызывайте точку 1 только один раз в своем коде, а затем после, вы можете повторно вызывать код точки 2.

1

поскольку я не вычисляю свободную память в деятельности, а передаю в контексте приложения файл системных утилит:

Из основной деятельности:

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;
    }
2

чтобы получить текущий объем оперативной памяти устройства.

ActivityManager actManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
MemoryInfo memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
long totalMemory = memInfo.totalMem;

Похожие вопросы