android - 自己写的代码混淆时需要注意什么
天蓬老师
天蓬老师 2017-04-18 09:03:43
0
4
580

自己写的代码混淆时需要注意什么?初学proguard,以及混淆与平时的代码规范有什么联系

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(4)
黄舟

我覺得你應該思考的是你這個類或這個方法是給誰用的,混淆過後它能不能找得到,比如activity,service之類的在清單文件註冊,然後系統通過反射來進行調用,所以是不能混淆的。自訂控制也是,它會在佈局文件中出現,也是系統透過發射來呼叫所以也不能混淆。還有native方法,參考方法的命名規則,它也是不能被混淆的。你可以參考這篇部落格:http://blog.csdn.net/dai_zhen...。如果有錯誤還是要思考把什麼不該混淆的混淆掉了,比如我之前用ionic,混淆一直出錯,後來發現有一種javascript調用的本地的代碼的類(不記得叫什麼了),這個類是在配置文件聲明的,估計也是透過反射來調用,所以是不能混淆的。

大家讲道理

混淆中最需要注意的是程式碼中使用反射的部分,由於反射的使用大多數情況下是基於方法或屬性名稱的,所以需要保證這些名詞不被混淆才能使程式碼正常運作。一般Android官方或第三方提供套件的時候,也會給予一些混淆的忽略規則,雖然這些規格各不相同,但幾乎所有規則的核心概念都是一致的,就是避免混淆使用反射部分的程式碼。

大家讲道理

反射的程式碼,系統接口,jni接口,序列化和反序列化的,與服務端交互的javabean這些不能混淆,如果用第三方包的話,需要去查看這些包的混淆規則,如果不知道直接不混淆就可以了,畢竟一般用的第三方套件都是開源的,混淆不混淆都一樣的

伊谢尔伦

我之前在專案裡遇到的一個bug就是混淆引起的。
把一个类的名称写死在String里面。混淆之后类名发生改变,找不到这个类。
找了好久才找到bug原因所在,很坑。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!