android插件化

本文探讨了Android插件化的概念、优缺点,核心在于类加载和资源加载的实现。面对四大组件启动、资源命名冲突、Android P后的反射限制及插件与宿主三方库冲突等问题,文章提出了各种解决方案,包括占坑法、欺上瞒下、资源ID的定制和编译脚本优化。随着Android系统的更新,插件化的未来趋势和替代方案成为关注点。

 

概述

       插件化是一种动态升级app功能的解决方案,不同于热修复(仅仅是修复功能),类似于RN、Weex(目的类似)。都是为了在不发版本的情况下,可以让用户用上最新的功能。不过RN、Weex还额外支持跨平台。相对于RN和Weex,插件化有以下的优缺点:

 

优点:

  • 对于业务方,无额外的学习成本,基本无感知
  • 性能等同于原生、可以做任何原生可以做的事情
  • 天然代码隔离、使得插件化的代码更加的“高内聚、低耦合”
  • 插件并发开发,开发之间互不影响

 

缺点:

  • 稳定性差,使用了大量大反射来实现,尤其是Android P以后Google对系统API的调用做出了限制,虽然有办法跳过(后面会说),但是却无疑增加了使用风险。
  • 安全性低,恶意插件将会有比较大的权限,来做破坏软件的事情。(一般会添加签名校验)
  • 插件化目前没有一套通用的规范,基本上都是各用各的,导致插件无法通用
  • 只适用于android,无法和iOS保持方案统一

 

事实上,有一部分的项目采用动态化、不仅仅是为了其动态性,更是为了对模块化的升级,对于大型复杂项目而言,单纯的“模块化”已经不能很好的隔离分解项目的复杂性,而“插件化”可以帮助项目,将独立且足够内聚的业务独立出来成为一个插件,然后交给其他团队来维护。

 

康威定律:软件源代码的组织结构要与开发团队的组织结构尽量保持一致

 

 

 

详情

 

类加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值