CPUスケーリングガバナーを設定する必要があるシンプルなAndroidアプリを作成しています。
これを実現するために、私はこの関数を作成しました。
public static void setCurrentGovernor(String governor){
Process process;
try{
String cpufreq_path= "/sys/devices/system/cpu/cpu0/cpufreq";
String cmd = "echo `"+governor+"` > "+cpufreq_path+"/scaling_governor ";
process = Runtime.getRuntime().exec(new String[] {"su","-c",cmd});
} catch(IOException e){
e.printStackTrace();
}
}
私の問題は、この関数が機能しないことです。さらに、スーパーユーザーは常に権限の入力を求めますが、アプリの最初の起動時にのみroot権限を付与する方法はありますか?
この関数はスピナーのonitemselectedlistener内で呼び出されます。この関数の直後に、cpufreqファイルからデータをフェッチしてビューを更新する別の関数がありますがcat scaling_governor
、古いガバナーを取得した場合、これは障害のある更新関数ではありません。