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