返回探索
RePlugin

RePlugin - Android插件化开发工具

Android插件化开发框架,支持动态加载与热更新

4
7,349 浏览
数字营销
访问官网

详细介绍

RePlugin 仓库中文介绍文档

RePlugin 是一个灵活、稳定、易于使用的 Android 插件框架,由 360 提供,汇聚/支持/包含 Android 应用插件化开发的核心能力。

要点:

  • 开头就要说清楚:这是什么工具、解决什么问题
  • 包含Stars数(如有)、维护者信息
  • 1-3句话,简洁有力

一、核心信息速览

维度 详情
:--- :---
仓库地址 [RePlugin](https://github.com/Qihoo360/RePlugin)
许可证 Apache License 2.0
核心定位 提供 Android 应用插件化解决方案,实现动态加载组件、减少主包体积、快速迭代功能
主要语言 Java
适用人群 Android 开发者、插件化开发团队、需要热更新的 App 团队
关键亮点 极大灵活性;极高稳定性;丰富功能支持;集成简便

二、核心功能

功能模块 描述 典型场景
:--- :--- :---
插件化支持 支持 Activity、Service、Receiver、Provider 等组件插件化 快速上线新功能
动态加载 无需升级主应用即可加载新插件 实现热更新与功能扩展
高稳定性 使用单一 ClassLoader 钩子,避免 Binder 钩子带来的兼容性问题 适用于各种 Android ROM
版本管理 支持插件安装、升级、卸载及版本控制 多版本并行运行
资源隔离 插件资源与主应用资源相互隔离 避免资源冲突
安全机制 提供安全校验和进程通信机制 确保插件运行安全
兼容性强 兼容几乎全部 Android ROM 适用于多种设备环境

三、快速上手

1. 环境准备

  • JDK 8 或以上
  • Android Studio 3.0 或以上
  • Gradle 4.0 或以上

2. 安装方式

在项目的 build.gradle 文件中添加以下依赖:

dependencies {
    implementation 'com.qihoo360.replugin:replugin-host-lib:2.3.0'
}

3. 基础配置

build.gradle 中添加新的 Maven 仓库地址:

repositories {
    maven { url "http://maven.geelib.360.cn/nexus/repository/replugin/" }
}

4. 核心示例

// 初始化 RePlugin
RePlugin.install(this);

// 加载插件
RePlugin.loadPlugin("plugin.apk");

// 启动插件中的 Activity
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.plugin", "com.example.plugin.PluginActivity"));
startActivity(intent);

四、核心亮点

  1. 极大灵活性:无需升级主应用即可支持新插件。
  2. 极高稳定性:使用单一 ClassLoader 钩子,确保极低崩溃率(0.01%)。
  3. 丰富功能支持:支持几乎所有 Android 功能,如静态 Receiver、TaskAffinity 等。
  4. 集成简便:只需少量代码即可接入,适合快速开发。

五、适用场景

  1. 功能快速迭代:通过插件化实现功能的快速上线与更新。
  2. 减少主包体积:将部分功能封装为插件,降低主包大小。
  3. 多版本并行运行:支持多个插件版本同时运行。
  4. 热修复与热更新:通过插件实现无需重新发布应用的修复与更新。

六、优缺点

优势

  • 提供完整的插件化解决方案,简化开发流程。
  • 高度稳定,适用于各种 Android 设备。
  • 支持丰富的 Android 功能,兼容性强。

不足

  • 学习成本较高,需理解插件化原理。
  • 需要额外处理资源和类路径的问题。

七、与同类工具对比(可选)

工具 类型 核心差异
:--- :--- :---
RePlugin 开源 提供完整插件化方案,兼容性强,适合大型项目
Android Plugin Loader 开源 功能相对简单,适合轻量级插件需求

八、总结

RePlugin 是一款适合 Android 开发者用于实现插件化开发的优秀框架,具有高度灵活性和稳定性,特别适合需要快速迭代功能或优化主包体积的应用。但其学习成本较高,不适合对插件化不熟悉的开发者。

相关工具