是否可以使用build.xml将未压缩的特定文件添加到Android APK?

时间:2012-06-30 17:26:32

标签: android

有没有人知道在使用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,但它已被压缩。 :)

这是可能的还是另一种不同的扩展方式?

谢谢!

3 个答案:

答案 0 :(得分:2)

看看here

  

唯一的方法(我发现,在撰写本文时)要控制   此行为是通过使用-0(零)标志来执行命令   线。这个标志在没有任何附带参数的情况下通过   aapt禁用所有类型资产的压缩。通常你   不希望使用这个确切的选项,因为对于大多数资产,   压缩是一件理想的事情。但是,有时你会有一个   您不想要的特定类型的资产(例如,数据库)   应用压缩。在这种情况下,您有两种选择。

     

首先,您可以在上面的列表中为您的资产文件添加扩展名。   虽然这不一定有意义,但它可能很容易   解决方法,如果你不想在命令行上处理aapt。   另一种选择是将特定扩展名传递给-0标志,例如   as -0 db,用于禁用具有该扩展名的资产的压缩。您   可以多次传递-0标志,并且每次都单独传递   扩展,如果您需要多种类型的解压缩。

     

目前,没有办法将这些额外的标志传递到aapt时   在Eclipse中使用ADT,所以如果你不想牺牲   易于使用的GUI工具,你将不得不与第一个   选项,并重命名文件的扩展名。

答案 1 :(得分:0)

只为这个提供封闭。

我认为不可能将未压缩的个别文件标记为APK。

能够将单个文件标记为未压缩到 aapt 可能很有用。与添加 nocompress文件标签一样,例如:

<nocompress file="FileNoCompress.abc" />

:)

答案 2 :(得分:0)

如果使用gradle构建,那么您似乎可以提供这样的aapt标志:

android {
    aaptOptions {
        noCompress 'foo', 'bar'
        ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }
}

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-aapt-options