1. LOCAL_PRIVILEGED_MODULE= true;
功能:應用編譯後系統路徑:/system/pri-app/SystemUI
在我們編譯Android系統的user版本的時候,有時候會出現proguard的錯誤,在解決這個錯誤之着,我們需要了解一些知識:
1,proguard是用來幹什麼的?
簡單點說,他就是用來做JAVA代碼混淆的一個工具。
2,這個東西在哪裏實現的?
我們一般會在Android.mk文件中對其進行支持,比如:
1)指定不需要混淆的native方法和變量的proguard.flags文件 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
2)對使用與不使用進行設定:
(1),制定編譯的工程,不需要使用代碼混淆的工具進行代碼混淆:LOCAL_PROGUARD_ENABLE := disable
(2),如果不設置,我們默認使用LOCAL_PROGUARD_ENABLE := full 意思就是將該工程代碼全部混淆
3,怎麼解決?
比如,我們在 Android 的項目中使用了JNI,當使用了proguard後,會發現native方法有很多變量找不到,仔細分析後你會發現,原因是被progurad優化掉了,
所以,我們建議在JNI應用中應該慎用progurad。既然發現了,可我們想用progurad啊,怎麼辦呢?
1)在Android.mk中加入如下代碼:
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
2) 在proguard.flags文件中加入不需要proguard優化的類和方法,比如Browser中:
-keep class com.android.browser.preferences.*
這麼處理後,基本上問題就解決了!