簡體   English   中英

Android:什么是Proguard和ProGuard映射

[英]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商店時)

  1. 混淆

  2. 優化

  3. 收縮

Android Studio導入問題。 (Apktool)

簡單地說,您可以看到通過使用一些逆向工程技術如何看到不帶proguardapk

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM