2

ビルドターゲットを個別に実行すると、コンパイルと最適化が可能なbuild.xmlがあります-「antコンパイル」に続いて「および最適化」。

問題は、通常はリリース バイナリを生成するために必要なすべてを実行する「ant リリース」を実行したいということですが、チェーンにビルド ターゲットを挿入する必要があります。ターゲットは「最適化」と呼ばれ、プロガード最適化を実行します。 /shrinker は、"dex" ステージがバイト コードをビルドする直前のクラス ファイルに対して実行します。

テンプレート ファイル /opt/android-sdk-linux_x86/platforms/android-8/templates/android_rules.xml には次のルールが含まれています。出てくるさまざまな SDK ごとにファイルを再変更する必要があります (毎回新しい android_rules.xml ファイルを使用)。

<!-- Converts this project's .class files into .dex files -->
<target name="-dex" depends="compile">
    <dex-helper />
</target>

テンプレート xml を変更し、代わりにすべてのコンパイル ルールを build.xml に入れる代わりの方法はありますか?

4

2 に答える 2

5

build.xmlテンプレートファイルでコンパイル後のフックを使用しないのはなぜですか? それは読みます:

[This is typically used for code obfuscation.
 Compiled code location: ${out.classes.absolute.dir}
 If this is not done in place, override ${out.dex.input.absolute.dir}]
<target name="-post-compile">
</target>

明示的に変更を求めていることを考えると、SDK バージョン間でサポートされると思います。

プロジェクトの完全な自動生成build.xmlファイルを表示するには、 android update project.

于 2011-03-07T20:01:09.993 に答える
1

見逃した場合に備えて:

SDK Tools Rev 8 の時点で、Proguard サポートが組み込まれています。次の行を追加するだけです。

proguard.config=proguard.cfg

あなたのdefault.propertiesに(もちろん、難読化ルールを設定するproguard.cfgファイルがあります)

他のターゲットを追加する必要はありません。

(とにかく、これは Windows バージョンでも当てはまります。Linux でも同じだと思います。「ルール」xml は現在、main_rules.xml と呼ばれています)

于 2011-03-07T22:43:05.917 に答える