Android(java)學習筆記128:使用proguard混淆android代碼

來源:互聯網
上載者:User

標籤:

1.當前是有些工具比如apktool,dextojar等是可以對我們android安裝包進行反編譯,獲得源碼的。為了減少被別人破解,導致源碼泄露,程式被別人盜取代碼,等等。我們需要對代碼進行混淆,android的sdk中為我們提供了ProGuard這個工具,可以對代碼進行混淆(一般是用無意義的名字來重新命名),以及去除沒有使用到的代碼,對程式進行最佳化和壓縮,這樣可以增加你想的難度。最近我做的項目,是我去配置的混淆配置,因此研究了一下,這裡分享一下。

 

2.上面說到去除沒有使用到的代碼,對程式進行最佳化和壓縮:這是程式的瘦身

apk瘦身一般有兩條線,

  1. 去除無用的代碼,例如引用一個比較大的lib,只使用了其中很少的功能。其他無用的代碼可以想辦法去掉
  2. 去除無用的資源檔,可能是第三方lib中的,也有可能是開發中引入了無用的資源
去除無用代碼

當然是Proguard了!

gradle plug 0.14.0, runProguard 更名為minifyEnabled

去除無用資源

Android Gradle plug從0.14.0開始,支援自動去除沒有使用的資源。

不過,這個開關是預設關閉的。可以在build type使用 shrinkResources true 開啟。 要注意,這個功能的使用依賴於code shrinking, 所以minifyEnabled也必須開啟。

  1. Support for automatic removal of unused resources

  2. Off by default for now, enable by setting shrinkResources to true in your release build types. Requires minifyEnabled as well.

具體配置如下

android {    buildTypes {        release {            minifyEnabled true            shrinkResources true        }    }}
效果

以我正在開發的一個app為例

  • 使用前2.02MB

  • 使用後1.90MB

效果明顯!

Android(java)學習筆記128:使用proguard混淆android代碼

聯繫我們

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