小公司不说,但是在大公司的项目发展到一定程度,就必须进行模块的拆分。模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在 Android 开发的实践,目前有两种途径来实现,一个是组件化,一个是插件化。
关于组件化和插件化的入门学习这里就不做分享了,本次分享主要是给已经对组件化或插件化开发有了一定的基础掌握,需要进一步学习的同学,提供一些大厂项目实战案例。废话不多说,为了方便大家学习记录,已经分别整理成了220页(组件化实战)和167页(插件化实战)的PDF,项目demo地址也都记录在里面。
由于篇幅原因,以下就只给大家做一些截图分享,有需要PDF的同学,可以后台私信我免费领取!
《Android组件化强化实战(附源码)》
第一章 Android组件化初识
1.组件化和模块化的区别
2.组件化和插件化的区别
3.组件化开发的优势
4.业务逻辑层
5.从组件化实战来解决问题
6.Android组件化基础
第二章 Android组件化初探
1.组件化演示案例
- 模块化和组件化
- 模块化
- 组件化
- 组件化Demo
- 项目分析
- 组件application和library动态切换
- 组件间的数据传递和方法调用
- 组件类(例如:Fragment)的获取,以及夸组件页面跳转和通讯
2.WanAndroid APP 组件化项目实战附demo
- 简介
- 版本更新
- 效果图
- 主要功能
- 项目目录结构
- 主要开源框架
第三章 架构演化(大厂篇)
1.从智行 Android 项目看组件化架构实践
- 前言
- 概述
- 组件化调整的原因和目标
- 组件化架构调整的整体规划
- 组件化架构调整中遇到的一些问题
- 组件化架构的实践成果
2.得到 App
- Android彻底组件化demo发布
- JIMU使用指南
- 组件化拆分的感悟
- Android彻底组件化—代码和资源隔离
- 代码隔离
- 资源隔离
- 调试切换
3.微信 App
- 微信Android模块化架构重构实践
- 微信Android架构历史
- 为何再次重构微信
- 重塑模块化
- 取舍和选择
- 代码之外,架构之内
4.蘑菇街 App
- 蘑菇街 App 的组件化之路
- 实现方式
- 组件生命周期管理
- 壳工程
- 遇到的问题
- 持续集成
- 周边设施
- 小结
5 爱奇艺 App
- 关于组件化
- 基于Service的IPC通信
- 组件化跨进程通信的核心诉求
- Andromeda
- 架构分析
6.美团 App
- 外卖客户端容器化架构的演进
- 背景
- 美团外卖业务介绍
- 美团外卖移动端历史架构概述
美团外卖容器化架构全景图
- 什么是容器化架构
- 容器化架构的优势
- 外卖容器化架构全景图
- 容器化的挑战
- 外卖跨端容器建设
- MRN容器
- Titans容器
外卖页面容器建设
- 页面容器化设计思路
- 业务构建模块标准化
- 小结
外卖容器化架构的衡量指标
- 容器化架构衡量指标的特点
- 链路指标
- 关键指标
- 外卖容器化架构的监控运维
- 外卖容器化架构的发布能力
- 容器化架构发布体系
- 跟版本发布流程
- bundle资源发布
- 多种发布能力综合使用
7.美团Android组件化方案及组件消息总线modular-event实战
- 背景
- 组件化之前的状态
- 组件化方案调研
- 美团其他团队组件化方案调研
- 组件化方案
- 组件化消息总线框架modular-event
- 组件消息总线modular-event的实现
- 消息总线modular-event的结构
- 使用动态代理实现运行时调用
- 订阅和发送的模式
8.美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
- 背景
- 发布/订阅模式
- RxBus的出现
- 引入LiveDataBus的想法
- 为什么使用LiveData构建数据通信总线LiveDataBus
- LiveDataBus的设计和架构
- LiveDataBus最终实现
9.WMRouter:美团外卖Android开源路由框架
10.美团猫眼android模块化实战-可能是最详细的模块化实战
11.携程App(篇幅过长,无法展示全部)
12.支付宝 App
......
《Android从插件化强化实战(附源码)》
第一章 插件化技术的前世今生
第二章 插件化原理
1.类加载
2.双亲委托机制
3.资源加载
4.四大组件支持
5.ProxyActivity代理
6.hook方式
7.其他组件
8.Android动态加载框架DL的架构与基本原理解析
9.Android 插件化框架 DynamicLoadApk 源码分析
第三章 Android插件化初探
1.从零开始实现一个插件化框架(1)
- 概念
- 插件化解决的问题
- 各插件化框架对比
- 插件化实现
- ClassLoader实现类
2.从零开始实现一个插件化框架(2)
- Activity的启动流程
- 寻找Hook点
- 撸码阶段
- 代理对象
- 偷天换日,替换原来的Intent
- ActivityThread
- 将代理的intent替换回来
- 注意
3.从零开始实现一个插件化框架(3)
- 插件资源加载
- Android中资源加载流程
- ActivityManager
- ActivityThread
- AppCompatActivity
- 总结
第四章 大厂架构演化
1.360插件开发之DroidPlugin
- 插件开发之360 DroidPlugin源码分析
- Hook机制类图关系
- Hook机制的时序图关系
- Manifest权限申请
- 基类Hook做了什么?
- ProxyHook
- BaseHookHandle
- HookedMethodHandler
- ReplaceCallingPackageHookedMethodHandler
- IO重定向
- 递归遍历
- 以IPackageManager为例
- 插件开发之360 DroidPlugin源码分析之Binder代理
2.滴滴VirtualApk实战
- 配置
- 应用
- 原理
- 总结
- 问题
3.基于VirtualAPK Android重构之插件化
- Plug-in Hello World
- 插件化框架的选择
- 插件化原理
- 引入插件化之痛
- 总结
4.爱奇艺插件化原理分析之 Neptune框架
- 插件化基础知识点
- 类加载
- 插件化中资源使用限制
- Apk打包流程
- 四大组件的插件化
- Neptune源码分析
- 插件Activity任务栈
- 处理插件中的广播
5.360开源全面插件化框架RePlugin 实战
- RePlugin 介绍
- 宿主接入步骤
- 插件接入步骤
- 使用插架
6.腾讯插件化框架 Shadow项目解析
- 框架简单介绍
- 框架结构分析
- sample 示例代码 AndroidMani 分析
- Activity 实现
- 替换插件 Activity 的父类
- Service 实现
- BroadcastReceiver 实现
- ContentProvider 实现
- 框架自身动态化
- 总结
整理不易,如果领取笔记后,觉得对自己学习组件化和插件化有所帮助的话,别忘记回来点个赞支持下哦!