Android 代碼混淆 proguard.flags

來源:互聯網
上載者:User

標籤:android   代碼混淆   proguard.flags   local_proguard_flag_   

在我們編譯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.*

這麼處理後,基本上問題就解決了!

Android 代碼混淆 proguard.flags

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.