Android应用开发进阶

更多详情


内容简介: 《Android应用开发进阶》为Android应用开发进阶的参考用书,旨在帮助Android开发者能够快速有效地掌握Andriod应用开发进阶相关的知识点。《Android应用开发进阶》内容为Android应用开发热门的话题,包括自定义控件、第三方组件的使用和实现原理、Android应用架构等。《Android应用开发进阶》提供了一个知识问答与分享的实战案例,包括Java版本和Kotlin版本,方便读者完成从Java到Kotlin的平滑过渡,读者朋友可根据该案例搭建属于自己的应用架构。
希望《Android应用开发进阶》能够帮助读者朋友在工作中解决实际问题,提升Android应用开发水平和能力。
《Android应用开发进阶》适用于具有Android开发经验的读者或工程师。对于初级开发者,本书可作为进阶的参考用书,对于高级开发者,《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 OkHttp
2.5.1 OkHttp的使用
2.5.2 OkHttp源码分析
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开发书籍可供参考,很多时候遇到问题只能自己去阅读源码,慢慢地探索。经过多年的发展和积累,国内涌现出了很多优秀的开发者和分享者,有很多参考价值很高的入门和进阶的书籍,这些书籍推动了国内Android开发者技术水平的提升,本书也希望能够为此贡献一点力量。
本书并不试图介绍Android开发的各个方面,因为有些专题甚至可以单独成书了,这里只涉及Android开发者经常会遇到的热门话题,如果能够给Android开发者的工作提供一些帮助或启发,就是本书存在的价值。
本书的主要内容
第1章介绍自定义控件的基本原理,包括View的绘制流程和触摸事件的处理;总结自定义控件中常用的一些方法;通过案例来展示如何完成一个自定义控件;最后介绍自定义控件中性能优化的问题。
第2章介绍在实际开发中常用轮子的使用方法及其实现原理。这些轮子包括Butter Knife、EventBus、Dagger、OkHttp、Retrofit、Volley、RxJava。
第3章通过Google官方的架构示例项目ToDo,详细介绍Android的应用架构,包括MVP、MVP-Clean、MVP-Dagger、MVP-RxJava、MVVM-DataBinding和MVVM-Live。
第4章介绍实战项目AndroidPlus,AndroidPlus是一个专注于Andriod领域的知识问答与分享平台,遵循Material Design,使用MVP-Dagger架构,提供Java版本和Kotlin版本的实现。
第5章介绍Android开发中的一些实践,包括Android Studio中的Git操作、Android屏幕适配的解决方案、常用视频播放器的使用,以及声网直播的实践。
本书适合的对象
本书适用于具有Android开发经验的读者或工程师。对于初级开发者,本书可作为进阶的参考用书,对于高级开发者,本书也具有一定的参考价值。
勘误与互动
因个人水平有限,书中难免存在错误或不准确之处,还望读者朋友批评指正。如果对本书有较好的建议或者对书中内容有所疑惑,可通过QQ或微信公众号与我联系,届时也会定期在微信公众号上公布勘误内容。最后,欢迎大家关注我的微信公众号、简书、掘金,获得更多的文章更新。
QQ:526247082
微信公众号:Android应用开发进阶
简书:https://www.jianshu.com/u/fe8153fbd5de
掘金:https://juejin.im/user/5674fb4360b2298f1221f103
GitHub:https://github.com/uncleleonfan
致谢
感恩父母对我的培养和教育,感恩一起共事过的同事和朋友,感恩生活,感恩祖国。另外,特别感谢陈晓猛编辑耐心的指导、审稿和编辑,因而才有了本书最后的诞生。
范磊

媒体评论: 本书是范磊这些年对 Android技术的总结,从实战角度出发,介绍了现代 Android 开发中涉及的开源框架、UI 架构模式、工程实践等方面的知识,并以一个实际项目将技术点串联起来,向读者展现了一个 Android 开发者的成长奋斗之路。
顾浩鑫 《Android高级进阶》作者
与作者共事时,其在Android领域扎实的技术功底和探索创新精神给我留下了深刻的印象。本书是作者在一线互联网企业及互联网教育行业工作多年的经验沉淀,展示了Android应用开发的常用技巧,特别是在开源框架、应用架构上独具匠心。全书通俗易懂,非常适合Android开发者入门与进阶提升。
张远平 腾讯企业发展事业群
当初与作者一同作为职场新人从事Android Framework的开发工作,作者爱钻研与分享,不放过底层技术细节,他的文章和demo帮助了众多小伙伴。本书基于作者在Android开发领域的深厚积累,深入浅出,是Android开发者入门与进阶的不二之选。
李强
珍爱网架构师
作者对当前Android应用开发相关的热门内容进行了深入剖析,相信能够解答读者朋友在Android应用开发时遇到的一些疑惑,并且用一个完整的应用案例展示了Android应用开发的架构使用,为读者朋友开发自己的应用提供了有价值的参考。
刘大铜
陆金所Android工程师