來自:http://blog.csdn.net/k1102k27/article/details/7106124
android源碼開發中,常常要用到一些全域標誌或者說變數,這時候我們可以給android系統添加自己想要的屬性。
1.Settings.system
這種系統屬性我們經常用到,例如飛航模式的開啟和關閉,我們就是去改變Settings.system.AIRPLANE_MODE_ON 的值。
下面就介紹下我們怎樣去定義一個系統屬性。例如要添加一個屬性名稱為“SILVAN_LIU”
路徑:frameworks/base/core/java/android/provider/Settings.java
[java]
view plaincopyprint?
- public static final String SILVAN_LIU = "silvan_liu";
- public static final String[] SETTINGS_TO_BACKUP ={
- ~
- +SILVAN_LIU
- ~
- }
public static final String SILVAN_LIU = "silvan_liu"; public static final String[] SETTINGS_TO_BACKUP ={ ~ +SILVAN_LIU ~ }
這樣添加後,你就是可以通過Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0) 和Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0)去得到和設定SILVAN_LIU的屬性值。
2.SystemProperties
建立與修改android屬性用Systemproperties.set(name, value),擷取android屬性用Systemproperties.get(name),需要注意的是android屬性的名稱是有一定的格式要求的,如下: 首碼必須用system\core\init\property_service.c中定義的首碼 ,進行系統屬性設定的程式也必須有system或root許可權
如果我們要添加一個property:例如:silvan_liu
路徑:system/core/rootdir/int.rc
在on post-fs-data 目錄下
setprop
persist.sys.silvan_liu
1//persist.sys 首碼名; 1為初始值
PS:不同首碼名許可權不同,這裡就不一一說明;還有為什麼要載入on post-fs-data目錄下,這和int.rc的文法有關。
以上是我實際項目中運用到的地方,可能認識的不夠深刻,還需繼續摸索。