2

Android 是否有某种替代工具链或语言可以生成独立的 APK 文件?

理想情况下,它不应该依赖于庞大且不断变化、不断升级的官方 Android SDK。

作为一个比喻,尽管微软一直在发布新的 Visual Studio,但我正在寻找一个与PowerBASICMingw如何以普通 Windows 为目标的粗略等价物。

如果此语言或工具链本身是 Android 程序,则加分...

4

2 回答 2

6

您可能知道也可能不知道,Android 工具链基于一些简单的想法:

  • 您的代码是使用普通的旧 java 编译器编译的,并链接到 Android 存根 (android.jar) 以链接到系统库。
  • 编译后代码转换为dex格式。您实际上可以自己运行它,只需执行dx --help. 该dx工具的工作是获取 Java 类文件并将它们转换为 dex 代码,这是一个非常简单的编译,涉及从基于堆栈到基于寄存器的 vm,以及一些其他更改。
  • 完成此操作后,使用一组 apk 工具构建 apk。它曾经是apkbuilder,但此后已被弃用。您实际上也可以自己运行它。所有的 APK 只是清单、资源和 dex 形式的所有代码的单个文件的集合。(即,许多 .class 文件编译为单个 .dex ,由于包含指针网络,该文件要小得多)。

因此,Android 工具链并没有那么复杂。自定义构建过程由 ant 构建规则处理,这些规则在 SDK 范围内定义build.xml,您可以在platform-tools/目录 (iirc) 中找到该规则。但是,要使用此自定义构建环境生成新的基线项目,您只需使用android update project命令。

虽然我不确定这是否是您希望的响应,但我希望它能消除构建过程的歧义。它并不是一个真正复杂的工具链,其中大部分是现成的 Java,而不是特定于 Android 的(使其特定于 Android 的是用于动态链接系统代码的库特定存根)。除此之外,一旦你有了一组类,你只需要运行一些命令来制作一个 Android 解包的可执行 APK。我怀疑任何针对 JVM 的工具(并且能够与 Android 特定的动态链接 API 链接)都可以执行类似的生成类文件并使用此工具链来编译其余部分的过程,尽管显然是自动化的 ant 构建过程使它更简单。

编辑:

经过一番挖掘,我发现了这个相关的 android-developers 线程。 令人不安的报价:

目前,我们根本没有资源来支持想要使用自己的构建系统的人,但我们真的希望我们可以。在许多方面,我们试图通过将逻辑明确分离到 eclipse 或 ant 特定代码(因此在工具和 ADT 中到处都有大量 jar 文件)来简化其他工具供应商,但这不是其中之一。

但是,您也可能会发现此链接很有帮助。

于 2012-06-11T00:08:43.320 回答
2

Terminal-IDEAIDE几乎就是我想要的。两者都在 Android 上运行。

于 2012-06-11T01:40:26.977 回答