高级Android开发强化实战
  • 推荐1
  • 收藏1
  • 浏览540

高级Android开发强化实战

王辰龙 (作者) 

  • 书  号:978-7-121-34298-1
  • 页  数:296
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 维护人:张国霞
本书收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。本书从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求最优方案。本书的内容分为以下几个部分。
进阶基础:通过管中窥豹,剖析Activity和View的一些基本概念,展示源码分析的常见方法;高阶控件:讲解MD的两个复合布局和约束布局,介绍高级控件的开发流程;项目架构:架构是项目的骨骼,该部分介绍主流的MVP系列和Flux架构;响应式编程:解析响应式编程三剑客RxJava+Dagger+Retrofit的不同特性组合使用方法;功能与动画:列举若干实际开发中的经典实例,包含功能定制和页面动画等;Kotlin与SVG:讲解Kotlin编程语言和SVG图像技术的若干开发技巧;测试与优化:介绍自动化测试框架的设计方法,以及优化应用的常用工具。
通过对本书的学习,读者可以极大地提高Android开发的工程能力,从而成为一名合格的高级Android工程师,不仅在理论上有所提升,在实践中也能直接应用。高级Android工程师通过对本书的学习也能完善知识体系和技术栈。
Android进阶详解,覆盖Android开发技术栈:Activity和View、高阶控件、项目架构、响应式编程、功能与动画、Kotlin与SVG、测试与优化等
王辰龙
算法资深工程师,毕业于北京交通大学。在移动互联网公司从事多年技术研发工作,对于技术与产品有着深刻的理解。热爱开源,热爱分享,追求极致的技术实现。践行工匠精神,崇尚“艺无止境”。
在编程之余,有时候我就在想,什么样的程序员属于高级程序员呢?或者说,高级程序员有哪些特性呢?工作年限一定不是一个关键的指标,许多工作多年的程序员依然写不出优雅的程序。无论是在Android开发还是其他领域,高级程序员一定是勤奋的,可以快速地掌握大量的新技术、新框架,不仅懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员工作能力的一个重要标准,那么怎样才能将技术运用自如呢?唯有实践。基于此,我想把自己在日常实践中的一些经典案例,编著成一本成体系的书,以便为想要进步的Android程序员增加更多的实战经验,这也是编写本书的核心目的所在。
编写本书的另外一个目的,是帮助程序员建立产品的思想,对于技术而言,孤立的存在是没有任何意义的,技术只有与需求相结合,才能具有自身的价值。技术人员在开发的过程中,要时刻了解所完成的功能可以为公司带来哪些价值,是提升用户的访问兴趣,还是提升用户的使用流畅度,抑或是其他。当以产品思维去思考技术的时候,就会有动力、有目的地学习更多有价值的技术,而不是哗众取宠地学一些“看似有用”的新技术。
除此之外,还有理解架构的本质。一些技术人员经常会问:“为什么要使用架构?这只会增加额外的代码量,而且并不会对功能或性能有所提升,只需要完成必要的开发任务即可。”这种想法是非常浅显的,因为任何一个应用都不是一次成型的,需要不断地迭代,不断地扩展,同时需要不断地修改已有的业务逻辑,这就会涉及系统兼容性的问题。如何修改新的业务逻辑而不影响旧的业务逻辑?如何最大限度地复用已有的业务逻辑?架构就是解决这类问题的钥匙,一个优秀且合适的项目架构可以保证系统的稳定性,当开发新的功能或者修改旧的功能时,不至于破坏已有的业务体系。
本书的实例都是经典实战实例,每一个例子都代表一类在开发中需要掌握的技巧。本书由浅入深地逐个讲解需要掌握的开发理论与实践,共分为七部分。
◎ 进阶基础:偏重于源码的解析和理解,介绍阅读源码的技巧,以Activity和View为例,管中窥豹地分析其中的基础知识。读者也可依据此类方法,分析其他系统组件的源码。
◎ 高阶控件:介绍若干复杂的控件布局,即AppBarLayout、CoordinatorLayout和ConstraintLayout。通过实例,让读者理解在复杂控件布局中子视图是如何组合和相互关联的。
◎ 项目架构:分析主流架构的设计思想,即Google推荐的MVP和MVVM,还有Facebook的Flux。理解这些架构是如何组织和管理大型项目的,以及它们的优点和缺点各有哪些。
◎ 响应式编程:响应式是一种编程思想,在处理网络请求和功能测试时,基于响应式框架的项目拥有更好的可扩展性和可维护性,响应式编程三剑客即RxJava、Dagger和Retrofit。
◎ 酷炫功能与精美动画:实现两个稍复杂的功能,分别是基于第三方控件和基于系统控件的扩展;并实现两个动画效果,分别用于页面展开和页面切换。对于功能和动画,不同的需求或样式层出不穷,本部分侧重于开发思路的分享。
◎ Kotlin与SVG:Kotlin是用于替代Java的高阶编程语言,SVG是用于替代PNG格式的图像技术,本书着重介绍一些基础概念,提纲挈领,以便于读者后续进行自主学习。
◎ 测试与优化:分享一个主流的自动化测试框架,以及优化内存与电量的一些常见方法。产品的性能与功能同样重要,应用的高品质也会提升产品的用户体验。
这七部分几乎已经包含高级Android编程的全部内容,本书的每个部分都会通过多个实例,从不同的角度引领读者亲身实战,真正地掌握高级编程的核心开发技巧。但是,实例的数量终究有限,希望读者更多地关注于实战中的开发思想,而不是具体的代码逻辑,代码总会不断地更迭,解决问题的思维却历久弥新。本书中的实例更多的是以点带面,读者可以一边阅读和思考,一边编写代码,相信读完本书,一定受益匪浅;同时,通过本书的实例可以解决一些常见的开发需求。衷心希望每位读者在阅读完本书之后,都“不虚此行”!
将本书送给我正在怀孕的妻子,感谢你在生活和工作中给予我的支持和帮助。
王辰龙
2018年5月于北京海淀

