嗨,我正计划将 javac 编译器和 dx 转换器移植到 android..这将是一项微不足道的任务还是有任何主要的障碍?
我的想法是创建一个应用程序,以便人们可以在 android 设备中编译 java 源代码,甚至可以在相同的 android 设备中制作 android 应用程序......
这可能吗?
大多数人不会认为这是微不足道的。
您列出javac
和dx
作为需要移植的东西。这些当然是要求。您需要创建一个 ARM 端口javac
(以及它可能使用的所有不在 Android 上的系统库)。您还需要尝试创建一个dx
可以在 Dalvik VM 上运行的版本,因为它是为 Java VM 编写的。
除此之外,您至少需要移植:
aapt
以及它可能使用的所有不在 Android 上的系统库aidl
以及它可能使用的所有不在 Android 上的系统库jarsigner
,、keytool
)然后您需要创建一个可以调用 Ant 任务来进行构建的 Android 应用程序,记住 Android shell 相当有限,并且可以想象它自己的障碍会阻碍这个过程。这样的应用程序需要捕获stdout
并向stderr
用户报告结果(例如,编译错误)。您可能还需要推出自己的微型 IDE,除非现有的文本编辑器足以满足您的需求。
我估计这需要超过 100 个工程师月。因此,如果您的公司为该项目分配了一个规模不错的团队,您可能会在一年左右的时间内完成它。