如:在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);
一般而言,我們在串口中輸入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);