目录

第1章 进阶基础 1
1.1 深入剖析 Activity 的生命周期 1
1.1.1 Activity的生命周期的各种状态 2
1.1.2 实例:准备 4
1.1.3 实例:因硬件导致的生命周期变化 6
1.1.4 实例:页面切换时的生命周期变化 11
1.1.5 实例:由系统原因导致的生命周期变化 16
1.2 深入剖析Activity的启动模式 20
1.2.1 ADB命令 20
1.2.2 标准模式 21
1.2.3 栈顶复用模式 25
1.2.4 栈内复用模式 27
1.2.5 单实例模式 32
1.2.6 startActivity 34
1.3 深入剖析View的工作流程 36
1.3.1 装饰视图和MeasureSpec 38
1.3.2 测量 39
1.3.3 布局 44
1.3.4 绘制 45
1.4 深入剖析View的动画原理 47
1.4.1 默认视图动画 48
1.4.2 自定义视图动画 51
1.4.3 帧动画 54
1.4.4 属性动画 54
1.4.5 列表控件 58
第2章 高阶控件 62
2.1 熟练掌握AppBarLayout的开发技术 62
2.1.1 搭建项目框架 63
2.1.2 页面设置ViewPager布局 67
2.1.3 页面添加AppBarLayout布局 73
2.1.4 页面添加AppBarLayout逻辑 76
2.1.5 页面添加AppBarLayout动画 81
2.2 熟练掌握 CoordinatorLayout的开发技术 85
2.2.1 项目框架 86
2.2.2 布局设计 86
2.2.3 联动逻辑 90
2.2.4 图片交互 93
2.3 熟练掌握 ConstraintLayout 的开发技术 96
2.3.1 工程配置 97
2.3.2 约束布局 99
2.3.3 链式结构 107
第3章 项目架构 110
3.1 顶层设计 Android 的工程架构 110
3.1.1 MVC架构 111
3.1.2 MVP架构 116
3.1.3 MVVM架构 120
3.2 顶层设计基于Flux的流式架构 124
3.2.1 视图 125
3.2.2 行为创建器 129
3.2.3 调度器 131
3.2.4 存储器 133
第4章 响应式编程 141
4.1 全面解析响应式库RxJava的使用方式 141
4.1.1 项目框架 142
4.1.2 链式表达式 144
4.1.3 流的加工函数 148
4.1.4 Ambda表达式 151
4.1.5 网络请求 152
4.1.6 控件的异步事件 159
4.1.7 线程安全 161
4.2 全面解析依赖注入库 Dagger 的使用方式 164
4.2.1 工程配置 165
4.2.2 主页逻辑 166
4.2.3 详情逻辑 169
4.3 基于响应式编程的网络数据同步及缓存框架 173
4.3.1 工程配置 174
4.3.2 首页 175
4.3.3 数据源 177
4.3.4 依赖注入 179
4.3.5 无缓存模式 181
4.3.6 缓存模式 183
第5章 炫酷功能 186
5.1 设计与实现朋友圈视频的滚动播放功能 186
5.1.1 项目框架 187
5.1.2 视频列表 189
5.1.3 视频项的适配器 193
5.1.4 视频列表项 196
5.2 设计与实现基于 DialogFragment 的底部弹窗布局 200
5.2.1 首页逻辑 201
5.2.2 弹窗样式 202
5.2.3 弹窗逻辑 204

