第一阶段:Kotlin x Java打造 UI 通用组件(1-6周)
第1周 走进移动端架构师,赋能成长之路
在开启系统化成长之前,先要明确移动端架构师需要具备的技术栈与能力,架构师在架构中大型APP及技术选型时,有哪些方法论可以遵循,本周还会带你认识讲师们为课程量身定制的开发套件,最后让我们一起通过千万级电商“好物”项目的HiLog“战役”燃起架构师成长之路吧。
课程安排:
1. 了解移动端架构师需要具备的技术栈与能力【不做前浪】
2. 如何从0开始架构一个中大型APP
3. 如何做好项目的技术选型
4. 认识为“好物”项目量身定制的开发套件
5. HiLog库疑难点分析与架构设计
6. HiLog基础框架搭建
7. HiLog堆栈信息打印与日志格式化功能实现
8. 基于HiLogPrinter实现日志可视化模块
第2周 通用UI组件开发与APP基础框架设计
不做搬运工,教你造轮子。我们将利用两周的时间带你为“好物”项目架构一套高可用高扩展的Android通用UI组件,本周完成HiTabBottom和HiTabTop组件的架构设计和开发,掌握APP基础框架结构设计。
课程安排:
1. HiTabBottom组件疑难点分析与架构设计
2. HiTabBottom的单Tab组件封装
3. HiTabBottomLayout封装与应用
4. APP基础框架结构设计
5. 基于HiTabBottom实现APP底部导航框架
6. Fragment常见问题解决
7. HiTabTop架构设计与功能实现
8. HiTabTop自动滚动功能分析与实现
第3周 高级UI组件定制与解耦设计
框架设计是服务于使用者的,我们以移动端高频技术点下拉刷新和Banner为例设计实现项目“好物”的HiRefresh和HiBanner组件,并教会你如何从需求出发架构并实现轻量级高扩展的组件,帮你弥补造轮子中的盲区。
课程安排:
1. 打造下拉刷新HiOverView视图
2. 实现下拉刷新HiRefreshLayout
3. HiRefreshLayout调试完善
4. HiBanner架构设计与ViewPager定制
5. 打造高通用的HiBannerAdapter
6. 实现HiBanner的高度定制
7. HiBannerDelegate封装与指示器HiIndicator定制
第4周 Android开发必备Kotlin核心技术
作为架构师该如何解脱Java束缚完成到Kotlin的转变?如何快速掌握Kotlin开发核心技能?课程会面向未来以Kotlin开发语言为基础,本周开始将使用新版Kotlin逐步带你解锁Kotlin开发核心知识体系,本周最后还会带你使用Kotlin重构“好物”项目的HiCircleIndicator。
课程安排:
1. 以架构师角度认识Kotlin
2. Kotlin开发环境搭建技巧
3. Kotlin必备基础
4. Kotlin方法与Lambda表达式
5. Kotlin方法进阶
6. 深入理解Kotlin类与接口
7. 深入理解Kotlin泛型和注解
8. 让人爱不释手的Kotlin扩展(Extensions)技术探秘与应用
9. Kotlin重构HiCircleIndicator
10. Kotlin实用技巧
第5周 剖析Android UI核心组件源码
知己知彼,才能运筹帷幄,熟知底层原理,才能突破技术瓶颈,深耕细作。本周带你深入Framework核心组件实现原理,和你一起在浩瀚源码中取其精华,学习Google Android团队如何做架构设计,最后会借助“好物”项目HiDataItem的封装让你领悟如何利用设计原理,封装出高易用的UI组件。
课程安排:
1. 从开机到SystemServer进程及服务创建流程分析【高能预警】
2. Launcher应用启动之进程启动
3. ActivityThread源码分析【见微知著】
4. View树测绘流程
5. 页面刷新机制
6. 手势分发来源
7. Activity任务栈管理
8. FragmentTransaction事务执行流程【见微知著】
9. Fragment页面重叠与新版懒加载
10. 从源码到原理剖析RecyclerView核心知识点【见微知著】
11. RecyclerView优化之高易用HiDataItem封装
第6周 Android 导航架构探秘
作为架构师不仅仅要求技术过硬,软实力同样重要。本周以Jetpack Navigation和ARouter两个路由组件为入口,带你掌握如何做好技术选型日后不返工,通过全面性原理分析+ 进阶改造实战带你掌握如何设计端内路由,本周最后基于ARouter完成“好物”项目的登录拦截与全局降级策略。
课程安排:
1. Android路由诞生及最佳实践
2. 对比Navigation和Arouter的差异
3. 架构师如何做好技术选型
4. Navigation component架构解析
5. Navigation component 原理探秘
6. Navigation 自定义注解处理器
7. Navigation进阶改造
8. ARouter编译时原理剖析
9. ARouter运行时原理剖析
10. 基于ARouter实现登录拦截与全局降级策略
第二阶段:解锁Android高阶技能,探秘实战Jetpack(7-12周)
第7周 线程与线程池核心技术
本周内容是架构师的基本功,非常硬核,会从多线程通信、并发安全、并发流程控制、线程池任务调度和线程复用原理,到手写逆向还原协程实现原理,再到协程进阶实战,完成“好物”项目的多线程操作框架HiExecutor封装,最后还会传授你多线程场景下的优化技巧带你切实掌握Android多线程进阶技能,让你被面试官仰望 。
课程安排:
1. 多种线程创建方式与对比
2. 线程优先级核心及应用技巧
3. 线程状态剖析及四种方法应用
4. 线程间通信核心
5. 线程安全的本质
6. 线程安全之原子类
7. 线程安全之Synchronized
8. 线程安全之ReentrantLock案例详解
9. 线程安全之共享锁排他锁及锁的设计优化
10. 线程池实现原理之状态设计
11. 线程池实现原理之线程复用
12. 简洁易用的多线程操作框架HiExecutor封装
13. 探秘Kotlin协程机制
14. Kotlin协程挂起与恢复原理,逆向剖析还原
15. Kotlin协程应用
16. 架构师如何做多线程优化
第8周 Android网络编程进阶
移动端网络操作是核心技能,本周我们将带你重新认识Android网络编程核心技术,解锁最新版Retrofit架构源码,为“好物”项目手写封装简洁易用低耦合的网络层框架HiRestful,实战接口拦截与路由处理,完成登录、注册、个人中心模块设计开发。
课程安排:
1. Android网络编程核心技术
2. HiRestful设计思想分析
3. HiRestful之方法解析器
4. HiRestful之拦截器派发
5. 从源码到原理剖析Retrofit核心技能 【见微知著】
6. 为HiRestful添加Retrofit支持
7. 自定义View之InputItemLayout
8. 登录模块开发
9. 注册模块开发
10. 接口拦截与路由处理
11. 个人中心模块开发
第9周 基于HiRESTful + HiTabTop + HiItem架构首页模块
本周将带你为“好物”项目设计出灵活易用高拓展的HiSlider组件,实现分类模块,把轮子们高效组合到一起开发可复用的首页模块,带你设计出HiDebugTool调试模块。
课程安排:
1. HiAdapter能力升级
2. HiRecyclerView风骚实现分页预加载
3. 基于HiRecyclerView架构通用列表
4. 首页模块顶部导航栏与内容区域联动
5. 如何优雅的搭建列表Item布局
6. 首页模块列表数据绑定与性能调优
7. 用户体验优化之沉浸式
8. 侧边导航菜单HiSlider样式定制、组件封装
9. SpanSizeLoopUp不同寻常实现分组特效
10. ItemDecoration实现分组标题
11. 基于HIAbsListFragment快速构建商品列表页
12. 设计开发者工具HiDebugTool支持网络调试功能
13. Https抓包原理与弱网络场景模拟
第10周 解密Jetpack工具库核心组件
本周将带你剖析Jetpack核心组件实现原理, 全面掌握Jetpack最新架构,领略来自Android官方架构设计之美,把你从内存泄漏、空指针等问题中解脱出来。配合进阶实战,基于Room,带你为“好物”项目设计开发一款离线缓存框架HiStorage。
课程安排:
1. 走进Jetpack架构组件库
2. Lifecycle架构组件原理解析
3. LiveData架构组件原理解析
4. 基于LiveData实现不用反注册,不会内存泄露的消息总线
5. ViewModel架构组件原理解析
6. Room架构组件原理解析
7. 基于Room封装APP离线缓存框架HiStorage
8. 基于HiStorage实现App接口缓存
第11周 基于ViewModel+LiveData架构商品详情模块
本周项目开启爬坡过坎阶段,详情页模块纷繁复杂,架构师要能化繁为简,本周不仅带你高效完成“好物”项目的详情模块开发任务,还将传授你如何实现流畅,解耦等极致效果。
课程安排:
1. 商品详情模块架构分析
2. 基于HiBanner实现商品图片浏览功能
3. 评论与店铺信息功能开发
4. 商品详情浏览功能开发
5. 关联商品模块开发
第12周 Android消息机制与虚拟机原理
本周将带你全面掌握Android消息分析机制,深入理解ClassLoader类加载机制奥秘,Tinker框架实现“好物”项目的热修复,掌握市场主流热修复实现原理。
课程安排:
1. 深入理解Android消息机制的原理
2. 深入理解Android类加载机制
3. 走进Android热修复世界
4. Tinker实现原理剖析
5. Tinker框架实现APP的热修复
第三阶段:主流架构演进与项目改造(13-17周)
第13周 玩转Kotlin x Java 设计模式
作为架构师要不断胜出证明自己, 不管是架构技能的外功,还是架构思维的内功,都要不断修炼,本周我们将进行Kotlin与Java设计模式的心法修炼,在学习Kotlin设计模式的同时类比Java设计模式, 快速理解掌握如何利用设计模式进行APP架构的设计改造,实现利用建造者模式扩展“好物”项目的指示器组件HiBanner及通知列表模块。
课程安排:
1. 走进Kotlin x Java 设计模式
2. 深入理解Kotlin 与 Java 单例模式
3. 深入理解Kotlin 与 Java 建造者模式
4. 建造者模式扩展HiBanner指示器组件
5. 深入理解Kotlin 与 Java 适配器模式
6. 如何利用设计模式进行App架构的设计
7. 通知列表模块实现
第14周 主流架构模式演进之路
良好的架构模式不仅能使项目易于维护,也能易于扩展。本周我们进行主流架构模式的修炼, 带你全面掌握MVC,MVP,MVVM几种开发模式演进,并使用主流的MVVM模式重构“好物”项目的首页模块, 本周还会从架构师角度带你解锁模块化,组件化模块化,组件化,工程化,插件化,容器化开发模式,用架构思想来武装我们的架构思维,为接下来的架构实战做好战斗准备。
课程安排:
1. 从MVC到MVP再到MVVM架构模式演进之路
2. 基于MVVM模式重构首页模块
3. 单一工程、模块化、组件化、插件化、容器化演进之路
4. 从架构师角度理解模块化、组件化
5. 从插件化到回归Android标准化
第15周 主流架构实战
本周将基于组件化方式为“好物”项目封装高易用高扩展HiNavigationBar和HiSearchBar组件,基于MVVM设计搭建搜索模块架构,并实现搜索模块的调优。
课程安排:
1. 组件化实战封装HiNavigationBar
2. 高易用高扩展搜索组件HiSearchBar封装
3. 基于MVVM实现搜索列表
4. 实时搜索功能实现与优化
5. 搜索关键词面板HiSearchTag实现
第16周 IOC架构设计
本周将从Dagger2核心实现原理展开,传授你如何设计一款优秀的IOC反转注入框架,减少模板代码,提升整个团队开发效率,为“好物”项目实现基于MVVM+Dagger2的收货地址与商品推荐模块,封装高易用的HICity城市选择组件。
课程安排:
1. 走进IOC架构世界
2. 从源码到原理剖析Dagger2核心知识点【见微知著】
3. 基于Dagger2实现下单模块
4. 基于Dagger2实现收货地址模块
5. 基于HiStorage实现城市列表的存储与查询
6. 城市选择组件HiCity封装
7. 基于MVVM + Dagger2实现推荐模块
第17周 高效开发之构建打包与持续集成
作为移动端架构师不能只停留在做需求,要能带领团队高效开发,本周将从如何高效的构建多渠道包,到实现Gradle插件,带你领略Gradle的魅力,实现“好物”项目的图片自动压缩功能,完成基于Jenkins实现持续集成与自动打包,逐步解锁构建打包的核心技能。
课程安排:
1. 如何高效的构建渠道包?
2. 由浅入深探秘Gradle插件开发
3. 基于Gradle实现图片自动压缩插件
4. 发布Gradle插件到JCenter
5. 基于Jenkins实现持续集成与自动打包
6. Android library 发布与JCenter
7. APK安全的攻与守
8. APK打包原理剖析
第四阶段:混合架构设计与开发(18-22周)
第18周 走进Flutter开发
Flutter是考察一个架构师技术广度及对新技术敏感度的重要依据,Flutter作为目前最火热的混合开发框架之一,受到越来越多开发者追捧,本周带你以架构师视角学习Flutter, 快速掌握Flutter开发的核心技能,为今后的技术选型提供技术支撑,本周的最后使用Flutter带你实现“好物”的网络层框架及推荐模块。
课程安排:
1. 架构师该如何高效的学习Flutter
2. Flutter开发环境搭建及常见问题
3. 走进Flutter的Widget世界
4. 如何进行Flutter布局开发
5. 轻松掌握Flutter调试技巧
6. 封装Flutter网络层框架与编写单元测试
7. 推荐模块接口系分与Dao层设计
8. 推荐模块结构框架搭建
9. 推荐模块Item实现
第19周 Flutter混合架构原理剖析与应用
本周将深入Flutter进阶内容,作为架构师不仅要掌握Flutter开发,还要了解Flutter框架原理,掌握Flutter和Native之间的通信及路由架构的处理,本周最后带你打造“好物”项目的通信架构HiFlutterBridge及推荐模块的集成。
课程安排:
1. Flutter框架和原理剖析
2. 如何在原有的项目中集成Flutter?
3. Flutter与Native 路由架构设计
4. Flutter与Native通信原理剖析
5. 基于MethodChannel实现Flutter与Naitive通信架构HiFlutterBridge
6. Flutter推荐模块集成
第20周 Flutter实战应用与性能优化
本周将基于Futter来实现“好物”项目的收藏模块,剖析Flutter嵌入Native组件的实现原理与应用,之后会带你精研Fluter的性能调优以及对Flutter热更新方案的探索。
课程安排:
1. 收藏模块接口系分与Dao层设计
2. 收藏模块结构框架搭建
3. 收藏模块Item实现
4. Flutter嵌入Native组件的实现原理与应用
5. Flutter性能调优
6. Flutter热更新方案探索与应用
第21周 走进RN开发
React Native作为移动端跨平台另一个核心技术, 一经发布就迅速被应用在美团、携程等主流APP,繁荣的社区生态提供了成熟的最佳实践,作为移动端架构师只有拥有了技术视野,才能高瞻远瞩,即使在泛前端趋势下也能带领移动端团队破局,本周将带你进入混合开发框架RN的学习,教会你如何利用现有知识来高效掌握一门新技能,本周最后带你使用RN设计开发“好物”项目的浏览历史模块。
课程安排:
1. 架构师该如何高效的学习RN
2. RN开发环境搭建及常见问题
3. 走进React的Component世界
4. 轻松掌握RN调试技巧
5. 浏览历史模块接口系分与Dao层设计
6. 浏览历史模块结构框架搭建
7. 浏览历史模块Item实现
第22周 RN混合架构原理剖析与应用
本周将深入RN进阶内容,不仅能够掌握RN开发还能了解框架原理,掌握RN和Native之间的通信,路由架构的处理, 性能优化以及疑难杂症的处理。本周最后带你使用RN封装“好物”项目的通信架构HiRNBridge,完成商品模块集成。
课程安排:
1. RN框架和原理剖析
2. 如何在原有的项目中集成RN?
3. RN与Native通信原理剖析
4. 基于NativeModule实现RN与Native通信架构HiRNBridge
5. RN商品模块集成
6. RN性能调优
第五阶段:稳定性及性能调优(23-26周)
第23周 高质量开发之稳定性优化
本周将带你站在架构师角度学会建立长效Code Review机制,提升团队代码质量,开展有效监控,排查Java Crash、Native Crash问题,实践打造“永不”Crash的APP。
课程安排:
1. 作为架构师该如何提升应用的稳定性?
2. 提升应用代码质量
3. 建立有效的Code Review机制
4. Crash监控与排查
5. Java 常见Crash案例分析
6. Native 常见Crash 分析
7. 如何做好Crash防护来实现一个“永不”Crash的App
第24周 高质量开发之性能优化
本周将带你站在架构师角度掌握如何做好应用启动速度优化,页面渲染耗时,页面滑动FPS监控,内存以及网络优化,打造性能极致体验APP。
课程安排:
1. 性能优化的重要性及意义
2. 作为架构师该如何提升应用的性能?
3. 启动速度优化
4. 页面加载耗时优化
5. 页面滑动流畅度FPS优化
6. 架构师该如何做内存优化?
7. 架构师做好网络优化的主要抓手有哪些?
8. 如何进行APP包大小瘦身
第25周 开发技能拓展
本周将带你实现华为多屏幕手机适配,Android Q黑暗模式适配, 老旧项目AndroidX升级适配,带你剖析Google最新组件化App Bundle架构并掌握权限治理 。
课程安排:
1. AndroidX适配与升级指南
2. 华为大厂多平适配
3. Android Q暗黑模式适配解读
4. 新一代组件化动态化方案App Bundle
5. 架构师必须要掌握的权限治理
第26周 HiAbility SDK开发
本周将带你设计实现“好物”项目HiAbility SDK开发,完成支付能力,推送能力,扫码能力,分享SDK,埋点统计等能力的实现与整合。
课程安排:
1. 支付能力的实现与整合
2. 推送能力的实现与整合
3. 扫码能力的实现与整合
4. 分享SDK的实现与整合
5. 埋点统计能力的实现与整合
第六阶段:前后端接口设计与配置中心系统(27-30周)
第27周 打造高可靠高性能的移动端接口
本周将帮你扫清后端主流技术盲区,扩展架构师技术视野,带你基于SpringBoot2 + MyBatis + MySQL + Tomcat +Nginx为“好物”项目打造高可靠高性能的移动端接口,让大家领略后端主流架构的设计和开发。
课程安排:
1. 如何设计一个前后端分离的架构
2. 前后端对接之如何优雅的设计接口
3. 移动端进行后端开发需要具备的技术栈和能力
4. SpringBoot2 + MyBatis + MySQL 搭建后端开发框架
5. 基于PDMan工具实现数据库建模
6. 用户注册与登录流程详解与注册功能实现
7. 用户登录功能实现
8. 整合与优化Swagger2文档Api
9. 项目打包并部署到Tomcat服务器
10. 基于Tomcat + Nginx搭建负载均衡的服务器
第28周 管理端前台实战
本周将帮你打通前后端技术,让你能够站在全局角度去思考,带你基于React + TypeScript + AntDesign + react-router完成“好物”项目管理端前台的搭建,让你领略web前端的主流架构设计和开发。
课程安排:
1. 前端开发需要具备的技术栈和能力
2. 基于create-react-app 搭建web工程
3. 整合 TypeScript与React
4. 开启enable并整合less
5. 实整合antd搭建具有Ant Design风格的页面
6. 基于antd + react-router-dom实现导航架构
7. 进行跨域配置实现前后端通信
8. 用户管理页面开发
9. 前端项目打包与部署
第29周 HiConfig配置中心系统开发
本周将从配置中心的原理出发,带你为“好物”项目手写一个配置中心系统,其中包括配置中心后端,以及配置中心的客户端SDK,让你贯通前后端开发。
课程安排:
1. 为什么我们需要一个配置中心系统
2. 配置中心流程及实现原理
3. 配置中心数据库设计
4. 配置中心后台管理接口实现
5. 基于React实现配置中心后台管理页面
6. 基于SpringBoot2实现配置中心后端接口
7. 基于HiRESTful实现配置中心SDK
8. 基于配置中心实现模块功能的动态化
第30周 学成“下山”
本周是我们的学成下山之战,在这里将传授你“出师锦囊”,让你躺赢接下来的职业发展,助你早日登上移动端的巅峰。
课程安排:
1. 移动端架构师该如何设计简历
2. 移动端架构师常见面试分析
3. 移动端架构师面试技巧
4. 关于架构师的职业发展探讨
5. 架构师该如何带团队
6. 架构师如何做好技术管理