Android ProGuard使用要點!

來源:互聯網
上載者:User

http://my.oschina.net/banxi/blog/55622

1.基本的的使用可以很容易百度到,

 但是當你使用了android-support-v4或者android-support-v7或者android-support-v11包之後,你發現匯出的時候,

警告相當得多,這個時候,就算百度,Google都不太好使了,因為他們都是回答了一部分,沒有很好的解決你的問題:

 其實要解決你的問題的方法就在你的android-sdk路徑的proguard中的文檔中:

特別是Examples樣本中:

樣本中有專門針對android的說明:

  以下是第一點:

If you're using additional Google APIs, you'll have to specify those as well, for instance:

如果你使用了Google API,你還需要添加如下聲明 

-libraryjars /usr/local/android-sdk/add-ons/google_apis-7_r01/libs/maps.jar

If you're using the Android Compatibility library, you should add the following line, to let ProGuard know it's ok that the library references some classes that are not available in all versions of the API:

如果你使用了android-support包,你需要使用以下聲明設定,讓ProGuard知道庫中的一些類並不是在所有版本的API中可用:

-dontwarn android.support.**

 

如果你還有其它問題,那還是參見proguard文檔吧..

2.使用ProGuard刪除日誌輸出語句,

 Thanks to:statckoverflow

  (1)http://stackoverflow.com/questions/4435773/android-proguard-removing-all-log-statements-and-merging-packages

 (2)http://stackoverflow.com/questions/7086920/removing-logging-with-proguard-doesnt-remove-the-strings-being-logged

在開發android的時候,經常要使用Log.d()語句,但是發布的時候,如果一行一行的注釋還是有點麻煩的.

這個時候可以使用如下的指令讓proguard協助我們刪除他:

-assumenosideeffects class android.util.Log{ public static *** d(...); public static *** i(...); }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.