[英]Android: What is Proguard and ProGuard mapping
當我檢查我的應用程序崩潰時,注意到這個報告
上傳您的 ProGuard 反混淆文件,以便對該 APK 版本的未來堆棧跟蹤進行反混淆處理。 檢查此鏈接但不明白https://support.google.com/googleplay/android-developer/answer/6295281?hl=en
作為我在這里的回答,Proguard是您嘗試編譯apk時的主要過程之一(尤其是當您將apk發布到Google Play商店時)
混淆
優化
收縮
簡單地說,您可以看到通過使用一些逆向工程技術如何看到不帶proguard的apk
https://ahbsa.wordpress.com/2015/04/30/decompiling-apk-reverse-engineering-android-application/
使用一些逆向工程技術,帶有proguard的apk內的類將類似於此類
您現在可能有了主意。 即使您使用了Proguard,.dex類仍然可以反編譯。 但是,如果您使用Proguard,則代碼幾乎不可讀。 而且,如果您使用了一些更高級的技術(例如Dexguard),它們可以提供更好的性能,並且在反編譯.dex類之后,代碼將變得更加復雜。
保護您出於本問題中提到的多種原因而使用。 我應該使用ProGuard嗎?
如果鏈接斷開,我將復制此問題的答案:
對Android應用程序進行反向工程非常容易,因此,如果要防止這種情況發生,是的,應使用ProGuard的主要功能:混淆。
ProGuard還具有其他兩個重要功能:縮小可消除未使用的代碼,顯然非常有用,而且也可以優化。 不過,優化是使用Java字節碼運行的,並且由於Android在從Java字節碼轉換而來的Dalvik字節碼上運行,因此某些優化無法正常工作。 因此,您應該在那里小心。
在Android網站上有有關如何使用proguard的說明。 您需要檢查的主要內容是線路是否正確
proproject.properties文件中的proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt:proguard-project.txt。 由於您提到使用的是Android Studio,但沒有此文件,但系統詢問您有關配置文件的信息,請嘗試選擇Android SDK中的文件(工具/proguard/proguard-android.txt)。
在Android Studio中
1)轉到項目的“ build.gradle”(模塊的build.gradle而不是根目錄的build.gradle文件)
2)編輯它並在“ buildTypes”下添加類型(如我添加的發布和調試模式)
3)這里“ minifyEnable”是proguard選項,通過將其設置為TRUE,可以啟用在相應模式下運行proguard(Release和Debug,對於發布模式為true,對於調試模式為false)
4)在該行之后輸入“ proguardFiles getDefaultProguardFile('proguard-android.txt')”,代表該proguard規則文件,您將在應用程序模塊(模塊)中獲得該文件,名稱為“ proguard-rules.pro”(因為您可以識別最后一個條目)在上面的行中)為proguard編輯/添加規則。
5),到此為止!
如果我想念什么,請告訴我。 謝謝。
Proguard 做一些事情,比如收縮,混淆......(Proguard)一個一個並將它的工作記錄到特定文件(ProGuard 映射)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.