怎么在Android系统中增加系统属性?
? ? ? ??系統屬性:就是在整個Android系統中都是可以調用的屬性,比如我們某個功能,在fw層和c層都有改動,我們需要用一個變量去控制這個功能是否啟用和關閉,這就需要用到全局的系統屬性;
????????/system/build.prop 是一個屬性文件,在Android系統中.prop文件很重要,記錄了系統的設置和改變。這個文件是如何生成的呢?
build/tools/buildinfo.sh 腳本就是專門用于生成build.prop文件,
build/core/Makefile中使用build/tools/buildinfo.sh 腳本生成build.prop文件,所以我們要添加系統屬性,主要就是在buildinfo.sh、Makefile和version_defaults.mk中
? ? ? ? 記錄一下我新增系統屬性的流程:
? ? ? ? 1、需求:公司領導讓我新增一個功能,這個功能在fw層和c層都有改動,然后需要控制這個功能的啟動和關閉(每次編譯都去刪除代碼這肯定不太現實),所以需要加一個系統屬性,每次編譯修改這個系統屬性就行
? ? ? ? 2、首先我們需要在/build/core/version_defaults.mk中增加字段,
????????TARGET_CONFIGURE := false
? ? ? ? 然后需要在build/tools/buildinfo.sh中增加
???echo "ro.product.configure=$TARGET_CONFIGURE"? ? ? ? 最后需要在build/core/Makefile中添加
????TARGET_CONFIGURE="$(TARGET_CONFIGURE)"? ? ? ? 最后編譯,編譯完成后就會在 /out/target/product/<product>/system/build.prop中出現加入的ro.product.configure屬性,
????????如果需要修改屬性的值,只需要更改/build/core/version_defaults.mk即可
? ? ? ? 使用:我們定義了系統屬性,肯定是需要調用在fw層調用的方法是:
????????getString("ro.product.configure")????????在C層調用的方法是:
????????property_get("ro.product.configure", value, "") 注:value是接收的字段? ? ? ?在adb獲取系統屬性的方法是:
????????????????adb shell getprop? ?//獲取系統全部屬性
????????????????adb shell getprop "ro.product.configure" //獲取某個屬性
????????????????adb shell setprop "ro.product.configure"?"12"? ?//設置某個屬性的值? ro開頭的為只讀屬性,不可設置
由于我剛接觸系統層源碼,可能還處于比較菜的地步,如果有錯誤的地方,麻煩大佬指點下,感謝感謝........
????????
總結
以上是生活随笔為你收集整理的怎么在Android系统中增加系统属性?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node安装教程(超详细图解)
- 下一篇: Android与IOS测试区别