0

嗨,我正计划将 javac 编译器和 dx 转换器移植到 android..这将是一项微不足道的任务还是有任何主要的障碍?

我的想法是创建一个应用程序,以便人们可以在 android 设备中编译 java 源代码,甚至可以在相同的 android 设备中制作 android 应用程序......

这可能吗?

4

1 回答 1

3

大多数人不会认为这是微不足道的。

您列出javacdx作为需要移植的东西。这些当然是要求。您需要创建一个 ARM 端口javac(以及它可能使用的所有不在 Android 上的系统库)。您还需要尝试创建一个dx可以在 Dalvik VM 上运行的版本,因为它是为 Java VM 编写的。

除此之外,您至少需要移植:

  • aapt以及它可能使用的所有不在 Android 上的系统库
  • aidl以及它可能使用的所有不在 Android 上的系统库
  • LLVM 编译器
  • Ant(用 Java 编写,但用于 Java VM,并且很可能不会在没有修改的情况下在 Dalvik VM 上运行)
  • 构建过程使用的整个导入的 Ant 任务集(也是为 Java VM 编写的)
  • 这些 Ant 任务在构建过程中使用的其他 Java SDK 工具(例如jarsigner,、keytool

然后您需要创建一个可以调用 Ant 任务来进行构建的 Android 应用程序,记住 Android shell 相当有限,并且可以想象它自己的障碍会阻碍这个过程。这样的应用程序需要捕获stdout并向stderr用户报告结果(例如,编译错误)。您可能还需要推出自己的微型 IDE,除非现有的文本编辑器足以满足您的需求。

我估计这需要超过 100 个工程师月。因此,如果您的公司为该项目分配了一个规模不错的团队,您可能会在一年左右的时间内完成它。

于 2011-12-31T15:16:04.710 回答