1

我目前正在开发一个允许我动态加载模块的 android 应用程序。因此,我可以拥有任意数量的模块,而我的主应用程序只需要加载它们。

我已经设法在很大程度上完成了这项工作 - 但我想创建一个可执行文件来“加速”模块创建过程,甚至只是找到一种方法来简化所涉及的步骤。

要创建一个模块,我目前必须执行以下操作:

  1. 构建包含我的模块所需文件的 android 项目 [它们都不是活动类 - 所以我根本不必担心 androidmanifest 文件]
  2. 使用eclipse IDE jar创建工具选择我要编译成.class的src文件放入我的jar中,并为这个jar指定我自己的自定义manifest文件,以及将我用于模块的所有图片打包成罐子也是。
  3. 然后使用 jar 文件我对其运行 dex creator 命令从 jar 中包含的类文件生成 .dex 文件,然后使用 aapt 命令将 dex 文件推回 jar 文件中。
  4. 此时,jar(现在它是一个模块)已创建,我可以将它放在服务器上进行下载,在我的应用程序中下载模块并使用反射在我的应用程序中加载我需要的所有代码。

我研究过用蚂蚁建造。对于我希望实现的目标来说,它看起来相当复杂,我不太确定从哪里开始。

我显然不能使用简单的 javac 来编译我的模块 src 中包含的 java 文件,因为所有这些代码都引用了 android sdk 以及在我的主应用程序和我各自的模块之间共享的静态库。

目前我使用 Eclipse IDE 来创建包含所有打包图像、类文件、清单的初始 jar,然后我使用两个单独的批处理文件调用 android-sdk 来创建 dex 并将 dex 推送到 jar 中。

我可以用一个简单的步骤来简化这个过程吗?或者正在尝试这样做——一个完整的项目?

4

1 回答 1

0

我研究过用蚂蚁建造。对于我希望实现的目标来说,它看起来相当复杂,我不太确定从哪里开始。

Ant 的文档是在线的,使用 An t构建 Android 项目的文档也是如此。唯一的区别是您需要向<jar>Antbuild.xml文件中添加一个任务,就像我在几个项目中所做的那样,例如这个

<target name="jar" depends="debug">
    <jar
        destfile="bin/CWAC-EndlessAdapter.jar"
        basedir="bin/classes"
    />
</target>

也欢迎您考虑 Maven。虽然我个人不使用 Maven,但它有很多粉丝和社区驱动的 Android 支持。

也欢迎您使用任何适合您的编程语言编写自己的构建脚本:Java、Ruby、Perl、Python 等。

我显然不能使用简单的 javac 来编译包含在我的模块 src 中的 java 文件,因为所有这些代码都引用了 android sdk 以及在我的主应用程序和我各自的模块之间共享的静态库。

每个 Android IDE、Ant 和 Maven 等等,“使用简单的 javac 来编译 [一个 Android 项目的] java 文件”。他们只需将适当的 Android SDK JAR 文件添加到构建路径即可。

于 2012-11-08T00:05:42.047 回答