我正在開發Android Studio中的應用程序,並且想要將proguard添加到我的應用程序中。但我不知道該怎麼辦?我也想了解它的背景。任何人都可以給我看看嗎謝謝。如何準備一個proguard文件及其中包含什麼?
2
A
回答
2
在你gradle這個文件中設置true
到minifyEnabled
如果proguard的是在調試,發佈啓用或兩者
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard-rules.pro'
}
debug {
minifyEnabled false
proguardFiles 'proguard-rules.pro'
}
}
您還可以設置proguardFiles來配置他可以定義,檢查此site到看看這個文檔,看看這個例子:
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/balysv/Documents/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-optimizationpasses 5
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
如果你想使用自定義字典爲代碼混淆,設置這個配置你的字典文件:
-obfuscationdictionary proguard-dic.txt
-classobfuscationdictionary proguard-dic.txt
-packageobfuscationdictionary proguard-dic.txt
字典文件是要使用混淆你的代碼,每行1個標籤標籤一個簡單的文本文件。
3
爲了使您的APK文件儘可能小,您應該啓用縮小以刪除發佈版本中未使用的代碼和資源。
ProGuard可用於檢測並從打包的應用程序中檢測並刪除未使用的類,字段,方法和屬性(包括來自包含的代碼庫中的未使用的類,字段,方法和屬性(使其成爲解決64k參考限制的重要工具))。
ProGuard還優化了字節碼,刪除了未使用的代碼指令,並用短名稱混淆了剩餘的類,字段和方法。混淆代碼使得APK很難進行反向工程,當您的應用使用安全敏感功能(如許可證驗證)時,這非常有價值。
例如,從文件的build.gradle下面的代碼片段啓用代碼萎縮發佈版本:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
'proguard-rules.pro'
}
}
...
}
+0
感謝兄弟,我會看看它。好的,我如何使用proguard來處理我的依賴關係? – nuhkoca
相關問題
- 1. 爲什麼包含標準頭文件?
- 2. 爲什麼-dontusemixedcaseclassnames包含在默認的ProGuard-android.xml文件中?
- 3. 包含文件及其內容
- 4. 在pom.xml中包含proguard配置文件
- 5. Visual Studio/Qt:包含一個庫(Qt)及其子文件夾
- 6. 如何創建一個新的文件,其中包含在vim
- 7. 如何在ProGuard規則文件中包含ACRA
- 8. CodeIgniter緩存會生成2個文件,其中一個包含錯誤,另一個包含正確的文件 - 爲什麼?這發生了什麼?
- 9. 在PHP中,如果包含一個文件本身包含另一個文件,第一個文件是否會同時包含其他文件?
- 10. PHP包含來自另一個目錄的文件,其中也包含文件
- 11. 如何在proguard中包含目錄(不是其內容)?
- 12. 如何在Dreamweaver中將一個html文件包含到其他html文件中
- 13. 包含的文件,其中包括從另一個文件夾中的文件
- 14. 如何查找文件並在其中包含其他文件?
- 15. 如何在頁面中包含jQuery及其插件?
- 16. PHP:怎麼知道有什麼文件包含一個名爲
- 17. 閱讀一個文件,其中包含一個罐子裏
- 18. 如何在一個包含文件
- 19. Jade:如何包含一個JavaScript文件
- 20. 如何包含另一個XML文件
- 21. 如何在包含'use'命令的文件中包含另一個文件
- 22. 如何從其他域包含一個PHP文件
- 23. 如何獲取模型實例及其包含,以及包含'includes?
- 24. 爲什麼包含一個POSIX函數的多個頭文件?
- 25. Java的main()方法及其包含的類應該做什麼?
- 26. 爲什麼img無法觸及其包含div的底部?
- 27. 在JAR文件中包含Android活動(及其佈局)
- 28. Vertx:如何包含其他文件
- 29. 如何讓MatLab寫一個包含文件列表及其持續時間的txt文件?
- 30. 爲什麼一個PHP文件包含在絕對路徑中的文件中,但不包含相對路徑?
感謝又是怎樣的內容? – nuhkoca
更新我的回答 –
如何將這個配置應用於我的依賴關係? – nuhkoca