編輯:Android開發環境
為了讓你的APK文件盡可能的小,你需要在構建的時候開啟壓縮來移除無用的代碼和資源。
代碼壓縮可在ProGuard中使用,可以檢測和清除無用的類,變量,方法和屬性,甚至包括你引用的庫。ProGuard同樣可以優化字節碼,移除無用的代碼,並且模糊剩下的類,變量和方法。代碼模糊可以讓增加APK逆向工程的成本。
資源壓縮可在Andorid的Gradle插件中使用,可以清除你打包的APP中無用的資源,包含你引用的庫中的無用的資源。
壓縮你的代碼
為了啟用ProGuard的代碼壓縮,需要在build.gradle中添加minifyEnabled true。
需要注意的是,代碼壓縮會拖慢構建速度,所以,如果可能的話,盡量避免在debug構建是使用。
如下:
XML/HTML代碼注意:Android Studio在使用Instant Run時會禁用ProGuard。
自定義哪些代碼需要保留
在很多情況下,ProGuard很難正確的去分析,它可能會清除你的app需要的代碼。
1、 當你的app從AndroidManifest.xml中引用一個類時
2、 當你的app調用一個JNI方法
3、 當你的app使用反射來控制代碼
為了避免這個問題,需要使用-keep,如下:
-keep public class MyClass
同樣,可以添加@Keep注解來實現。
壓縮你的資源
資源壓縮需要跟代碼壓縮一起才能正常使用。在代碼壓縮出去所有的無用的代碼之後,才能辨別哪些資源仍然未被使用。如下:
XML/HTML代碼自定義哪些資源需要保留
如果這裡有些特別的資源你需要保留或丟棄,在你的項目中創建一個包含標簽的XML文件,用tools:keep指明需要保留的資源,用tools:discard指明需要丟棄的文件。
比如:
XML/HTML代碼1、下載JDK並配置Java運行環境 http://www.oracle.com/technet
為了測試你的Android應用符合功能需求。最重要的是確保你的代碼沒有結構性問題。結構差的代碼影響你的Android應用的可靠性,讓你的代碼難以維護
大部分編程人員進行程序代碼分析時往往喜歡從main函數入手,因為它是程序入口,
初次接觸android studio大家可能總會拿它與eclipse做比較,有很多習慣與eclip