记得刚从事 Android 开发的工作时,市面上鲜有 Android 开发书籍可供参考,很多时候遇到问题只能自己去阅读源码,慢慢地探索。经过这么多年的发展和积累,涌现了很多优秀的开发者和分享者,有很多参考价值很高的入门和进阶的书籍,推动了国内 Android 开发者技术水平的提升,《 Android 应用开发进阶》也希望能够为此提供哪怕一点点的贡献。 本书并不试图介绍 Android 开发的各个方面,因为有些专题甚至可以单独成书了,这里只涉及到 Android 开发者经常会遇到的热门话题,如果能够给 Android 开发者的工作提供一些帮助或启发,就是它存在的价值。
第一章介绍了自定义控件的基本原理,包括 View 的绘制流程和触摸事件的处理;总结了自定义控件中常用的一些方法;通过案例来展示如何完成一个自定义控件;最后介绍了自定义控件中性能优化的问题。
第二章介绍了在实际开发中常用轮子的使用方法以及其实现的原理。这些轮子包括 Butter Knife、EventBus、Dagger、OkHttp、Retrofit、Volley、RxJava。
第三章通过 Google 官方的架构示例项目 To-Do,详细介绍了 Android 的应用架构,包括 MVP,MVP-Clean,MVP-Dagger,MVP-RxJava,MVVM-DataBinding,MVVM-Live。
第四章介绍了实战项目 AndroidPlus,AndroidPlus 是一个专注于 Andriod 领域的知识问答与分享平台,遵循 Material Design,使用了 MVP-Dagger 架构,提供 Java 版本和 Kotlin 版本的实现。
第五章介绍了 Android 开发中的一些实践,包括 Android Studio 中的 Git 操作,Android 屏幕适配的解决方案,常用视频播放器的使用,声网直播的实践。
第 1 章 自定义控件
1.1 View 的绘制流程
1.1.1 View 和 ViewGroup
1.1.2 View 的绘制流程
1.1.3 ViewGroup 的绘制流程
1.1.4 View 绘制流程深入解析
1.2 View 的触摸事件
1.2.1 触摸事件的类型
1.2.2 触摸事件的传递过程
1.2.3 事件传递细节
1.3 自定义控件常用方法总结
1.3.1 绘制流程相关
1.3.2 事件处理相关
1.3.3 其他
1.4 自定义控件案例
1.4.1 柱状图
1.4.2 折线图
1.4.3 曲线图
1.4.4 渐变圆弧进度条
1.4.5 卡片滑动切换
1.4.6 ViewPager 圆形指示器
1.5 自定义控件性能优化
第 2 章 轮子
2.1 AppBrain 平台
2.2 Butter Knife
2.2.1 编译时注解
2.2.2 Element
2.2.3 编译时注解案例
2.2.4 Butter Knife 源码分析
2.2.5 Butter Knife Zelezny 插件的实现
2.3 EventBus
2.3.1 EventBus 的使用
2.3.2 EventBus 源码分析
2.3.3 EventBus 3.0 索引加速
2.4 Dagger2
2.4.1 Dagger2 的使用
2.4.2 Dagger2 源码分析
2.4.3 Dagger2 进阶
2.4.4 Component 之间的关系
2.4.5 Dagger.Android
2.5 Okh t t p
2.5.1 Okh t t p 的使用
2.5.2 Okh t t p 源码分析
2.6 Retrofit
2.6.1 Retrofit 的使用
2.6.2 Retrofit 源码分析
2.7 Volley
2.7.1 Volley 的工作流程
2.7.2 Volley 的使用
2.7.3 Volley 的封装
2.7.4 Volley 源码分析
2.8 RxJava
2.8.1 RxJava 的使用
2.8.2 RxJava 的源码分析
第 3 章 Android 应用架构
3.1 todo — mvp
3.1.1 MVP
3.1.2 todo — mvp 的实现
3.2 todo — mvp — clean
3.2.1 Clean 架构
3.2.2 Clean 架构的 Android 实现
3.2.3 todo — mvp — clean 的实现
3.3 todo — mvp — dagger
3.3.1 AppComponent
3.3.2 依赖注入
3.4 todo — mvp — rxjava
3.5 todo — mvvm — databinding
3.5.1 MVVM
3.5.2 Data Binding Library
3.5.3 todo — mvvm — databinding 的实现
3.6 todo — mvvm — live
3.6.1 Architecture Components
3.6.2 todo — mvvm — live 的实现
第 4 章 AndroidPlus 项目实战
4.1 需求分析
4.2 产品设计
4.2.1 Material Design
4.2.2 思维导图
4.2.3 架构设计
4.3 Java 实现
4.3.1 项目准备
4.3.2 Dagger 集成
4.3.3 欢迎界面
4.3.4 登录注册
4.3.5 主界面
4.3.6 首页
4.3.7 问题详情
4.3.8 回答详情
4.3.9 评论
4.3.10 分享文章
4.3.11 文章
4.3.12 个人中心
4.3.13 用户详情
4.3.14 异常上报、运营统计和应用升级
4.3.15 代码混淆
4.4 Kotlin 实现
第 5 章 开发实践
5.1 Android Studio 中的 Git 实践
5.1.1 创建远程仓库
5.1.2 .gitignore
5.1.3 提交和推送
5.1.4 分支
5.1.5 获取( Fetch )
5.1.6 拉取( Pull )
5.1.7 衍合( Rebase )
5.1.8 Git Flow
5.1.9 分支合并
5.1.10 移动 HEAD
5.1.11 贮藏( Stash )
5.1.12 重置( Reset )
5.1.13 遴选( Cherry Pick )
5.2 Android 屏幕适配
5.2.1 屏幕相关概念
5.2.2 图片适配
5.2.3 dimen
5.2.4 weight
5.2.5 百分比布局
5.2.6 ConstraintLayout
5.2.7 平板适配
5.2.8 RTL 布局
5.3 Android 视频播放器
5.3.1 ijkPlayer
5.3.2 Vitamio
5.3.3 PLDroidPlayer
5.3.4 测试开发
5.4 声网直播实践
5.4.1 频道列表
5.4.2 视频群聊
本书是范磊这些年对 Android 技术的总结,从实战角度出发,介绍了现代 Android 开发中涉及的开源框架、UI 架构模式、工程实践等方面的知识,并以一个实际项目将技术点串联起来,向读者展现了一个 Android 开发者的成长奋斗之路。
——顾浩鑫 《 Android 高级进阶》作者
与作者共事时,其在 Android 领域扎实的技术功底和探索创新精神给我留下了深刻的印象。本书是作者在一线互联网企业及互联网教育行业工作多年的经验沉淀,展示了 Android 应用开发的常用技巧,特别是在开源框架、应用架构上独具匠心。全书通俗易懂,非常适合 Android 开发者入门与进阶提升。
——张远平 腾讯企业发展事业群
当初与作者一同作为职场新人从事 Android Framework 的开发工作,作者爱钻研与分享,不放过底层技术细节,他的文章和 demo 帮助了众多小伙伴。本书基于作者在 Android 开发领域的深厚积累,深入浅出,是 Android 开发者入门与进阶的不二之选。
——李强 珍爱网架构师
作者对当前 Android 应用开发相关的热门内容进行了深入剖析,相信能够解答读者朋友在 Android 应用开发时遇到的一些疑惑,并且用一个完整的应用案例展示了 Android 应用开发的架构使用,为读者朋友开发自己的应用提供了有价值的参考。
——刘大铜 陆金所 Android 工程师
本书适用于具有 Android 开发经验的读者或工程师。对于初级开发者,本书可作为进阶的参考用书,对于高级开发者本书亦具有一定的参考价值
qq 群: 805746225
微信公众号:Android 应用开发进阶