第6章 精美动画 208
6.1 实现页面切换中元素分享的动画效果 208
6.1.1 项目框架 208
6.1.2 效果显示动画 210
6.1.3 预留位置动画 214
6.2 实现页面展开中圆形爆炸的动画效果 220
6.2.1 首页逻辑 221
6.2.2 新页逻辑 223
6.2.3 显示动画 226
6.2.4 退出动画 229
第7章 Kotlin与SVG 231
7.1 Kotlin基础教程 231
7.1.1 基础部分 232
7.1.2 进阶部分 237
7.2 SVG基础教程 241
7.2.1 Vector图像 242
7.2.2 Vector动画 245
7.2.3 第三方Sharp库 249
第8章 测试与优化 254
8.1 基于Espresso和Dagger的自动化测试框架 254
8.1.1 工程配置 255
8.1.2 业务逻辑 257
8.1.3 功能测试 265
8.2 优化内存泄漏与电量消耗的技术框架 272
8.2.1 内存泄漏 272
8.2.2 电量优化 282

读者评论

  • 看到在 kindle 、京东、豆瓣已经出了电子版,想问一下,会在此网站出下载版吗?

    seachal发表于 2018/12/15 9:22:56

图书类别

推荐用户

相关图书

写给大忙人的现代JavaScript

(德国)HORSTMANN, CAY S. (作者) 浙江阿里巴巴聚橙技术发展有限公司 (译者)

本书是一本简明的现代 JavaScript 教程,不仅涵盖函数式编程、JS 语法、JS 库等基础性内容,还介绍了国际化、异步编程、标准模块系统、元编程等较为复杂...

¥109.00

基于Bert模型的自然语言处理实战

李金洪 (作者)

2018年底谷歌公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且还在11种不...

¥139.00

Flutter企业级应用开发实战

郭歆伊 (作者)

本书是一本可供国内企业参考落地的Flutter技术图书。闲鱼技术团队在实际的技术落地过程中,既享受了Flutter研发效能带来的红利,也经历了无数的技术挑战。本...

¥89.00

JavaScript 二十年

王译锋 (作者)

本书主要讲述了从 1995 年到 2015 年这20年间,JavaScript在创建、设计和演变方面所经历的过程。全书分为4个部分,每个部分都涵盖了 JavaS...

¥79.00

数据分析实用教程

刘政 罗应婷 姚新军 (作者)

本书共 14 章,内容涵盖:统计学的基本概念、推断性统计的相关理论和实例、方差分析、相关分析与回归分析、Logistic 回归、主成分分析与因子分析、聚类分析、...

¥99.00

Flink实战派(双色版)

龙中华 (作者)

本书针对Flink 1.11版本和Alink 1.2版本,采用“知识点+实例”的形式编写,包括47个基于知识点的实例和1个综合项目实例。 第1章对大数据和人工...