Googleは彼らの新しい JACKコンパイラ のテストバージョンをリリースしましたAndroid Android Studio 2.1。
私の質問は、どのようにしてAPKとJACKの難読化を有効にするのですか?以下の記事によると、JACKは難読化をネイティブに実行し、Proguardの必要性を排除しています。
これに対して、次の記事では、JACKが難読化を実行するためにProguard構成ファイル(つまり、.pro
ファイル)を利用しているとしています。
それはまた言う
このプロセスの間、ジャックは要求されたコードの縮小(縮小および/または難読化も処理します-))。
これはどういう意味ですか? minifyEnabled
オプションを使用して、Proguardオプションを含む.pro
ファイルを定義する必要がありますか?
要約:
JACKを使用して難読化を有効にするには、どのようにすればよいですか? JACKでコンパイルした場合でも、Proguardの使用をバイパスできますか、それとも難読化プロセスでProguardが事実上の役割を果たしますか?
現在、JACKは難読化をサポートしているかどうかを示していますが、Android Studioの安定した(つまり、非ベータ/カナリー)バージョンで利用できますか?
注:
私はすでに次の投稿を参照しました:
エラー:Java 8言語機能 をサポートするには、Jackが必要です。
その他の参考資料:
更新:
answer by Matt Insko は役に立ちますが、より詳細で、より正確で標準的な回答を求めています。
J.A.C.K.難読化は、最新リリースのGradleプラグイン(v2.1.0)ではサポートされていないようです。
最新のv2.1.0プラグインを使用しているときにJACKを有効にすると、プレビューツールを使用する必要がある_Jack requires Build Tools 24.0.0 or later
_が通知されます。
Android gradle v2.2.0-alpha1、Build Tools-v24rc4、Platform Tools-v24rc3、およびSdk Tools-v25.1.7rc1を使用して、JACKによって難読化を実行することができました。
defaultConfig
ビルドで_Minifying the variant used for tests is not supported when using Jack.
_が構成されているため、debug
内で有効にすると、_minifyEnabled true
_に不満が出ました。
だから、私はカスタムビルドタイプを作成し、そこで有効にしました:
_buildTypes {
...
custom {
minifyEnabled true
proguardFiles 'proguard-Android-JACK.txt-2.2.0-alpha1'
jackOptions {
enabled true
}
}
_
proguardFiles getDefaultProguardFile('proguard-Android.txt')
の使用時に問題が発生しました。次のエラーが発生しました:_com.Android.jack.api.v01.ConfigurationException: Error while parsing ...
_、そこで、文句を言われた行を削除し、変更した構成ファイルを手動で指定しました。
あなたはここを見ることができます: https://source.Android.com/source/jack.html
公式ドキュメントから:
(ジャック)縮小、難読化、再パッケージ、およびmultidexを処理します。 ProGuardなどの別のパッケージを使用する必要がなくなりました。
特に、「縮小と難読化」のセクションに注意してください。
Jackは圧縮と難読化のサポートを備えており、proguard構成ファイルを使用して圧縮と難読化の機能を有効にします。
また、サポートされるオプションと無視されるオプションも表示されます。