3

build.xml を使用した ANT ビルド プロセス中に、圧縮されていない特定のファイルを Android APK ファイルに追加できるかどうかを知っている人はいますか? すべてのファイルはassetsフォルダーにあり、同じ拡張子を使用しています。圧縮して追加したくないファイルに別の拡張子を使用できることを認識しています。たとえば、次のようになります。

<nocompress extension="NoCompress" />

しかし、これは現在私にとって選択肢ではありません。

build.xmlのpackage-resourceセクションのappt packageステップの後に、独自のaapt addステップを追加してみました。

<exec executable="${aapt}" taskName="add">
<arg value="add" />
<arg value="-v" />
<arg value="${out.absolute.dir}/TestAndroid.ap_" />
<arg value="${asset.absolute.dir}/notcompressed.and" />
</exec>

APKにファイルを追加しましたが、圧縮されていました。:)

これは可能ですか、それとも別の拡張機能が唯一の方法ですか?

ありがとう!

4

3 に答える 3

2

こちらをご覧ください

この動作を制御する唯一の方法 (これを書いている時点で私が発見した) は、コマンド ラインで aapt に -0 (ゼロ) フラグを使用することです。付随する引数なしで渡されるこのフラグは、すべての種類のアセットの圧縮を無効にするように aapt に指示します。ほとんどのアセットでは、圧縮が望ましいことであるため、通常、この正確なオプションを使用することは望ましくありません。ただし、圧縮を適用したくない特定の種類のアセット (データベースなど) がある場合があります。この場合、2 つのオプションがあります。

まず、アセット ファイルに上記のリストの拡張子を付けることができます。これは必ずしも理にかなっているとは限りませんが、コマンド ラインで aapt を処理したくない場合は、簡単な回避策になる可能性があります。もう 1 つのオプションは、-0 db などの特定の拡張子を -0 フラグに渡して、その拡張子を持つアセットの圧縮を無効にすることです。複数の型を圧縮解除する必要がある場合は、-0 フラグを複数回渡すことができます。そのたびに個別の拡張子を指定できます。

現在、Eclipse 内で ADT を使用する場合、これらの追加フラグを aapt に渡す方法はありません。そのため、GUI ツールの使いやすさを犠牲にしたくない場合は、最初のオプションを使用して名前を変更する必要があります。ファイルの拡張子。

于 2012-06-30T17:33:47.780 に答える
0

これを締めくくるだけです。

個々のファイルを圧縮せずに APK に追加するようにマークすることはできないと思います。

個々のファイルをaaptに非圧縮としてマークできると便利です。nocompress ファイルタグを追加する場合と同様に、次のようになります。

<nocompress file="FileNoCompress.abc" />

:)

于 2012-07-07T21:35:52.633 に答える