360手机卫士插件化RePlugin宣布开源

时间:2017-07-13 13:46

“RePlugin将在6月底开源,这将是我们献给安卓世界最好的礼物。”当我们宣布这一消息时,心中的激动,无以言表。是的,三年的“厚积”,如今的“薄发”,看似平凡的话,实际上却饱含了我们太多的激动、辛酸与泪。

那么今天,我们就来详细的和您聊一聊,这个从2014年中旬,正式在手机卫士上启用,并即将开源的360 RePlugin,究竟能为我们,更为您能带来什么。

欢迎您为RePlugin项目加Star、发送Pull Request,提Issue。我们会竭尽所能回答您们的疑惑。

RePlugin是什么

RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案。其主要优势有:

l 极其灵活:主程序无需升级(无需在Manifest中预埋组件),即可支持新增的四大组件,甚至全新的插件

l 非常稳定:Hook点仅有一处(Classloader)。其崩溃率做到仅为“万分之一”,并完美兼容市面上近乎所有的Android ROM。

l 特性丰富:支持近乎所有在“单品”开发时的特性,包括静态Receiver、Task-Affinity、自定义Theme、进程坑位、AppCompat等

l 进程任意:可让各组件跑在UI、常驻,甚至是“任意坑位进程”

l 易于集成:无论插件还是主程序,只需“数行”就能完成接入

l 自由隔离:想隔离就隔离(如不稳定或占资源的插件,易于释放),不想隔离的模块就混用(如各种基础、UI插件,都跑在UI进程内,性能优异)

l 管理成熟:拥有成熟稳定的“插件管理方案”,支持插件安装、升级、卸载、版本管理,甚至包括进程通讯、协议版本、安全校验等

l 数亿支撑:有360手机卫士庞大的数亿用户做支撑,三年多的残酷验证,确保App用到的方案是最稳定、最适合使用的

截止2017年6月底,RePlugin的:

l 插件数已达102个(其中,核心基础插件57个)

l 插件占应用比(指把代码资源铺开,插件占整个应用的比例)高达83%

l 年发版次数高达596次(平均每个工作日发版2-3次)

此外,目前360公司几乎所有的亿级用户量的APP,以及多款主流第三方APP,都采用了RePlugin方案。

总而言之,您们现在看到的RePlugin,可以说是“久经沙场”、“历经风雨”的方案,是在数亿设备上,历经三年多时间验证的成熟方案,也是可以直接拿来为您们所用的,稳定与灵活兼得的方案。

360手机卫士插件化RePlugin宣布开源

(RePlugin的核心优势)

360手机卫士插件化RePlugin宣布开源

(RePlugin与现有插件化框架的对比)

为什么要做RePlugin

插件化的好处

在讲述我们团队为何要在2013年底,设计一套属于自己的插件化之前,我们先来简单谈谈,有了插件化方案后,能为我们带来多大的便利,它究竟解决了什么问题。

对于用户而言

l 一切按需:利用插件化方案,可以让您的应用变得“小而精”。只有当用户需要使用某个特定功能时,才可以下载并开启,且可以随时卸载插件。这不仅可以减小APK大小、节省流量,还可明显的减少内存、内部存储占用,将更多空间让给珍贵的相片、文档等资料

l 随时体验新版:不用去应用市场等到大包升级,用户可以随时体验到新版的应用。现在红极一时的插件化、动态化(RN类)、热更新技术,都或多或少的在围绕此点而展开,可见其对用户带来的巨大价值

对于开发者而言

l 发版灵活:不用等市场上线,等用户主动升级,结果错过宝贵的时机。插件化方案可让您做到“随时发版”,不受“发版窗口期”的限制。甚至可针对不同地域、不同用户群、不同时段来更新,且可以快速验证自己的构想

l 组织结构灵活:一旦发版变得足够灵活,则组织结构上就可以由原来的“统一作战”变成“百团作战”,每个团队都在开发“自己的插件单品”,制定自己的发版计划

l 模块思维:可以让团队形成“模块意识”。当然,插件间、插件与宿主间允许有适度的耦合,但不会是“毫无控制”的那种。这让开发者们意识到,我们之间是“插件间的协定”,而非“同一屋檐下,随便胡来”,迫使团队以全新又合适的方式来开发应用

l Android原生优势:和动态化(RN类)不同,您可以使用最熟悉的Java/Kotlin语言,及各种原生API来开发您的插件。这使得应用能和系统更“契合”,充分利用原生的各种优势,且在性能上几乎感受不到影响

如上所述,无论是对用户,还是对开发者而言,使用插件化框架都是大有益处的,理应做到“飞入寻常应用家”。

然而,在实际调查过程中,我们却发现了一个和这些好处完全不匹配的奇怪现象。究竟是什么呢?

既然插件化这么好,为什么……