什么是组件化和插件化?
组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。
插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。
为什么要使用它们?
Android 整个开发过程中,随着产品需求和项目功能的增加,慢慢就会出现以下问题:
- 包体积增加
- 打包慢
- 代码难以维护
- 增加功能只敢做加法
这个时候组件化就派上用场了,组件化在实施之前需要进行模块化,模块化可以降低模块间耦合度,提升代码清晰度;组件化的实施也会大幅度提升开发提升的编译速度,提升开发幸福感。
对于 apk 安装包的体积,可以在组件化的基础上使用插件化,每个模块不但可以独立编译、运行、还能独立下发到app中,这样赋予了功能动态下发的能力,非常灵活。
组件化和插件化正确的姿势
既然选择使用组件化和插件化,那么如何正确的使用它们呢?当然这两个功能都有一定的技术复杂度,学习不是一件容易的事情,需要长期的坚持,这里分享一些热门技术和框架的视频,包含这两个专题的技术。有了视频,也许可以在前期降低一点门槛,希望会对你有用
还有阿里大佬整理的内部笔记,其主导开发过多个采用组件化架构的APP项目,有对老项目进行重构的,进行插件化架构,也有一开始就采用组件化架构的新项目。大佬熬夜一个星期,把积累的经验和踩的坑都进行了总结,整理成了两份长达200余页的资料,引得各路大神点赞,现在这份资料免费分享!
各位准备Android岗面试的朋友也需要注意一下,组件化和插件化这两个知识是所有大厂都会重视的点,要好好做准备。
《高级Android组件化强化实战(附源码)》资料详情
该资料分为三大块
- 第一章 Android组件化初识
- 第二章 Android组件化初探
- 第三章 大厂APP的架构演化
第一章 Android组件化初识目录
- 组件化和模块化的区别
- 组件化和插件化的区别
- 组件化开发的优势
- 业务逻辑层
- 组件化开发要遇到的问题
- 从组件化实战来解决问题
- Android组件化基础
- ……
第二章 Android组件化初探目录
- 组件化演示案例
概述
模块化和组件化
组件化Demo
组件application和library动态切换
…… - WanAndroid APP 组件化项目实战附demo
版本更新
效果图
主要功能
项目目录结构
主要开源框架
……
第三章 架构演化(大厂篇)
-
从智行 Android 项目看组件化架构实践
组件化调整的原因和目标
组件化架构调整的整体规划
组件化架构调整中遇到的一些问题
……
-
得到 App
Android彻底组件化demo发布
JIMU使用指南
组件化拆分的感悟
……
-
微信 App
微信Android模块化架构重构实践
微信Android架构历史
为何再次重构微信
……
-
蘑菇街 App
蘑菇街 App 的组件化实现方式
组件生命周期管理
壳工程
遇到的问题
持续集成
周边设施
……
-
爱奇艺 App
基于Service的IPC通信
组件化跨进程通信的核心诉求
Andromeda
架构分析
……
《高级Android插件化强化实战(附源码)》资料详情
该资料分为三大块
- 第一章 插件化技术的前世今生
- 第二章 插件化原理
- 第三章 Android插件化初探
- 第四章 架构演化(大厂篇)
第一章 插件化技术的前世今生
- 插件化提要
- 插件化发展历史
- …
插件化原理
- 类加载
- 双亲委托机制
- 资源加载
- 四大组件支持
- ProxyActivity代理
- hook方式
- 其他组件
- Android动态加载框架DL的架构与基本原理解析
- Android 插件化框架 DynamicLoadApk 源码分析
- …
第三章 Android插件化初探
- 从零开始实现一个插件化框架
- 从零开始实现一个插件化框架
- 从零开始实现一个插件化框架
- …
第四章 架构演化(大厂篇)
- 360插件开发之DroidPlugin
- 滴滴VirtualApk实战
- 基于VirtualAPK Android重构之插件化
- 爱奇艺插件化原理分析之 Neptune框架
- 360开源全面插件化框架RePlugin 实战
- 腾讯插件化框架 Shadow项目解析
- …
以上就是阿里大佬熬夜整理的Android组件化和插件化强化实战资料,需要的朋友直接点击下方的卡片获取完整文档。
大佬寄语
理论填鸭、多看源码、实战巩固!!!
结尾
总的来说组件化的精髓就是这么3点:独立、完整、自由组合。我们生活中见到的绝大多数工业产品,就是这么造出来的,比如汽车工业,比如富士康的iPhone生产线。甚至部队的编制也是遵循这个原理。
而且组件化甚至都不算是人类的发明。即使放在自然界,这也是早已存在的模式。想想我们人体多么复杂,绝对不亚于windows操作系统。但除去极少数器官之外,任何部分损坏或缺失,我们都能活下来。这不得不说是组件化的奇迹。
而插件化就是宿主、插件,把一些核心复杂依赖度高的业务模块封装成独立的插件,然后根据不同业务需求进行不同组合,动态进行替换,可对插件进行管理、更新,后期对插件也可进行版本管理等操作。