【问题标题】:Implementing Hot code swap for Dalvik为 Dalvik 实现热代码交换
【发布时间】: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这只是一个想法,我自己没有测试过这个想法。

标签: android dalvik jrebel


【解决方案1】:

JRebel for Android 现在处于测试阶段,您现在可以注册以获取邀请。希望这将是我们俩都想要的。

【讨论】:

    【解决方案2】:

    不久前我获得了JRebel for Android 测试版访问权限。而且它的工作速度已经非常快了:在更改后重新加载项目需要 ~20 秒。 20 秒 比使用Gradle 时的2 分钟 快得多。

    Android 仍然不是实时编码,但JRebel 团队正在努力优化。我敢打赌JRebel for Android 的稳定版本将接近实时编码。

    顺便说一句,JRebel for Android 有其他选择:

    1. Layout Cast - 目前非常不稳定,需要Android 5+
    2. Buck from Facebook。我自己没有尝试过,但基准测试表明它比Gradle 构建更快。值得一试。

    【讨论】:

    • protify 很稳定,而且速度极快,但需要一点技巧才能运行 (github.com/pfn/protify)。
    • 您能在几秒钟内定义“极快”吗?我对“make-reload”时间感兴趣。
    • 在 1 秒内完成一个简单的 hello world。具有 20mb 资源、100kloc 和 60 个库的大型应用程序需要 10-20 秒
    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2014-02-28
    • 2014-09-16
    • 1970-01-01
    相关资源
    最近更新 更多