gpt4 book ai didi

安卓 eclipse : Customizing the build process

转载 作者:行者123 更新时间:2023-11-29 22:19:21 24 4
gpt4 key购买 nike

我的应用程序中有很多图形资源,我想用不同大小的图形资源支持不同的屏幕尺寸。但是,如果我在最终的 apk 中包含每个图形资源的 3 个不同版本(即 res/drawable-hdpi、res/drawable-ldpi、res/drawable-mdpi),应用程序将非常大。因此,我希望能够生成 3 个不同的 apk 用于测试——并最终部署——目的(参见 using mulitple apks),每个都只包含相关的图形资源。

有没有一种方法可以自定义 android 构建过程(我正在使用 eclipse)来实现这一点?如果在 eclipse 中不可能,是否可以从命令行进行?

我的搜索表明很多人都在使用构建工具 Ant 和 Maven 来解决此类问题,并且 android-sdk 有一个工具来支持 Ant out of the box .

回答注意事项:执行下面的教程后,请按照以下步骤操作(在教程和阅读 ant 手册以及 android-sdk 附带的 main_rules.xml 之后它们将变得清晰):

  1. 将 main_rules 的内容复制到您的 build.xml 中(如 build.xml 注释中指定的那样)
  2. 创建三个新任务如下:
  <property name="my.custom_res_folder" value="${basedir}/custom_res"/>
<property name="my.drawable_folder" value="${my.custom_res_folder}/drawable"/>
<property name="my.drawable_hdpi" value="${resource.absolute.dir}/drawable-hdpi"/>
<property name="my.drawable_mdpi" value="${resource.absolute.dir}/drawable-mdpi"/>
<property name="my.drawable_ldpi" value="${resource.absolute.dir}/drawable-ldpi"/>
<property name="my.drawable_default" value="${resource.absolute.dir}/drawable"/>
  <target name="my-make-custom-resource-directory">
<echo message="my-make-custom-resource-directory"/>
<mkdir dir="${my.custom_res_folder}"/>
<mkdir dir="${my.drawable_folder}"/>

<copy todir="${my.custom_res_folder}/layout">
<fileset dir="${resource.absolute.dir}/layout"/>
</copy>

<copy todir="${my.custom_res_folder}/menu">
<fileset dir="${resource.absolute.dir}/menu"/>
</copy>

<copy todir="${my.custom_res_folder}/values">
<fileset dir="${resource.absolute.dir}/values"/>
</copy>

</target>


<target name="my-make-res-small" depends="my-make-custom-resource-directory">
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_ldpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_mdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_hdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_default}"/>
</copy>

</target>

<target name="my-make-res-medium" depends="my-make-custom-resource-directory">
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_mdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_hdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_ldpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_default}"/>
</copy>

</target>

<target name="my-make-res-large" depends="my-make-custom-resource-directory">
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_hdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_mdpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_ldpi}"/>
</copy>
<copy todir="${my.drawable_folder}" overwrite="false">
<fileset dir="${my.drawable_default}"/>
</copy>

</target>
  1. 在运行其中一个 my-make-res-X 目标后,应创建一个新的资源文件夹
  2. 修改调试、打包和编译目标,并删除所有指向旧资源文件夹的属性,以及指向新资源文件夹的属性(您可能想要复制任务并将它们命名为其他内容
  3. 然后运行修改后的调试任务。

最佳答案

我会选择 Ant。这里有一个很好的教程给你:http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html

关于安卓 eclipse : Customizing the build process,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com