Android 基础库 - 插件框架 - 需求定义

插件框架代码已经开源,欢迎使用并反馈。https://github.com/cmguo/android-plugins

基本功能需求:

项目

子项目

说明

代码插入

Java类

 

Dex优化

 

预置Dex

支持系统预置ODEX库

资源插入

数值资源

支持

图片资源

支持,当是图片资源需要share到主Context,具体机制还有待升入研究

布局资源

支持,创建的View可以在Context之间共享

组件资源

不支持Activity、Service、Provider,他们需要在Manifest中注册

Native库

CPU体系

支持多体系的SO库,但是需要与主程序一致

解压更新

插件APK更新时,更新从其解压出来的SO库

系统预置

支持系统预置SO库,插件APK不包含SO库

内置方式

Android6.0以上支持内置Native库,不需要解压安装

插件依赖

代码依赖

 

环境依赖

声明在特定主程序环境下被加载

资源依赖

资源依赖需要静态分配资源ID空间,操作比较复杂,也不是Android公开支持的方式,Android使用AAR机制,不能用于插件,所以插件不支持资源依赖

资源覆盖

覆盖目标

多目标同时覆盖

依赖关系

资源包也有依赖关系

覆盖样式

View、TextView,ListView,更多样式可以快速添加

切换皮肤

同时选择多个皮肤,立即生效

覆盖方式

覆盖Resource接口,覆盖LayoutFactory

插件管理

插件形式

APK,JAR

环境管理

对插件执行环境的组织管理

集成方式

集成方式包括:系统预置,应用内置,外部存储和动态下载等

动态更新

检测新版本,下载更新。

热更新

不重启应用完成更新。插件已经暴露的类(class)不能回收,类的实例释放需要等待回收,多线程同步处理也有挑战,难度很大。

其他项目

SDK兼容性

支持兼容性检查。插件的SDK Level如果在目标平台不匹配,会加载失败

插件描述

插件名称,作者,描述,版本,图标

权限声明

不支持,插件不能声明特殊权限,需要主程序声明

使用共享库

不支持,插件使用的共享库需要在主程序声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值