如何鎖定Android系統CPU的頻率

接觸到了Android系統的Performance測試,因此有鎖定CPU的需求:shell

因爲要首先讀取到此係統所支持的CPU頻率,以後再所支持的頻率中選取你想要的頻率,以後進行鎖定。測試

這個過程,手動也是能夠的,直接:spa

1.查看所支持的CPU頻率:code

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

返回的結果是:416000 728000 900000 1040000blog

2.從上邊的結果中選取一個416000 ,以後進行設定:token

echo 416000  > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 416000  > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freqci

以後運行adb shell環境,輸入rem

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freqinput

查看設置是否有效,假如一直是416000,則證實設置生效。

 

因爲每次都要輸入以上代碼查看以後設置,因此考慮用自動化實現,代碼以下:

setFrequence.bat文件:

@adb shell setprop persist.service.thermal 0
@adb wait-for-device

@adb root
@adb wait-for-device
@adb remount

@for /f "tokens=*" %%i in ('adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies') do @set var=%%i 

@echo All cpufreqs are: %var%

@set /p last=please input your freq:

::@echo My cpufreq is: %last%

@adb push .\run.sh /system/bin/

@adb shell chmod -R 777 /system/bin

@adb shell /system/bin/run.sh --Cpufreq=%last%

run.sh文件:

#!system//bin/sh

while [ $# -gt 0 ]; do
    case $1 in
      --Cpufreq=*)
        cpufreq=${1#--Cpufreq=}
        ;;
    esac
    shift
  done

#echo cpufreq=`echo $cpufreq`
echo $cpufreq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $cpufreq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  

echo $cpufreq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $cpufreq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  

echo scaling_min_freq=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq`
echo scaling_max_freq=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`


echo scaling_cur_freq=
i=10
while [[ $i -gt 1 ]];
do
 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq;
 sleep 5;
 ((i--));
done

把上邊兩個文件放到一個folder下邊,雙擊執行setFrequence.bat文件,輸入你想要的頻率便可。

相關文章
相關標籤/搜索