免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

ZeroTurnaround 创始人 Jevgeni Kabanov 及项目经理 Sten Suitsev 谈 JRebel for Android

  • 2016-02-14
  • 本文字数:2182 字

    阅读完需:约 7 分钟

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

2016-02-14 18:001182
用户头像

发布了 1008 篇内容, 共 388.4 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

L2必读 | 走进 AnyTrust 技术底层,数据可用性和最小信任假设如何实现

TinTinLand

区块链 以太坊 扩容 技术文章

开源一夏 | 拥抱新技术?你需要考虑的方面

微枫Micromaple

开源 经验总结 技术栈 技术分享 8月月更

史上最全的Java并发系列之Java中的并发工具类

自然

多线程 并发 8月月更

vue高频面试题合集(四)附答案

helloworld1024fd

Vue

Spring 全家桶之 Spring Data JPA(二)

小白

8月月更

浅谈营销型企业站文案应该如何写

石头IT视角

第一个spark应用开发详解(java版)

程序员欣宸

Java spark 8月月更

开源一夏 | 你不能错过的 Go 强大图形化测试工具

宇宙之一粟

开源 测试框架 testing Go 语言 8月月更

史上最全的Java并发系列之Java中的13个原子操作类

自然

多线程 并发 Java core 8月月更

vue高频面试题合集(三)附答案

helloworld1024fd

知识管理的成熟,需要具备什么条件?

Baklib

基于AQS实现自己的同步工具

自然

多线程 并发 8月月更

SRv6在5G移动网络中的部署方式

穿过生命散发芬芳

8月月更 SRv6

slb与nat及eip的相关联

肖飞码字

负载均衡 NAT 弹性公网IP

shell脚本之格式化输出

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析

阿里巴巴云原生

阿里云 RocketMQ 云原生

参与openEuler社区不到1年,我成为了社区Maintainer……

openEuler

openEuler 开源社区 社区运营 #开源

编译调试插件功能总结

乌龟哥哥

8月月更

“以太坊杀手” Polkadot 何以在一众公链中脱颖而出

One Block Community

区块链 去中心化 跨链技术 波卡生态

虚位以待!一大波 Web3 公司开发岗位来袭

TinTinLand

区块链 软件开发 招聘

开发者时薪高达1200美元?一文带你走近Move语言的编程魅力!

TinTinLand

区块链 开发者 开发语言 Move

软件架构治理 之 如何度量软件架构

码猿外

架构设计 软件架构治理

复盘:如何更好的进行技术面试

老张

面试

每日一R「04」常用的智能指针

Samson

8月月更 ​Rust

数据结构——栈

工程师日月

8月月更

真会玩!用手机吹气球你见过不?

岛上码农

flutter ios 前端 安卓开发 8月月更

架构实战营模块四作业

zhihai.tu

转转用例平台系列 - 脑图组件2.0

转转技术团队

测试开发 测试用例平台开发

估价器测试工具的实现

转转技术团队

测试工具

Spring Cloud Sleuth简述

阿泽🧸

8月月更 Spring Cloud Sleuth

RocketMQ顺序消息

急需上岸的小谢

8月月更

ZeroTurnaround创始人Jevgeni Kabanov及项目经理Sten Suitsev谈JRebel for Android_Java_Abraham Marín Pérez_InfoQ精选文章