4、组件化
在模块化开发了一段时间之后,随着项目业务的增加,模块越来越多,又会出现一些问题。例如:
- 由于模块太多使得每次调试都要编译整个项目,编译速度太慢。
- 项目运行依赖于所有模块,模块间若有冲突,使开发这这无法专注于单个模块的功能。
- 多个项目要使用一个模块时,无法对业务模块进行灵活的组装
组件化很好的解决了这些问题。通过一个APP
空壳工程,将多个组件组装成一个应用。组件化为单个组件配置了单独的启动入口Activity
,使得单个组件既可以作为application
单独运行,又可以作为library
引入项目。这样在多人开发时,每个开发者只需要专注于自己组件的功能问题,调试时只需要调试单个组件,只编译一个组件大大提高了编译速度,提升了开发效率。而且还可以将一些常用组件打成aar
包进行单独版本维护,在其他项目需要时直接引入就行。 组件化其实和模块化有点类似,我觉得可以这样理解,组件化就是模块化的一个升级加强版,组件化比起模块化更加的灵活,耦合度更低,而且单个组件可以独立运行,不必每次编译整个项目,提高了开发效率。
5、插件化
插件化技术的产生也是类似,由于业务进一步复杂,项目规模进一步的变大,模块越也来越多,耦合度变高,并且有时候需求要求不再是单独的应用,可能要接入其他应用的业务功能,而且太多个组件接入应用会使得应用的体积变得很大,而且编译时间也会变的很长。还有Android
中655536
方法的限制,模块增多代码增多方法很容易就超过65536
个,而且应用也会占用很大内存。所以插件化技术应运而生,插件化技术从本质上来说是一种动态加载技术。插件化中存在宿主APK
和插件两个概念,宿主APK
就是指先被安装到手机中的APK
,插件指经过处理的APK
、so
、dex
等文件,插件可以被宿主进行加载。插件化的应用一开始加载到内存的只有宿主应用,当使用到其他插件时才会加载对应插件到内存中,减少了内存的占用。现在很多大厂都早已推出了自己的插件化框架,例如VirtualApk
、RePlugin
等等。
6、总结
内容本身比较简单,就是基础概念的总结。对于开发架构的选择来说,没有最好的架构只有最合适的架构,规模大业务多的项目不选择好合适的架构,项目开发将无法顺利进行,功能单一内容简单的项目也没必要什么技术架构都往项目里上,徒增开发成本。只有使用最合适自己项目的架构才能保证项目开发能快速、高效、顺利的进行。
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后文末放上一个技术交流群:Android架构设计(185873940)
PS:群内有许多技术大牛,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~
再推荐一篇文章,具体的架构视频,面试专题,学习笔记都在这篇文章中:“寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软!
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊~
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021最新上万页的大厂面试真题
七大模块学习资料:如NDK模块开发、Android框架体系架构…
2021大厂面试真题:
只有系统,有方向的学习,才能在短时间内迅速提高自己的技术,只有不断地学习,不懈的努力才能拥有更好的技术,才能在互联网行业中立于不败之地。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-hRZrr37B-1712690242567)]