具体描述
《高级Android开发强化实战》收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。《高级Android开发强化实战》从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求最优方案。《高级Android开发强化实战》的内容分为以下几个部分。
进阶基础:通过管中窥豹,剖析Activity和View的一些基本概念,展示源码分析的常见方法;高阶控件:讲解MD的两个复合布局和约束布局,介绍高级控件的开发流程;项目架构:架构是项目的骨骼,该部分介绍主流的MVP系列和Flux架构;响应式编程:解析响应式编程三剑客RxJava+Dagger+Retrofit的不同特性组合使用方法;功能与动画:列举若干实际开发中的经典实例,包含功能定制和页面动画等;Kotlin与SVG:讲解Kotlin编程语言和SVG图像技术的若干开发技巧;测试与优化:介绍自动化测试框架的设计方法,以及优化应用的常用工具。
通过对《高级Android开发强化实战》的学习,读者可以极大地提高Android开发的工程能力,从而成为一名合格的高级Android工程师,不仅在理论上有所提升,在实践中也能直接应用。高级Android工程师通过对《高级Android开发强化实战》的学习也能完善知识体系和技术栈。
作者简介
王辰龙
算法资深工程师,毕业于北京交通大学。在移动互联网公司从事多年技术研发工作,对于技术与产品有着深刻的理解。热爱开源,热爱分享,追求极致的技术实现。践行工匠精神,崇尚“艺无止境”。
目录信息
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
· · · · · · (收起)
读后感
本书深入浅出,从开发模式到常用的流行框架和性能优化方法,都进行了由表及里的深入分析,对于Android进阶非常有益。本书结合实践案例进行讲解,摒弃了枯燥的原理陈述,可让读者在具体场景下了解Android技术。 本书的技术点都是目前流行的技术,有很多高级知识点,非常有助于快...
Android进阶是一个循序渐进的过程,普通的工程师要求是完成某个页面或者某个功能,而高级工程师,需要独立完成一个模块,或者设计一些工程架构,恰恰这一步是最难的,也是最复杂的。一般的书都概念型的,翻译一下Google的文档,找一些百度,没有任何意义,进阶需要不断的实践,...
Android的发展是非常迅速的,几乎每一年都会有新的东西出来,以前的书就面临着过时、淘汰,很多核心的API已经被遗弃。同时,对于高级或资深Android程序员而言,要求也在逐年提高,最早的只要能努力完成一些功能就行,而当下需要面面俱到,架构和工具一样都不能少。对于初级工程...
本书深入浅出,从开发模式到常用的流行框架和性能优化方法,都进行了由表及里的深入分析,对于Android进阶非常有益。本书结合实践案例进行讲解,摒弃了枯燥的原理陈述,可让读者在具体场景下了解Android技术。 本书的技术点都是目前流行的技术,有很多高级知识点,非常有助于快...
对于Android新手而言,最重要的是如何学会编程,而不是学会概念,先入门,再在开发中不断积累技术,一点一滴,逐渐学习,对于枯燥的文档而言,通过实例可以学习到最新的知识。 按照实例,一点一点地敲,逐个理解,不断地总结,这样进步才快。目前市面上的书,不是长篇冗余的概...
用户评价
这本书的作者似乎更像是一位理论研究者,而不是一个在残酷的移动开发战场上摸爬滚打过的工程师。在介绍如何构建大型、可维护的应用架构时,所有的论述都停留在概念层面,缺乏对现实世界中“妥协”和“权衡”的深入探讨。比如,当谈到模块化时,书中给出的是一个完美的、理想化的多模块划分方案,但完全没有提及在遗留项目代码库中如何平滑地引入这种架构,如何处理跨模块的依赖冲突,以及在 CI/CD 流程中引入复杂构建脚本所带来的额外开销。这些才是实战中真正需要攻克的难关。这本书提供的解决方案过于“纯净”和“学术化”,无法直接应用于那些充满技术债和时间压力的真实项目中。它缺少了那种“我知道这很痛苦,但我告诉你具体该怎么扛过去”的实战经验分享,让人感觉这本书的视角永远停留在实验室阶段。
这本书给我最大的感受是“过时”。我购买它的时候,是抱着学习当前主流的响应式编程范式和最新的 Jetpack 架构组件的期望。然而,书中引用的库版本似乎定格在了好几年前,很多今天被视为最佳实践的做法,在书中被描述为“可选”甚至是被排斥的。我不得不花费大量精力去手动更新和适配那些过时的代码库,这不仅打断了我的学习节奏,更重要的是,让我对作者的专业敏感度产生了质疑。一个关于“强化实战”的书籍,如果不能紧跟行业最快的迭代速度,那它的价值何在?那些被大篇幅介绍的过时模式,在现代 Android 生态中几乎已经没有应用场景了。与其浪费时间去理解这些历史包袱,不如直接阅读官方最新的文档。我希望这本书能带来的是站在行业前沿的洞察,而不是一本活的历史教科书。
这本书的排版设计和内容组织简直是一场灾难。我花了整整一个下午试图理解其中的一个核心概念,结果发现作者的逻辑跳跃得厉害,就像在迷宫里绕圈子。章节之间的衔接非常生硬,前后的内容似乎是拼凑起来的,缺乏一种连贯的叙事线索。尤其是那些代码示例,注释少得可怜,而且很多都已经过时了,我不得不在 Stack Overflow 上花费大量时间去调试和修复那些看似简单的“范例”。更让人抓狂的是,插图质量低劣,很多示意图模糊不清,完全无法帮助理解复杂的架构设计。说实话,如果不是因为手头工作实在走不开,我可能早就把它束之高阁了。这本书给我的感觉更像是一份未经校对的草稿,而不是一本面向专业开发者的教材。它不仅没能“强化”我的实战能力,反而让我对自己的学习效率产生了深深的怀疑。我期待的是系统化的知识体系和前沿技术的深入剖析,而不是这种东拼西凑、敷衍了事的产物。
从装帧和印刷质量上来看,这本书也显得非常廉价。纸张过于光滑,导致反光严重,在任何非正午的室内光线下阅读都非常费力,眼睛很容易疲劳。更糟糕的是,它似乎只关注了技术本身,完全忽略了阅读体验。很多长句子的排版拥挤不堪,术语的缩写没有统一的标准,一会儿用这个,一会儿用那个,让人在快速阅读时需要不断地停下来回溯上下文去确认到底指的是哪个组件。作为一本需要反复查阅的工具书,这种糟糕的物理设计无疑大大降低了其可用性。一本优秀的开发者书籍,理应像一位耐心的导师,引导读者顺畅地获取知识,而不是像一本印刷粗糙的说明书,让人感到阅读本身就是一种负担和挑战。我更倾向于电子版,至少在字体和间距上还有调整的空间。
我简直不敢相信自己居然读完了这本书的前半部分,这体验就像是徒步穿越一片信息荒漠。作者似乎对“高级”这个词有着非常独特的理解,他似乎认为只要堆砌一堆听起来很炫酷的技术名词,就能构成高阶内容。然而,在每一个关键点的讲解上,都浅尝辄止,像是在给初学者做入门介绍,用词极其笼统,完全没有触及到那些真正让资深开发者头疼的灰色地带和陷阱。举个例子,关于内存管理和并发编程的部分,仅仅停留在 API 的调用层面,对于底层原理的探讨几乎为零,这对于期望提升性能优化能力的我来说,是巨大的失望。书中的案例场景也显得极其不接地气,似乎是作者根据一些过时的博客文章臆想出来的“理想化”环境,与真实生产环境中的混乱和复杂性相去甚远。我原本希望通过这本书能找到解决现有项目瓶颈的灵感和方法论,结果只找到了一堆不切实际的理论框架。
适合阅读的技术好书,今年新书,技术新颖!!!
适合阅读的技术好书,今年新书,技术新颖!!!
提前入手这本书,非常不错,跟着书中的实例,一个一个的学,就把概念弄懂了。不同于培训机构的实例,这本书都来源于一线工程师,在工作中超级有用!
适合阅读的技术好书,今年新书,技术新颖!!!
栗子真的非常有用,知道什么原理,还要知道怎么做,看个完整的实例就懂了!