Android系統中 setprop,getprop,watchprops命令的使用


如:在frameworks/opt/net/ims/src/java/com/android/ims/ImsManager.java

if (SystemProperties.get("persist.mtk_dynamic_ims_switch").equals("1")) {  

我們想知道系統中persist.mtk_dynamic_ims_switch的值是多少,可以用如下方法

adb shell 進入android文件系統中:

shell@GF179:/ $ getprop persist.mtk_dynamic_ims_switch
0

 

 

Android系統中,有一些初始化的配置文件,例如:

/init.rc

/default.prop

/system/build.prop

文件里面里面配置了開機設置的系統屬性值,

這些屬性值,可以通過getprop獲取,setprop設置,

它的格式如下:

getprop [key]

獲取指定key的配置值,如果不帶參數,只是getprop則是顯示系統所有的配置值。

[dalvik.vm.heapsize]: [24m]

[curlockscreen]: [1]

[ro.sf.hwrotation]: [0]

[ro.config.notification_sound]: [OnTheHunt.ogg]

[ro.config.alarm_alert]: [Alarm_Classic.ogg]

setprop [key] [value]
設置指定key的屬性值,
watchprops
監聽系統屬性的變化,如果期間系統的屬性發生變化則把變化的值顯示出來
/system # watchprops
1307501833 sys.settings_system_version = '37'
1307501836 sys.settings_system_version = '38'
1307501862 persist.sys.timezone = 'Asia/Hong_Kong'
其實這三個命令都是toolbox的子命令,如果有興趣的可以看在android源碼中看到其對應的源碼:
system/core/toolbox/


一般而言,我們在串口中輸入getprop指令,會出現很多類似鍵值對的系統變量值,上圖:




這些都是系統值,然而這些都是都是底層創建的變量,例如在某個驅動程序中創建,但如果在java語言中想獲得這些信息中的某個變量的值,怎么辦呢?
1,上一節我們講解了,在java中如何調用linux的指令,主要通過如下代碼實現:
            Process process =  Runtime.getRuntime().exec(com);
            InputStreamReader ir = new InputStreamReader(process.getInputStream());
            BufferedReader input = new BufferedReader(ir);

2,我們想getprop和setprop既然都是命令,能不能也用上面的方面嘗試得到值呢 ,當然。
     getprop 用法:getprop [key]
    setprop用法:setprop [key] [value]  
   注:實際中是沒有中括號的。
所以用法同上:
            Process process =  Runtime.getRuntime().exec("getprop ro.runtime.firstboot");
            InputStreamReader ir = new InputStreamReader(process.getInputStream());
            BufferedReader input = new BufferedReader(ir);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM