在上一篇 Android Studio 在線調(diào)試Framework代碼
有講到使用 Android Studio , 可以很方便的調(diào)試 Framework下的代碼
。
有的時候,我們需要添加一個修改驗證,需要通過系統(tǒng)編譯或者 僅編譯 framework 部分。
編譯就需要挺長時間,并且刷機(jī)時間也長。
我們能不能,只編譯一次,驗證多個修改方案?
在一般情況下, 是可以的??!
通過添加一個系統(tǒng)屬性值, 然后使用 adb 命令動態(tài)設(shè)置,則可以完成!
1. 導(dǎo)入 SystemProperties包
import android.os.SystemProperties;
2. 讀取屬性值
可以自定一個 系統(tǒng)屬性值, 例如 persist.sys.mytestcase.onlydebug,
String onlydebug = SystemProperties.get("persist.sys.mytestcase.onlydebug", "false");
Log.d(TAG, "onlydebug="+onlydebug);
if("true".equals(onlydebug)){
//....
}
或者:
boolean onlydebug = "true".equals(SystemProperties.get("persist.sys.mytestcase.onlydebug", "false"));
Log.d(TAG, "onlydebug="+onlydebug);
然后,根據(jù)它的值作為條件,去執(zhí)行你的方案。
我們在這里的值是 String 類型, 因此你可以 設(shè)定為 任何一段 字符。
3. adb 設(shè)置
adb 命令設(shè)置 或者 獲取
(1) 設(shè)置:
adb shell setprop persist.sys.mytestcase.onlydebug true
(2) 獲?。?br> adb shell getprop persist.sys.mytestcase.onlydebug
在設(shè)置了值后,便可以按計劃執(zhí)行你添加的修改代碼。
當(dāng)然,也可以重置值,達(dá)到執(zhí)行原有邏輯的效果!