什么是插件化?
插件化顾名思义,更多是想把需要实现的模块或功能当做一个独立的提取出来,减少宿主的规模,当需要使用到相应的功能时再去加载相应的模块。
为什么要插件化?
1.解耦,独立各大模块的业务成为插件,互不干扰,即用即插,方便开发与维护。当业务庞大、繁琐之后,是否存在牵一发而动全身的感觉,是否存在逻辑过于复杂、耦合度较高、难以掌控整个项目。
2.加快编译。每次修改后无需重新编辑整个工程项目,可以单独编译某个插件工程,对于庞大的项目而言,速度就是至上的武功。
3.动态更新。无需重新下载与安装app,可以单独下载某个插件apk,直接加载,从动态更新、包体积和流量上感觉是个不错的选择。
4.模块定制。需要什么模块下载什么模块,无需让app变得庞大,所需所得。
插件化解决的问题
1.APP的功能模块越来越多,体积越来越大
2.模块之间的耦合度高,协同开发沟通成本越来越大
3.方法数目可能超过65535,APP占用的内存过大
4.应用之间的互相调用
如何系统高效学习插件化
准备知识
1.反射、动态代理
2.Android中的几个相关的ClassLoader,注意PathClassLoader在ART虚拟机上是可以加载未安装的APK的,3.Dalvik虚拟机则不可以。
4.Android中四大组件的相关原理
5.PackageManagerServer
6.资源加载、资源打包
7.其他
思维脑图
插件化核心知识笔记笔记
目录
第一章 插件化技术的前世今生
第二章 插件化原理
第三章 Android插件化初探
第四章 架构演化(大厂篇)
无论什么技术,热不热门,学习都是不可间断的,乘着年轻磨砺技术才是王道,不然在程序员这个后浪一波比一波汹涌的职业里混,你想吃青春饭都吃不了几年。 不过,想提升是一回事,如何有效提升就是另一回事了。我工作近十年,也带过不少实习生、应届生,很多年轻人真的很努力在学,加班加点工作卖力,但也就是差点火候,还是方法不对。
什么是方法,方法就是跟着身边大佬走,多问多学,如果身边没有大佬也可以加入我们学习资源交流群,全国的小伙伴天南地北,可以一起聊天学习,更加了解这个行业情况,趋势与走向。
自行学习交流直达链接:【点击获取】
点击【GitHub】免费分享大牛个人面试进阶学习笔记!
学习系列视频资源推荐
【对标阿里P7-年薪百万,最牛第三方库系列学习视频】热修复设计,插件化框架设计,组件化框架设计,图片加载框架等
【1.什么是插件化?】
【2.插件化能解决的问题及与组件化的区别】
.
.
【13.手写实现插件的资源加载】
点击上面链接即可学习!
面试大厂-不打无准备的战
虽然面试的是技术工作,面试官也要考核你的沟通能力,除了你的技术能力以外,沟通能力是最重要的,技术再牛,不会沟通,也不会有公司喜欢接收的。到公司里是团队开发项目,不一个人单打独斗,所以良好的沟通能力,能很大程度的提高工作效率,所以如果自己欠缺沟通能力,就提前做些准备,多了解一下要面试的公司,准备一些词语,不要打无准备的仗。