【发布时间】:2013-05-12 19:39:02
【问题描述】:
我的公司进行了大量的 Android 开发,但我们受到漫长的编译、dex、打包、部署周期的阻碍。鉴于 Dalvik 虚拟机和工具的当前状态,是否可以为 Android 构建类似 JRebel 的东西?
【问题讨论】:
-
1) 定义长。 2)你现在在做什么? (即 eclipse/maven/gradle 什么?)
-
我使用的是 Eclipse,但每次构建项目时都会有 15-30 秒的延迟,以查看可能微不足道的更改(布局更改)。可以像在 JRebel 或 Play! 中那样使用动态类加载来使更改立即可见吗?
-
我倾向于不,但也许有人会纠正我。如果您要部署到模拟器/设备,那么是的,因为它通过 adb,您会有一些滞后。您的 PC 无法直接访问 Dalvik VM。请记住,您是交叉编译和打包,而不是将类文件部署到本地网络服务器。如果您只编辑 xml 布局,您可以尝试使用布局预览工具来查看它的外观。如果我要更改代码,我预计会出现上述延迟。
-
您要部署到什么硬件设备上?你的apk有多大?我假设您使用的是通常的 Android Java 和 xml。我无法回答你关于热代码交换的问题,我不知道那个问题的答案,但也许你可以做一些其他的事情来最小化你的构建和部署周期。
-
我想答案是肯定的,但是超级难。例如,Google App Inventor 已经成功实现了惊人的实时代码热交换功能,但我相信他们的底层是用 Scheme/LISP/C 编写的,并且他们编写了自己的 VM。附带说明一下,如果您的 apk 太大,也许您可以重建设备本身已更改的部分代码,而无需再次传输整个 apk。 code.google.com/p/terminal-ide这只是一个想法,我自己没有测试过这个想法。