构建android apk时如何将参数传递给aapt? [英] How to pass arguments to aapt when building android apk?

查看:27
本文介绍了构建android apk时如何将参数传递给aapt?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 Linux 上使用 ant 构建 apk(不使用 Eclipse),并且我试图找到一种简单的方法来在压缩资产和不压缩资产之间切换,以保持我庞大的数据库未压缩 <2.3.根据这篇文章:

I'm building an apk using ant on Linux (not using Eclipse), and I'm trying to find an easy way to switch between compressing assets and not, in order to keep my huge database uncompressed for < 2.3. As per this article:

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/

我发现可以通过指定诸如 aapt -0 db 之类的东西来实现这一点,但是我找不到有关如何编辑 ant 与 aapt 交互方式的信息.或者我必须自己运行 aapt 吗?我该怎么办?

I see that it's possible to do this by specifying something like aapt -0 db, but I can't find information on how to edit the way ant interacts with aapt. Or do I have to run aapt by itself? What do I do?

推荐答案

在构建时执行 AAPT 的是 Android 的 build.xml(您可以在 SDK、工具和 ant 下找到它).

It's Android's build.xml (you'll find this under your SDK, tools and ant) that executes AAPT when building.

找到您的 build.xml 并将-package-resources"目标替换为下面的目标.我很确定(目前无法对其进行测试)您可以在使用 ANT 构建时使用-Dcompression.disabled=set"或compression.disabled=set"打开和关闭压缩.properties 文件.

Find your build.xml and replace the "-package-resources" target with the target below. I'm pretty sure (not able to test it at the moment) you'd be able to swith compression on and off with either "-Dcompression.disabled=set" when build with ANT or "compression.disabled=set" in your .properties-file.

<target name="-package-resources" depends="-crunch">
    <!-- only package resources if *not* a library project -->
    <do-only-if-not-library elseText="Library project: do not package resources..." >
        <aapt executable="${aapt}"
                command="package"
                versioncode="${version.code}"
                versionname="${version.name}"
                debug="${build.is.packaging.debug}"
                manifest="AndroidManifest.xml"
                assets="${asset.absolute.dir}"
                androidjar="${android.jar}"
                apkfolder="${out.absolute.dir}"
                nocrunch="${build.packaging.nocrunch}"
                resourcefilename="${resource.package.file.name}"
                resourcefilter="${aapt.resource.filter}"
                projectLibrariesResName="project.libraries.res"
                projectLibrariesPackageName="project.libraries.package"
                previousBuildType="${build.last.target}"
                buildType="${build.target}">
            <res path="${out.res.absolute.dir}" />
            <res path="${resource.absolute.dir}" />
            <if>
                <condition>
                    <isset property="compression.disabled" />
                </condition>
                <then>
                    <nocompress/>
                </then>
            </if>
        </aapt>
    </do-only-if-not-library>
</target>

这篇关于构建android apk时如何将参数传递给aapt?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