书籍作者:王辰龙 | ISBN:9787121342981 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:9788 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。本书从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求优秀方案。本书的内容分为以下几个部分。
进阶基础:通过管中窥豹,剖析Activity和View的一些基本概念,展示源码分析的常见方法;高阶控件:讲解MD的两个复合布局和约束布局,介绍高级控件的开发流程;项目架构:架构是项目的骨骼,该部分介绍主流的MVP系列和Flux架构;响应式编程:解析响应式编程三剑客RxJava+Dagger+Retrofit的不同特性组合使用方法;功能与动画:列举若干实际开发中的经典实例,包含功能定制和页面动画等;Kotlin与SVG:讲解Kotlin编程语言和SVG图像技术的若干开发技巧;测试与优化:介绍自动化测试框架的设计方法,以及优化应用的常用工具。
通过对本书的学习,读者可以极大地提高Android开发的工程能力,从而成为一名合格的高级Android工程师,不仅在理论上有所提升,在实践中也能直接应用。高级Android工程师通过对本书的学习也能完善知识体系和技术栈。
王辰龙,算法资深工程师,毕业于北京交通大学。在移动互联网公司从事多年技术研发工作,对于技术与产品有着深刻的理解。热爱开源,热爱分享,追求优秀的技术实现。践行工匠精神,崇尚“艺无止境”。
l 本书实例都来自对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。
l 从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求优秀方案。
l 内容涉及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 深入剖析 Activity 的生命周期
1.1.1 Activity的生命周期的各种状态
1.1.2 实例:准备
1.1.3 实例:因硬件导致的生命周期变化
1.1.4 实例:页面切换时的生命周期变化
1.1.5 实例:由系统原因导致的生命周期变化
1.2 深入剖析Activity的启动模式
1.2.1 ADB命令
1.2.2 标准模式
1.2.3 栈顶复用模式
1.2.4 栈内复用模式
1.2.5 单实例模式
1.2.6 startActivity
1.3 深入剖析View的工作流程
1.3.1 装饰视图和MeasureSpec
1.3.2 测量
1.3.3 布局
1.3.4 绘制
1.4 深入剖析View的动画原理
1.4.1 默认视图动画
1.4.2 自定义视图动画
1.4.3 帧动画
1.4.4 属性动画
1.4.5 列表控件
第2章 高阶控件
2.1 熟练掌握AppBarLayout的开发技术
2.1.1 搭建项目框架
2.1.2 页面设置ViewPager布局
2.1.3 页面添加AppBarLayout布局
2.1.4 页面添加AppBarLayout逻辑
2.1.5 页面添加AppBarLayout动画
2.2 熟练掌握 CoordinatorLayout的开发技术
2.2.1 项目框架
2.2.2 布局设计
2.2.3 联动逻辑
2.2.4 图片交互
2.3 熟练掌握 ConstraintLayout 的开发技术
2.3.1 工程配置
2.3.2 约束布局
2.3.3 链式结构
第3章 项目架构
3.1 顶层设计 Android 的工程架构
3.1.1 MVC架构
3.1.2 MVP架构
3.1.3 MVVM架构
3.2 顶层设计基于Flux的流式架构
3.2.1 视图
3.2.2 行为创建器
3.2.3 调度器
3.2.4 存储器
第4章 响应式编程
4.1 全面解析响应式库RxJava的使用方式
4.1.1 项目框架
4.1.2 链式表达式
4.1.3 流的加工函数
4.1.4 Lambda表达式
4.1.5 网络请求
4.1.6 控件的异步事件
4.1.7 线程安全
4.2 全面解析依赖注入库 Dagger 的使用方式
4.2.1 工程配置
4.2.2 主页逻辑
4.2.3 详情逻辑
4.3 基于响应式编程的网络数据同步及缓存框架
4.3.1 工程配置
4.3.2 首页
4.3.3 数据源
4.3.4 依赖注入
4.3.5 无缓存模式
4.3.6 缓存模式
第5章 炫酷功能
5.1 设计与实现朋友圈视频的滚动播放功能
5.1.1 项目框架
5.1.2 视频列表
5.1.3 视频项的适配器
5.1.4 视频列表项
5.2 设计与实现基于 DialogFragment 的底部弹窗布局
5.2.1 首页逻辑
5.2.2 弹窗样式
5.2.3 弹窗逻辑
第6章 精美动画
6.1 实现页面切换中元素分享的动画效果
6.1.1 项目框架
6.1.2 效果显示动画
6.1.3 预留位置动画
6.2 实现页面展开中圆形爆炸的动画效果
6.2.1 首页逻辑
6.2.2 新页逻辑
6.2.3 显示动画
6.2.4 退出动画
第7章 Kotlin与SVG
7.1 Kotlin基础教程
7.1.1 基础部分
7.1.2 进阶部分
7.2 SVG基础教程
7.2.1 Vector图像
7.2.2 Vector动画
7.2.3 第三方Sharp库
第8章 测试与优化
8.1 基于Espresso和Dagger的自动化测试框架
8.1.1 工程配置
8.1.2 业务逻辑
8.1.3 功能测试
8.2 优化内存泄漏与电量消耗的技术框架
8.2.1 内存泄漏
8.2.2 电量优化
栗子真的非常有用,知道什么原理,还要知道怎么做,看个完整的实例就懂了!
2018-06-28
这本书,除了实例,还在灌输一些产品思维,有趣!
2018-06-28
这本书覆盖的技术很全面,实例丰富!
2018-07-08
本书的实例讲解的非常详细,好多知识点在开发中,自然而然的就学会了,连架构和测试都有实例,在工作中,几乎可以直接使用,真的非常方便!
2018-06-30
提前入手这本书,非常不错,跟着书中的实例,一个一个的学,就把概念弄懂了。不同于培训机构的实例,这本书都来源于一线工程师,在工作中超级有用!
2018-07-05