デバイス情報を取得するAndroidアプリケーションを開発しています。現在、合計CPU使用率については、このスレッドのコードを使用しています。
しかし、私が欲しかったのは、各コアのCPU周波数です。そこで、cpu0の使用法を取得するようにコードを変更しようとしました。しかし、私は成功しませんでした。だから、誰もがこの問題を抱えています。どのようにしてそれを克服しましたか?
更新
「scaling_cur_freq」ファイルから値を取得することでこれを達成しようとしました。このファイルには、各コアの現在の周波数が含まれています。だから誰かがそれを必要とする場合のために、これが私のコードです
try {
double currentFreq;
RandomAccessFile readerCurFreq;
readerCurFreq = new RandomAccessFile("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r");
String curfreg = readerCurFreq.readLine();
currentFreq = Double.parseDouble(curfreg) / 1000;
readerCurFreq.close();
String finalfre = "Curent Frequency of Core 0 is" + currentFreq;
} catch (IOException ex) {
String finalfre = "Core is Idle";
ex.printStackTrace();
}
これをコアの数でループできます。これで、すべてのコアの周波数を取得できます。コアがアイドルまたは停止している場合、このコードは例外を生成することがあります。それを処理し、あなたは行ってもいいです
指定したスレッドには、CPU使用率を取得する方法しかありません...この回答を注意深く読むと、「getCpuUsage」というメソッドがあることがわかります。このメソッドは、コアのcpuidを渡すと、コアごとの現在のCPU使用率を返します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加