将javac和dx移植到android

时间:2011-12-31 14:47:18

标签: android port javac dx

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

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

这可能吗?

1 个答案:

答案 0 :(得分:4)

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

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

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

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

然后你需要创建一个可以调用Ant任务进行构建的Android应用程序,记住Android shell相当有限,并且可以想象在这个过程中存在自己的障碍。此类应用需要捕获stdoutstderr并将结果报告给用户(例如,编译错误)。您可能还需要使用自己的微型IDE,除非现有的文本编辑器足以满足您的需求。

我估计这可以超过100个工程师月。因此,如果您的公司为该项目委派了一个规模很大的团队,您可能会在一年左右的时间内完成。