Android是否有某种替代工具链或语言,可以生成独立的APK文件?
理想情况下,它应该不依赖于庞大且不断变化的,不断升级的官方Android SDK。
作为一个寓言,我正在寻找一个粗略的等同于PowerBASIC和Mingw如何定位普通Windows,尽管微软一直在发布新的Visual Studios。
如果此语言或工具链本身是Android程序,则会获得积分......
答案 0 :(得分:6)
您可能或可能不知道,Android工具链基于一些简单的想法:
dx --help
。 dx
工具的工作是获取Java类文件并将它们转换为dex代码,这是一个非常简单的编译,涉及从基于堆栈到基于寄存器的vm,以及一些其他更改。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-IDE和AIDE几乎就是我想要的。两者都在Android上运行。