写点什么

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:001211
用户头像

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

关注

评论

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

重新学架构之微信业务与学生管理系统

陈华英

「架构实战营」

CWE视图层级关系解析:节点关系查询

华为云开发者联盟

软件开发 cwe 软件缺陷 CWE视图层级关系 节点关系

多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!

华为云开发者联盟

安全 多方计算 数据保护 华为云tics服务 差分隐私算法

投票开始 | 和你一起见证龙蜥社区年度优秀开发者的诞生

OpenAnolis小助手

开源 开发者 活动 社群 比赛

告警关联中的频繁项集挖掘问题

云智慧AIOps社区

算法 智能运维 智能告警 人工智能「 云智慧

Flink 流批一体平台 StreamX 1.2.1 正式发布

ApacheStreamPark

spark FlinkSQL 流批一体 Flink 平台 一站式平台

小程序开发中使用 JS

Speedoooo

请求管理 | 洞态 IAST 在好大夫 SDL 中的最佳实践

火线安全

信息安全 SDL DevSecOps

企业微信业务架构分析

Geek_1b4338

#架构实战营

Hive底层数据存储格式详解

五分钟学大数据

hive 1月月更

Hive SQL语句的正确执行顺序

五分钟学大数据

1月月更

华为云FusionInsight连续三次获得第一 加速释放数据要素价值

数据湖洞见

大数据 FusionInsight 华为云

把复杂交给我们,把简单还给你丨TiVP 让 SQL 执行计划可视化

PingCAP

拍乐云发布互动白板2.0,首创超高清文档演示和滚动浏览

拍乐云Pano

WebRTC RTC opengl

品高股份加入,龙蜥社区迎来又一家云计算厂商

OpenAnolis小助手

Linux 开源

深度评测丨GaussDB(for Redis)大Key操作的影响

华为云开发者联盟

redis 运维 GaussDB(for Redis) 大Key KV查询

从 Gitee 到极狐GitLab 的迁移指南

极狐GitLab

迁移 gitee 极狐GitLab

征集用户| 填写 2022 Apache Pulsar 用户调查问卷,抽取丰厚礼品

Apache Pulsar

开源 云原生 中间件 Apache Pulsar 社区

面试官太难伺候?一个try-catch问出这么多花样

阿Q说代码

效率 字节码指令 1月月更 try-catch finally-return

OpenCloudOS开源操作系统社区迎来首个正式版本

科技热闻

模块一作业

Geek_ec866b

架构实战营

使用 Lambda 表达式实现超强的排序功能

CRMEB

鸿蒙轻内核源码分析:虚拟文件系统VFS

华为云开发者联盟

鸿蒙 文件系统 鸿蒙轻内核源码 虚拟文件系统VFS 虚拟文件系统

专访深职院XR专家 | 实时云渲染赋能虚拟仿真实训,打造5G+XR智慧教育平台

3DCAT实时渲染

教育 XR VR/AR 云渲染 元宇宙

Android C++系列:JNI中的Handler--ALooper

轻口味

c++ android jni 1月月更

网易Go语言通用开发框架-Ngo开源啦

月读

golang Go 语言 开源治理 开源中国

凡泰极客荣获2021 InfoQ“最佳技术产品营销奖”

FinClip

InfoQ

做了这么多年架构师,我终于理解了什么是架构设计

博文视点Broadview

面试突击19:为什么ConcurrentHashMap不允许插入null值?

王磊

V7.1:新字段“嵌入”,实现自定义元素交互

明道云

2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨

墨天轮

数据库 opengauss TiDB 国产数据库

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