用于创建Android程序的替代语言或工具链

时间:2012-06-10 23:48:05

标签: android ide apk dalvik toolchain

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

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

作为一个寓言,我正在寻找一个粗略的等同于PowerBASICMingw如何定位普通Windows,尽管微软一直在发布新的Visual Studios。

如果此语言或工具链本身是Android程序,则会获得积分......

2 个答案:

答案 0 :(得分:6)

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

  • 您的代码使用普通的旧java编译器编译,并链接到Android存根(android.jar)以与系统库进行链接。
  • 编译后,代码将转换为dex格式。您实际上可以自己运行,只需执行dx --helpdx工具的工作是获取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构建过程使它更简单。

编辑:

经过多次挖掘后,我发现this relevant android-developers thread.令人不安的一句话:

  

目前我们根本没有资源来支持那些人   想要使用自己的构建系统,但我们真的希望能够。在   我们通过很多方式明确地让其他工具供应商轻松实现   将逻辑分离为eclipse或ant特定代码(因此众多   jar文件在工具和ADT中无处不在,但这不是一个   他们。

但是,您可能还会发现this link有帮助。

答案 1 :(得分:2)

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