Android插件化学习

最近在研究Android 插件化开发,大神“伯努力不努力”的博客写的很好,在此献上膝盖,特此推荐,想了解插件化开发的同学可以看一看大神的博客!

大神博客地址:http://blog.csdn.net/u012124438/article/category/6529583

Android插件化学习之路(一)之动态加载综述 
Android插件化学习之路(二)之ClassLoader完全解析 
Android插件化学习之路(三)之调用外部.dex文件中的代码 
Android插件化学习之路(四)之使用插件中的R资源 
Android插件化学习之路(五)之代理Activity 
Android插件化学习之路(六)之动态创建Activity 
Android插件化学习之路(七)之DL插件开发该注意的坑 
Android插件化学习之路(八)之DynamicLoadApk 源码解析(上) 
Android插件化学习之路(九)之DynamicLoadApk 源码解析(下)


插件化开发技术的作用与缺点

作用 
1) 规避APK覆盖安装的升级过程,提高用户体验,顺便能 规避 一些安卓市场的限制; 
2) 动态修复应用的一些 紧急BUG,做好最后一道保障; 
3) 当应用体积太庞大的时候,可以把一些模块通过动态加载以插件的形式分割出去,这样可以减少主项目的体积,提高项目的编译速度,也能让主项目和插件项目并行开发; 
4) 插件模块可以用懒加载的方式在需要的时候才初始化,从而 提高应用的启动速度; 
5) 从项目管理上来看,分割插件模块的方式做到了 项目级别的代码分离,大大降低模块之间的耦合度,同一个项目能够分割出不同模块在多个开发团队之间 并行开发,如果出现BUG也容易定位问题; 
6) 在Android应用上 推广 其他应用的时候,可以使用动态加载技术让用户优先体验新应用的功能,而不用下载并安装全新的APK; 
7) 减少主项目DEX的方法数,65535问题 彻底成为历史(虽然现在在Android Studio中很容易开启MultiDex,这个问题也不难解决);

缺点 
1) 开发方式可能变得比较诡异、繁琐,与常规开发方式不同; 
2) 随着动态加载框架复杂程度的加深,项目的构建过程也变得复杂,有可能要主项目和插件项目分别构建,再整合到一起; 
3) 由于插件项目是独立开发的,当主项目加载插件运行时,插件的运行环境已经完全不同,代码逻辑容易出现BUG,而且在主项目中调试插件十分繁琐; 
4) 非常规的开发方式,有些框架使用反射强行调用了部分Android系统Framework层的代码,部分Android ROM可能已经改动了这些代码,所以有存在兼容性问题的风险,特别是在一些古老Android设备和部分三星的手机上; 
5) 采用动态加载的插件在使用系统资源(特别是Theme)时经常有一些兼容性问题,特别是部分三星的手机;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值