@lsmn
2016-02-13T07:07:50.000000Z
字数 2793
阅读 2559
移动
Java
Android
201602
在JRebel for Android的第一个稳定版本发布之后,InfoQ联系到了ZeroTurnaround创始人兼首席执行官Jevgeni Kabanov及JRebel for Android项目经理Sten Suitsev,就他们创建该产品的初衷以及将来计划推出何种新产品对他们进行了采访。
在JRebel for Android的第一个稳定版本发布之后,InfoQ联系到了ZeroTurnaround创始人兼首席执行官Jevgeni Kabanov及JRebel for Android项目经理Sten Suitsev,就他们创建该产品的初衷以及将来计划推出何种新产品对他们进行了采访。
InfoQ:是什么让你们决定创建JRebel for Android的?
Jevgeni Kabanov:对于ZeroTurnaround每项重大的投资,我们都会仔细权衡机会和选择。在这种情况下,决定性因素是,市场上有一个我们充分理解的大问题,而我们可以重用已有的、独一无二的技术来解决那个问题。
Sten Suitsev:是这样。我们认识到,可以重用JRebel已有的核心代码——我们已经使用了9年的Java类重加载方案——创建JRebel for Android。不用说,有许多特定于Android的技术需要处理,但事实是,当我们推动这个项目时,我们不用完全从头开始创建一种有巨大差异的产品。
InfoQ:在开发JRebel for Android的过程中,难度最大的技术挑战是什么?
Jevgeni Kabanov:我们每天都会遇到技术挑战,但其中最大的一个挑战是使“应用更新”或者运行时更新能够适应不同规模的项目。一方面,这意味着,不必经历整个重新打包和重新部署的过程就可以应用更新,这点我们是通过JRebel for Android Agent解决的。另一方面,我们希望大项目的更新速度同小项目一样快,这就需要能够增量更新;从来都没有Android工具支持增量更新或安装,因此,涉及Java编译和Android资源打包有几个痛点。
InfoQ:在Android之后,JRebel的下一步将是什么?你们计划支持其他Android衍生系统吗,比如Android TV、Android Wear或Android Auto?
Jevgeni Kabanov: 这里必须重点提一下,JRebel和JRebel for Android是不同的产品,它们各自有自己的路线图。
Sten Suitsev:确实。虽然除了上面提到的核心代码外还重用了一些其他的代码,但每款产品所追求的目标是不同的。JRebel for Android产品主要关注特定于Android的特性,如增量构建和快速设备同步。JRebel for Java主要关注改进同Java生态系统的集成以及更好地支持Docker、虚拟机和云。
Jevgeni Kabanov:已经说过,虽然JRebel for Android并没有为Android TV、 Wear和Auto提供官方支持,但实际上,它们的技术栈大部分都是同手机和平板电脑应用共享的。因此,简单来说,它可能已经可以工作在这些系统上!在这一方面,我们希望收到用户的反馈,如果用户愿意尝试的话。
长期来看,我们考虑将快速重新部署的理念带到其他平台,如.NET和iOS。不过,这两个平台需要从头开发JRebel核心代码,而不是像我们创建JRebel for Android那样,大量重用现有的代码库。因此,这需要的工作量要多得多。
InfoQ:JRebel for Android目前可以用于Android Studio,在不远的将来,你们计划支持其他IDE环境吗?
Sten Suitsev:我们的核心JRebel产品已经完全支持各种各样的IDE环境。对于 JRebel for Android,除Android Studio之外,我们有类似的打算。事实上,许多用户已经要求支持IntelliJ IDEA。我们正在从Android Studio插件中分离我们的逻辑,并将其置入我们的Gradle插件,这将使我们可以提供IntelliJ IDEA支持。这是我们优先处理的工作,很快就会推出。
InfoQ:如果将逻辑移到Gradle插件,那是否意味着开发人员可以从命令行使用JRebel for Android?
Sten Suitsev:现在还不能。但将来也许可以。
InfoQ:从另一方面来说,部分Android Studio用户仍然会选择Maven作为他们的构建工具,这部分人能够从JRebel for Android受益吗?
Sten Suitsev:现在还不能。我们已经收到了一些来自Maven用户的请求,但目前,我们还没有研究扩展到Gradle之外的其他构建系统。
InfoQ:JRebel for Android支持Kotlin,您能告诉我们是什么让你们做出这个决定吗?你们考虑支持其他语言了吗?
Sten Suitsev:说实话,这并不是个困难的决定,因为我们主要是在字节码层面进行操作。这就是说,我们可以支持所有兼容Dalvik和ART的语言。事实上,如果你实在想那么做的话,在已经集成了Gradle的情况下,你甚至还可以尝试使用Scala和Groovy。也许,我们将会把那作为一项挑战留给真正热心的读者!
InfoQ:您认为Android采用OpenJDK将会为Android开发带来什么改变?你们必须对JRebel for Android做什么调整吗?
Jevgeni Kabanov:我希望这意味着Android开发人员从此可以获得更快的Java版本更新。在我们看来,这不会影响我们的工作方式,因为关于JRebel如何集成最新的Java版本,我们已经积累了许多知识,到现在为止,我们已经支持它有一段时间了。我们只需要在JRebel for Android团队中运用那些知识。
Jevgeni Kabanov是ZeroTurnaround的创建者兼首席执行官。Jevgeni获得了爱沙尼亚塔尔图大学的博士学位,他为多种科学出版物、专利和开源项目作出过贡献。Jevgeni获得了多个奖项,包括Order of White Star和爱沙尼亚共和国的5th Class。
Sten Suitsev是JRebel for Android的产品经理。起初在爱沙尼亚塔尔图大学学习期间,他是一名Android移动开发人员。之后,他在各种iOS、Android和Windows项目中担任产品经理的角色。在业余时间,他喜欢钓鱼或踢足球。
查看英文原文:Jevgeni Kabanov and Sten Suitsev, from ZeroTurnaround, Talk about JRebel for Android