记得刚从事Android开发的工作时,市面上鲜有Android开发书籍可供参考,很多时候遇到问题只能自己去阅读源码,慢慢地探索。经过这么多年的发展和积累,涌现了很多优秀的开发者和分享者,有很多参考价值很高的入门和进阶的书籍,推动了国内Android开发者技术水平的提升,《Android应用开发进阶》也希望能够为此提供哪怕一点点的贡献。
本书并不试图介绍Android开发的各个方面,因为有些专题甚至可以单独成书了,这里只涉及到Android开发者经常会遇到的热门话题,如果能够给Android开发者的工作提供一些帮助或启发,就是它存在的价值。

特色

  • 基于Android Studio 3.0
  • 本书对自定义控件进行了深入剖析,帮助读者理解和使用自定义控件
  • 本书对常用第三方组件的使用和原理由浅入深地进行了讲解,知其然也知其所以然
  • 本书对Android应用各种架构进行了介绍,通过示例展示架构的使用
  • 实战项目AndroidPlus将各个知识点进行串联,展示一个完整Android应用的架构和实现
  • 实战项目包括Java版和Kotlin版
  • 其他开发技巧,如Android Studio中Git的使用

本书内容

第一章介绍了自定义控件的基本原理,包括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应用开发进阶

Github:https://github.com/uncleleonfan

Android应用开发进阶相关推荐

  1. 《Android App开发进阶与项目实战》出版后记

    <Android App开发入门与项目实战>刚写完,我马上着手编写它的姊妹篇<Android App开发进阶与项目实战>,因为开发入门一书比较基础,还需要一本讲解高级开发与新技 ...

  2. 《Android App开发进阶与项目实战》资源下载和内容勘误

    资源下载 下面是<Android App开发进阶与项目实战>一书用到的工具和代码资源: 1.本书使用的Android Studio版本为4.2,最新的安装包可前往Android官网页面下载 ...

  3. 送书啦~《Android App开发进阶与项目实战》

    双十一刚结束,受我的编辑王老师所托,帮忙宣传<Android App开发进阶与项目实战>并赠送五本新书.该书介绍了很多新的技术,包括人工智能相关的. 1融合众多前沿技术 展现人工智能时代A ...

  4. Android应用开发进阶,一线互联网企业高级Android工程师面试题大全

    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 RxJav ...

  5. Android视频开发进阶(part2-MP4文件的解析)

    上一期文章我分享了一些视频播放里面的术语和基本概念.这一篇文章我会主要介绍容器(container format file)格式文件的细节,以最常见的MP4文件入手.然后会简短的介绍一个标准的播放器的 ...

  6. Android视频开发进阶(part5-安卓的DRM,视频版权保护)

    之前因为种种原因好久没有更新视频开发的文章了.今天刚刚从国内飞回来,趁着周末更新一下.不过关于DRM这块首先一般的开发者很少用到,而且DRM的开发需要前后台的密切合作,可以说后台的工作占了一大半,安卓 ...

  7. Android视频开发进阶-关于视频的那些术语,android软件开发计算器

    原文出处:jianshu 正文 说到安卓的视频开发,大多数朋友们都是用着开源的播放器,或者安卓自带的native mediaplayer,拿来主义居多,我曾经也是...最近这半年因为开始着手重构公司的 ...

  8. Android视频开发进阶(part1-关于视频的那些术语)

    说到安卓的视频开发,大多数朋友们都是用着开源的播放器,或者安卓自带的native mediaplayer,拿来主义居多,我曾经也是... 最近这半年因为开始着手重构公司的播放器,也开始学习了很多视频音 ...

  9. Android音视频开发进阶

    原文链接:http://www.jianshu.com/u/a32db45d4859 Android视频开发进阶(part1-关于视频的那些术语) http://www.jianshu.com/p/1 ...

  10. 安卓开发首次创建项目一直转圈_Android视频开发进阶(part3Android的Media API)

    秦子帅明确目标,每天进步一点点..... 作者 |  qing的世界地址 |  juejin.im/post/6844903574837657614 上两期我们已经学习了关于视频播放的基础知识,还有容 ...

最新文章

  1. 【ACM】连续出现的字符
  2. java面向对象特征及阐述,Java面向对象四个特征
  3. 信息网络基础设施普遍薄弱,提防信息安全风险--央行副行长
  4. 关于Unity中的刚体和碰撞器的相关用法(一)
  5. 金山办公或将陷入低增长,再去哪里找客户?
  6. java自动获取时间 月代码_【java代码获取系统时间和执行定时任务】
  7. LeetCode刷题实战(2):Add Two Numbers
  8. amd平台linux驱动安装失败,ati闭源驱动安装失败,问题解觉不了。
  9. 成像反了_宋国荣, 窦致夏:快速超声 C 扫描成像中的信号频域分析法及其应用...
  10. 使用Eclipse构建Maven项目 (step-by-step) (转收藏)
  11. SetTimer函数总结
  12. windows64位首次安装git
  13. Mac电脑高质量神器——超级右键
  14. walking机器人入门教程-应用-全景图
  15. 我是一名Linux系统运维工程师
  16. Hulu推荐 | 五年口碑依旧百分百好评?《汉密尔顿》上线Disney+
  17. lr中的lr_output_message,Lr_debug_message,Lr_error_message,Lrd_stmt,Lrd_fetch函数
  18. 全球排名前四的眼药水,第一款来自欧洲老牌安瞧AGEPHA Pharma,眼科医生自留!
  19. Mac 修改命令行前缀显示
  20. C#基础知识梳理系列十五:反射

热门文章

  1. (10)Spring框架----AOP面向切面编程的实现原理
  2. 设计模式和java实现
  3. Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法...
  4. FZU《C语言程序综合设计》
  5. 0可用,0已用 U盘问题 重解~
  6. 用Java实现断点续传(HTTP)
  7. button执行onclick函数_JavaScript 函数定义与调用
  8. android对象引用释放,Android程序的内存泄漏与规避方法
  9. knot DNS 01 Tips
  10. gmm聚类python_聚类算法GMM和KMeans?