Как определить скорость процессора Android?

Я хотел бы узнать, насколько быстро работает устройство, на котором работает приложение для Android?

Есть ли какой-либо API для Android? Или мне нужно сравнивать его самостоятельно?

Если устройство имеет медленный процессор, я бы хотел отключить некоторые трудоемкие операции, такие как анимация, или ограничить максимальное количество одновременных запросов HTTP.

Лучший способ сделать это, на мой взгляд, – следить за временем, которое требуется для выполнения этих действий. Если это занимает слишком много времени, система слишком медленная, и вы можете отключить причудливые функции, пока она не станет достаточно быстрой.

Чтение скорости процессора или других характеристик и попытка оценить скорость системы – плохая идея. Будущие аппаратные изменения могут сделать эти спецификации бессмысленными.

Посмотрите, например, на Pentium 4 и Core 2. Каков более быстрый процессор, 2,4 ГГц Pentium 4 или 1.8 ГГц Core 2? Является ли Opteron с частотой 2 ГГц быстрее, чем 1,4 ГГц Itanium 2? Как вы узнаете, какой ARM-процессор работает быстрее?

Чтобы получить рейтинг скорости системы для Windows Vista и 7, Microsoft фактически сравнивает машину. Это единственный полуточный метод определения возможностей системы.

Похоже, хороший способ – использовать SystemClock.uptimeMillis ().

Попробуйте прочитать /proc/cpuinfo который содержит информацию о процессоре:

  String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; ProcessBuilder pb = new ProcessBuilder(args); Process process = pb.start(); InputStream in = process.getInputStream(); //read the stream 

Пожалуйста, обратитесь к следующей ссылке, которая предоставит данные, относящиеся к процессору

Основываясь на решении @dogbane и этом ответе , это моя реализация, чтобы получить значение BogoMIPS:

  /** * parse the CPU info to get the BogoMIPS. * * @return the BogoMIPS value as a String */ public static String getBogoMipsFromCpuInfo(){ String result = null; String cpuInfo = readCPUinfo(); String[] cpuInfoArray =cpuInfo.split(":"); for( int i = 0 ; i< cpuInfoArray.length;i++){ if(cpuInfoArray[i].contains("BogoMIPS")){ result = cpuInfoArray[i+1]; break; } } if(result != null) result = result.trim(); return result; } /** * @see {https://stackoverflow.com/a/3021088/3014036} * * @return the CPU info. */ public static String readCPUinfo() { ProcessBuilder cmd; String result=""; InputStream in = null; try{ String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; cmd = new ProcessBuilder(args); Process process = cmd.start(); in = process.getInputStream(); byte[] re = new byte[1024]; while(in.read(re) != -1){ System.out.println(new String(re)); result = result + new String(re); } } catch(IOException ex){ ex.printStackTrace(); } finally { try { if(in !=null) in.close(); } catch (IOException e) { e.printStackTrace(); } } return result; }