如果你维护过一个上线两三年的 Android 项目,大概见过这种场面:登录、支付、消息推送的代码互相缠绕,改一个按钮颜色要重新编译整个工程,两个人同时改同一个模块必然冲突。这门课针对的就是这个阶段的问题,而不是教你怎么从零写一个 Demo。
它解决的是「改不动」的问题
课程主线是企业级 App 的重构,核心落在两件事上:组件化和插件化。组件化解决的是工程内部的拆分——把登录、业务模块从主工程里剥出来,各自独立编译、独立调试,模块之间通过约定好的方式通信,而不是随手互相引用。插件化解决的是工程外部的扩展——把部分功能做成可动态加载的模块,宿主保持稳定。这两条线不是概念介绍,课程是拿一个已有的、结构已经混乱的项目做改造对象,走一遍真实的拆分过程。
所以它回答的具体问题是:一个已经写坏的项目,怎么在不推翻重来的前提下拆开、怎么定模块边界、拆完之后路由和通信怎么处理、公共依赖怎么下沉。这些是真正动手时最卡人的地方。
适合什么基础,不适合什么基础
前提是你能独立写 Android 业务代码,熟悉 Activity、Fragment 生命周期,用过 Gradle 构建,至少参与过一个多人协作的项目。如果你还没写过完整页面、不清楚 Gradle 的模块配置怎么写,先补这部分再看,否则会跟不上拆分的思路。
它不适合两类人:一是完全零基础想学 Android 入门的,这门课不从语法讲起;二是只想了解架构概念、不打算动手改代码的,因为课程的价值几乎全在改造过程里,光看结论收获有限。
建议的看课顺序和练习方式
不用严格按目录顺序刷。可以先看工程结构那几节,把传统结构、组件化结构、插件化结构三者的差异搞清楚,建立判断标准——知道什么样的工程算拆得好。然后进入组件化改造部分,从登录模块这类边界清晰、依赖较少的模块开始跟做,边看边在自己的项目或课程项目上同步改一遍。插件化部分放在后面,它对工程规范的要求更高,前面的拆分没做扎实,这里会很难推进。
练习的关键是「同步改」而不是「看完再改」。每看完一个模块的拆分思路,就停下来在自己工程里做同样的动作,遇到编译报错、资源冲突、路由找不到页面,这些坑才是真正学到东西的地方。课程里提到的重构顺序、边界划分原则,建议边看边记成自己项目的改造清单,按清单推进。全部跟完并落地一遍,你应该能独立完成一个中型 Android 项目的模块拆分,能判断模块边界是否合理,能处理拆分带来的路由、通信和构建问题——这也正是面试里被追问架构经验时,你能讲出细节的底气。
随着企业级App功能不断累加强大,App代码质量下降、设计缺陷、难以维护、迭代困难等问题越来越突出,App的重构迭代已经成为Android工程师急需解决的核心工作内容。本课程还原一线互联网公司App所经历的重构过程,基于模块化,以组件化重构和插件化重构为核心,让大家掌握一线互联网公司App的最新架构和技术,并且能够解决重构过程中碰到的所有难题,更有助于拿到大厂offer。
视频目录(101 节)
实战企业级项目 践行App重构之路
课程目录
* 1-2 课程介绍及学习指导.ev4
* 2-1 工程结构概述.ev4
* 2-2 传统工程结构解析.ev4
* 2-3 组件化工程结构解析.ev4
* 2-4 插件化工程结构解析.ev4
* 2-5 工程结构总结.ev4
* 3-1 组件化最终目标及思路.ev4
* 3-2 登录模块组件化概述.ev4
* 3-3 登录代码走读.ev4
* 3-4 Login模块创建及初始化.ev4
* 3-5 Login模块代码迁移.ev4
* 3-6 Login模块资源迁移.ev4
* 3-7 arouter官方文档解析.ev4
* 3-8 LoginService接口定义.ev4
* 3-9 LoginServiceImpl接口实现.ev4
* 3-10 主工程调用LoginService接口.ev4
* 3-11 本章小结.ev4
* 4-1 首页功能模块组件化重构核心内容.ev4
* 4-2 首页功能模块核心代码走读.ev4
* 4-3 首页功能模块代码迁移.ev4
* 4-4 首页功能模块资源迁移.ev4
* 4-5 首页功能模块对外接口定义.ev4
* 4-6 首页功能模块组件化重构学习小结.ev4
* 5-1 音乐播放模块组件化重构核心内容.ev4
* 5-2 音乐播放模块核心代码走读.ev4
* 5-3 音乐播放模块对外接口定义.ev4
* 5-4 音乐播放模块接口实现.ev4
* 5-5 音乐播放模块与外界通信.ev4
* 5-6 音乐播放模块组件化重构学习小结.ev4
* 5-7 组件化重构阶段总结.ev4
* 6-1 插件化相关概念及技术分析.ev4
* 6-2 宿主工程插件化重构核心内容.ev4
* 6-3 插件化涉及常用技能点分析.ev4
* 6-4 Replugin宿主工程接入.ev4
* 6-5 宿主工程接入Replugin插件框架.ev4
* 6-6 宿主工程插件化学习小结.ev4
* 7-1 登录组件插件化重构核心内容.ev4
* 7-2 插件化重构流程及思路分析.ev4
* 7-3 将原库工程升级为app工程.ev4
* 7-4 登录组件接入Replugin插件化框架.ev4
* 7-5 生成登录插件apk.ev4
* 7-6 宿主工程启动登录插件Activity.ev4
* 7-7 插件化工程广播发送和接收.ev4
* 7-8 LoginPluginConfig管理插件信息.ev4
* 7-9 插件间AIDL接口通信(上).ev4
* 7-10 插件间AIDL接口通信 (下).ev4
* 7-11 登录组件插件化重构学习小结.ev4
* 8-1 首页组件插件化重构核心内容.ev4
* 8-2 首页组件升级为application.ev4
* 8-3 首页application接入插件化框架.ev4
* 8-4 首页插件化重构代码优化.ev4
* 8-5 首页Mine功能插件化重构.ev4
* 8-6 跨插件Fragment调用(上).ev4
* 8-7 跨插件Fragment调用(下).ev4
* 8-8 首页Disvoery功能插件化重构.ev4
* 8-9 首页Friend功能插件化重构.ev4
* 8-10 首页组件插件化重构学习小结.ev4
* 9-1 音乐播放组件插件化重构核心内容.ev4
* 9-2 音乐播放组件核心代码分析.ev4
* 9-3 音乐播放组件升级为插件.ev4
* 9-4 MusicPlayerActivity代码适配插件化重构.ev4
* 9-5 BottomMusicView插件化重构(上).ev4
* 9-6 BottomMusicView插件化重构(下).ev4
* 9-7 音乐播放模块对外AIDL通信.ev4
* 9-8 前台service插件化升级适配.ev4
* 9-9 音乐播放组件插件化重构学习小结.ev4
* 10-1 本章概述.ev4
* 10-2 Loading组件插件化重构.ev4
* 10-3 启动白屏问题解决(上).ev4
* 10-4 启动白屏问题解决(下).ev4
* 10-5 宿主工程AIDL接口.ev4
* 10-6 二维码功能插件化重构.ev4
* 10-7 maven私服搭建.ev4
* 10-8 maven私服接入.ev4
* 10-9 插件化重构启动优化学习总结.ev4
* 11-1 App动态更新核心内容.ev4
* 11-2 动态更新原理.ev4
* 11-3 插件管理及信息获取.ev4
* 11-4 动态加载外置插件(上).ev4
* 11-5 动态加载外置插件(下).ev4
* 11-6 外置插件下载功能(上).ev4
* 11-7 外置插件下载功能(中).ev4
* 11-8 外置插件下载功能(下).ev4
* 11-9 外置插件更新功能.ev4
* 11-10 插件下载更新逻辑优化(上).ev4
* 11-11 插件下载更新逻辑优化(下).ev4
* 11-12 插件化全面总结.ev4
* 12-1 Replugin源码解读.ev4
* 12-2 RepluginClassLoader源码分析(上).ev4
* 12-3 RepluginClassLoader源码分析(下).ev4
* 12-4 Replugin启动插件中Activity源码分析(上).ev4
* 12-5 Replugin启动插件中Activity源码分析(中).ev4
* 12-6 Replugin启动插件中Activity源码分析(下).ev4
* 12-7 Replugin启动插件中Service源码分析.ev4
* 12-8 Replugin自定义进程源码分析.ev4
* 12-9 Replugin插件广播注册接收源码分析.ev4
* 12-10 Replugin启动插件ContentProvider源码分析.ev4
* 12-11 Replugin gradle插件源码分析.ev4
* 13-1 课程全面总结.ev4
资料及源码 / 资料及源码
* 下载资料.zip
* imooc_refactor-imooc_compoments.zip
