阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法捡代码论坛官方微信,不定期分享免费优质资源下载
查看: 1127|回复: 0

[安卓] 成熟易懂的Android插件补丁框架(可直接商业化的项目,日活千万级项目多年使用验证稳定)

[复制链接]

2486

主题

2683

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
86612
QQ
发表于 2017-6-27 11:03:39 | 显示全部楼层 |阅读模式
支持特性
  • 支持插件的安装、升级、卸载、版本管理
  • 支持插件调用宿主的类与资源。要在插件中使用宿主的资源ID,需要使用public.xml将资源ID固定,public.xml如何使用请自行搜索,并将该ID添加到sdk-jar中,如果只是插件调用宿主中的某个类,然后这个使用了宿主资源则不需处理。
  • 支持运行时动态升级加载插件。调用PluginManager.getPlugin(pluginId).install()安装完成之后,只需要调用PluginManager.loadLastVersionPlugin(pluginName)如果没加载过插件会加载最新插件,如果已加过老版本的该插件则会替换为该插件的最新版本。
  • 插件与宿主的关系和apk与android系统的关系接近。 如果插件中有与宿主重名的类,这个插件中的类只能被插件使用,宿主是不会使用插件中的类的。宿主只能通过显式loadClass的方式才能访问插件。
  • 当插件版本过多又怕新插件在早期apk中不支持,应编写一个类CTS测试(google强制厂商执行的兼容性测试)的小插件,该插件中会调用所有之前插件用到的宿主中的所有方法和成员等等。如果该小程序跑过了则说明新版本apk兼容所有插件。
  • 支持so以及so的动态实时升级。
  • 插件与补丁支持加固方案,单dex或者多个dex文件情况,已对android 1.5以上版本(已适配最新的android N)和厂商定制的android系统进行了适配,适配了各种机型和厂商自己的系统(包括yunOS等)。测试无资源加载找不到的问题,存在极个别的第一次加载后类找不到的情况,尝试几次就可以了。(概率极低,<0.0001%)
  • 对性能无明显影响。经过在android 2.2及以上进行高强度测试,对性能无明显影响。
  • 支持bug fix的补丁功能,补丁修复最小单位是java中的class,补丁中可以有资源,也可以使用宿主的资源,它其实跟插件是一样的,只不过补丁的class与宿主的class重名了,发现重名就替换,支持单dex、多dex(方法数超了的情况)。补丁对性能有微弱影响(个人认为可以忽略),android 4.4及以上完全无影响。
  • 如果你的apk没有进行代码混淆,补丁也可以产生与插件相同的作用来进行功能的更新。
不支持的特性
  • 不支持插件中使用activity动画。如果要使用activity动画请将activity动画用到的xml文件放到宿主中,否则卡死。
  • 不支持插件有自己的Application,插件获取的是宿主的application。
  • 不支持动态升级插件的AndroidManifest.xml文件,所有试图修改AndroidManifest.xml的功能都需要升级宿主。不过这种情况很少,目前我们还没遇到过。
  • 不支持补丁实时加载,下次启动才能加载,否则内存中的对象会乱掉,如之前保存了A类的实例,现在A类已经被实时替换为B类了,那么之前的A类实例就不能转为B类了。
  • 不支持插件在xml使用宿主的自定义属性。(支持这个性价比太低,请使用其他替代方法)
  • 其他还不清楚,还请大家进行测试。
文档
使用方法及代码原理见 Zeus Wiki

地址:
  1. https://github.com/iReaderAndroid/ZeusPlugin
复制代码



捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。 捡代码论坛微信号

回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|RSS订阅|Archiver|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2019-6-17 03:04 , Processed in 0.167587 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表