私はAndroid Studioのアプリを開発中で、私は自分のアプリにproguardを追加したいと考えています。しかし、私は何をすべきか分からないのですか?また、私はその文脈を学びたいと思う。誰かが私に何かを見せてくれる?ありがとう。あなたのGradleファイルでプロガードファイルとそれに含まれるものを準備するには?
答えて
ProGuardのは、デバッグに有効になっている場合は、定義することができminifyEnabled
にtrue
を設定、解除または両方
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つのラベルです:コードの難読化は、あなたの辞書ファイルで、この設定を設定します。
APKファイルをできるだけ小さくするには、縮小ビルドを有効にして、リリースビルドで未使用のコードとリソースを削除する必要があります。
コード縮小は、含まれているコードライブラリからのものを含め、パッケージされたアプリケーションから未使用のクラス、フィールド、メソッド、属性を検出して削除するProGuardで利用できます(64k参照制限を回避する貴重なツールになります)。
ProGuardは、バイトコードを最適化し、未使用のコード命令を削除し、短い名前の残りのクラス、フィールド、メソッドを難読化します。難読化されたコードはAPKをリバースエンジニアリングするのを困難にします。これは、アプリでライセンス確認などの機密性の高い機能を使用する場合に特に役立ちます。例えば
、build.gradleファイルから次のスニペットは、コードリリースビルド用の縮小を可能にします:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
'proguard-rules.pro'
}
}
...
}
おかげで、私はそれを見てみましょう。どうすれば私の依存関係にproguardを使うことができますか? – nuhkoca
- 1. 電子:それは準備ができて前にExpress.jsサーバは
- 2. 複雑なクエリ関数 - それを準備する方法?
- 3. SQLAlchemyとdjango、それは生産準備ができていますか?
- 4. Mysqli - 準備された文章を含む複数のクエリ
- 5. LAMPからSAMPへ移行する際の準備と準備について
- 6. RESTfulコンテナには多くのものが含まれています。しかし、それとどのようにやりとりするのか、それに含まれるものを知る方法は?
- 7. 準備文の結果に壊れたコードを追加する
- 8. Validate PEARパッケージはプロダクション用に準備されていますか?
- 9. 別のクラスに基底クラスを含めると、その基底の派生クラスも含まれます
- 10. postgres jdbcドライバに準備されたSQL文を記録する
- 11. ldfファイルとは何ですか、そのファイルにはSQL Serverデータベースに含まれるものは何ですか?
- 12. 既にコンパイルされたJSPのデータ準備を避ける
- 13. 一度に2つのテーブルに挿入するには?準備されたステートメント
- 14. Androidスタジオアラームが準備されているときにメディアプレイヤーを起動する
- 15. ナビゲーションアイテムの準備をする
- 16. PHP準備されたステートメント私は配列にPHP準備文の結果を保存してから(エコー)それを書きたい配列
- 17. これは標準のAlertDialogですか、それともカスタムですか?
- 18. (iphone)アプリケーションのバイナリに含まれるものとそのサイズを表示する方法は?
- 19. セグデータがロードされないように準備する
- 20. DiscordSocketClientとDiscord Channel Idが接続され、準備ができているとすれば、そのチャネルにどのようにメッセージを送信しますか?
- 21. ローカルリポジトリをマスタにプッシュ準備する
- 22. どのようにスキップするには? in準備されたステートメント
- 23. それとも基準 - 私はHibernateのクラスを持っている
- 24. Redisサーバーにアップロードするデータの準備
- 25. フロントエンドコンテンツの準備に関するベストプラクティス-iPhone
- 26. MySQLカーソルと準備文 - 間違っているもの
- 27. なぜunordered_setは、それに含まれるデータよりも大幅にRAMを使用していますか?
- 28. mysqli_stmt_execute()は、準備されたクエリ
- 29. Oozieは戦争の準備を準備する最初にOozieを停止する[Oozie v4.3]
- 30. NText(clob)パラメータを含むADO.NETステートメントを準備する方法
おかげで、どのように、その内容とは? – nuhkoca
私の回答を更新 –
どのように私の依存関係にこの設定を適用できますか? – nuhkoca