How to change clock frequency in Android?

丶灬走出姿态 提交于 2019-12-03 13:42:49

问题


I'm a new to software development on Android.

I want to make an application like SetCPU that can manipulate CPU frequency in Android.

But I couldn't find some related APIs or materials.

I want to know following two things sincerely.

  1. Are there APIs to change the CPU frequency in Android?
  2. If not, are there some APIs in Linux?

回答1:


Some commands in ADB

Set Governor:

adb shell echo "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Set Frequency in KHz:

adb shell su -c "echo "702000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
//min frequency
adb shell su -c "echo "384000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"  
//MAX frequency
adb shell su -c "echo "384000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq" 

Get current CPU Frequency:

adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

Show availables governors:

adb shell su -c "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"

Disable service that overwrite cpu online file:

adb shell su -c "stop mpdecision" 

It's necessary to do this before enabling or disabling core. mp decision is restarted if the system is restarted.

Disable core:

adb shell su -c "echo "0" > /sys/devices/system/cpu/cpu3/online"

If that doesn't work:

& chmod 444 /sys/devices/system/cpu/cpu1/online 



回答2:


There is no Java API to change the frequency of an Android device. The only way to do this is to get your hands dirty with the Kernel.




回答3:


Looks like you need to root your device

http://www.pokedev.com/setcpu/



来源:https://stackoverflow.com/questions/4238959/how-to-change-clock-frequency-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!