web-dev-qa-db-ja.com

プロガードファイルとそれに含まれるものを準備する方法は?

Android Studioでアプリに取り組んでおり、アプリにプロガードを追加したいのですが、どうすればよいかわかりません。また、そのコンテキストを知りたいのですが、誰かに見せてもらえますか?何か?ありがとう。

6
nuhkoca

GradleファイルでtrueminifyEnabledに設定します

デバッグ、リリース、またはその両方で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行に1つずつ付いた単純なテキストファイルです。

5
Ismael Di Vita

APKファイルをできるだけ小さくするには、縮小を有効にして、リリースビルドで未使用のコードとリソースを削除する必要があります。

コードの縮小は ProGuard で利用できます。これは、含まれているコードライブラリからのものを含め、パッケージ化されたアプリから未使用のクラス、フィールド、メソッド、および属性を検出して削除します(64k参照を回避するための貴重なツールになります制限)。

ProGuardはまた、バイトコードを最適化し、未使用のコード命令を削除し、残りのクラス、フィールド、およびメソッドを短い名前で難読化します。難読化されたコードにより、APKのリバースエンジニアリングが困難になります。これは、アプリがライセンス検証などのセキュリティに敏感な機能を使用する場合に特に役立ちます。

たとえば、build.gradleファイルからの次のスニペットは、リリースビルドのコード縮小を有効にします。

Android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(‘proguard-Android.txt'),
                    'proguard-rules.pro'
        }
    }
    ...
}

Proguardの使用例、Android Studio

3
Anantha Raju C