新書推薦:
《
述异记汇笺及情节单元分类研究(上下册)
》
售價:NT$
475.0
《
环境、社会、治理(ESG)信息披露操作手册
》
售價:NT$
1190.0
《
桑德拉销售原则 伍杰 [美]大卫·马特森
》
售價:NT$
440.0
《
理论的意义
》
售價:NT$
340.0
《
悬壶杂记:医林旧事
》
售價:NT$
240.0
《
谁之罪?(汉译世界文学5)
》
售價:NT$
240.0
《
民国词社沤社研究
》
售價:NT$
640.0
《
帕纳索传来的消息(文艺复兴译丛)
》
售價:NT$
495.0
|
編輯推薦: |
1 业界知名专家邓凡平、张鸿洋、徐宜生、陈国华、李文东联袂力荐
2 《Android进阶之光》基于Android 7.0和Android Studio,对Android开发进阶要点进行深入讲解,为工程师的进阶之路带来指引和光明。
3 《Android进阶之光》是目前市场上详细介绍有关Android新特性、Material Design、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。
|
內容簡介: |
本书是一本Android进阶类书籍,书中各知识点由浅入深、环环相扣,最终这些知识点形成了一个体系结构。本书共分为11章。第1章介绍Android 5.0到Android 7.0的新特性。第2章介绍Material Design。第3章介绍View体系,包括View的事件分发、工作流程、自定义View等知识点。第4章介绍多线程的知识。第5章介绍网络编程与网络框架的知识。第6章介绍常用的设计模式。第7章介绍事件总线。第8到第10章介绍架构设计所需要的知识点。第11章简单介绍Android系统框架与MediaPlayer框架。本书详细并深入讲解Android开发者必备的和前沿的知识,适合有一定开发基础的开发者阅读,这有助于他们提高技术水平;同时,本书系统的知识体系结构也令高级开发者从中获益良多。
|
關於作者: |
刘望舒
Android高级工程师,拥有多年开发和技术管理经验,对Android框架层及应用层开发有着深入的理解。热爱技术和分享,连续6年在CSDN发表技术文章,有多篇文章广受好评,并被授予CSDN博客专家称号。此外,他还活跃在简书和掘金。曾在多家知名公司从事Android开发。
独立博客:http:liuwangshu.cn
CSDN博客:http:blog.csdn.netitachi85
新浪微博:http:weibo.comitachi85
微信公众号:刘望舒
|
目錄:
|
目录
第1章 Android新特性1
1.1 Android 5.0新特性1
1.1.1 Android 5.0主要新特性概述1
1.1.2 替换ListView和GridView的RecyclerView3
1.1.3 卡片CardView13
1.1.4 3种Notification18
1.1.5 Toolbar与Palette23
1.2 Android 6.0新特性29
1.2.1 Android 6.0主要新特性概述29
1.2.2 运行时权限机制30
1.3 Android 7.0新特性43
1.3.1 Android 7.0主要新特性概述43
1.3.2 多窗口模式44
1.4 本章小结47
第2章 Material Design48
2.1 Material Design概述48
2.1.1 核心思想48
2.1.2 材质与空间49
2.1.3 动画49
2.1.4 样式50
2.1.5 图标51
2.1.6 图像51
2.1.7 组件51
2.2 Design Support Library常用控件详解54
2.2.1 Snackbar的使用54
2.2.2 用TextInputLayout实现登录界面55
2.2.3 FloatingActionButton的使用60
2.2.4 用TabLayout实现类似网易选项卡的动态滑动效果61
2.2.5 用NavigationView实现抽屉菜单界面68
2.2.6 用CoordinatorLayout实现Toolbar隐藏和折叠74
2.3 本章小结86
第3章 View体系与自定义View87
3.1 View与ViewGroup87
3.2 坐标系89
3.2.1 Android坐标系89
3.2.2 View坐标系90
3.3 View的滑动91
3.3.1 layout方法92
3.3.2 offsetLeftAndRight与offsetTopAndBottom94
3.3.3 LayoutParams(改变布局参数)95
3.3.4 动画95
3.3.5 scrollTo与scollBy96
3.3.6 Scroller98
3.4 属性动画99
3.5 解析Scroller105
3.6 View的事件分发机制108
3.6.1 源码解析Activity的构成108
3.6.2 源码解析View的事件分发机制112
3.7 View的工作流程119
3.7.1 View的工作流程入口119
3.7.2 理解MeasureSpec122
3.7.3 View的measure流程126
3.7.4 View的layout流程132
3.7.5 View的draw流程135
3.8 自定义View139
3.8.1 继承系统控件的自定义View140
3.8.2 继承View的自定义View141
3.8.3 自定义组合控件147
3.8.4 自定义ViewGroup152
3.9 本章小结164
第4章 多线程编程165
4.1 线程基础165
4.1.1 进程与线程165
4.1.2 线程的状态167
4.1.3 创建线程168
4.1.4 理解中断170
4.1.5 安全地终止线程171
4.2 同步173
4.2.1 重入锁与条件对象173
4.2.2 同步方法175
4.2.3 同步代码块176
4.2.4 volatile177
4.3 阻塞队列183
4.3.1 阻塞队列简介183
4.3.2 Java中的阻塞队列184
4.3.3 阻塞队列的实现原理186
4.3.4 阻塞队列的使用场景188
4.4 线程池190
4.4.1 ThreadPoolExecutor190
4.4.2 线程池的处理流程和原理192
4.4.3 线程池的种类193
4.5 AsyncTask的原理197
4.6 本章小结203
第5章 网络编程与网络框架204
5.1 网络分层204
5.2 TCP的三次握手与四次挥手205
5.3 HTTP协议原理207
5.3.1 HTTP简介207
5.3.2 HTTP请求报文208
5.3.3 HTTP响应报文209
5.3.4 HTTP的消息报头210
5.3.5 抓包应用举例211
5.4 HttpClient与HttpURLConnection212
5.4.1 HttpClient212
5.4.2 HttpURLConnection216
5.5 解析Volley218
5.5.1 Volley基本用法218
5.5.2 源码解析Volley223
5.6 解析OkHttp231
5.6.1 OkHttp基本用法232
5.6.2 源码解析OkHttp240
5.7 解析Retrofit255
5.7.1 Retrofit基本用法255
5.7.2 源码解析Retrofit261
5.8 本章小结270
第6章 设计模式271
6.1 设计模式六大原则271
6.2 设计模式分类273
6.3 创建型设计模式273
6.3.1 单例模式274
6.3.2 简单工厂模式277
6.3.3 工厂方法模式279
6.3.4 建造者模式281
6.4 结构型设计模式284
6.4.1 代理模式285
6.4.2 装饰模式288
6.4.3 外观模式291
6.4.4 享元模式295
6.5 行为型设计模式298
6.5.1 策略模式298
6.5.2 模板方法模式301
6.5.3 观察者模式304
6.6 本章小结307
第7章 事件总线308
7.1 解析EventBus308
7.1.1 使用EventBus308
7.1.2 源码解析EventBus314
7.2 解析otto324
7.2.1 使用otto324
7.2.2 源码解析otto327
第8章 函数响应式编程333
8.1 RxJava基本用法333
8.1.1 RxJava概述333
8.1.2 RxJava基本实现334
8.1.3 RxJava的不完整定义回调336
8.2 RxJava的Subject338
8.3 RxJava操作符入门339
8.3.1 创建操作符339
8.3.2 变换操作符340
8.3.3 过滤操作符344
8.3.4 组合操作符349
8.3.5 辅助操作符352
8.3.6 错误处理操作符355
8.3.7 条件操作符和布尔操作符357
8.3.8 转换操作符360
8.4 RxJava的线程控制362
8.5 RxJava的使用场景362
8.5.1 RxJava结合OkHttp访问网络362
8.5.2 RxJava结合Retrofit访问网络364
8.5.3 用RxJava实现RxBus368
8.6 RxJava源码解析370
8.6.1RxJava的订阅过程371
8.6.2 RxJava的变换过程372
8.6.3 RxJava的线程切换过程376
8.7 本章小结381
第9章 注解与依赖注入框架382
9.1 注解382
9.1.1 注解分类382
9.1.2 定义注解384
9.1.3 注解处理器385
9.2 依赖注入的原理392
9.2.1 控制反转与依赖注入392
9.2.2 依赖注入的实现方式393
9.3 依赖注入框架395
9.3.1 为何使用依赖注入框架395
9.3.2 解析ButterKnife395
9.3.3 解析Dagger2405
9.4 本章小结421
第10章 应用架构设计422
10.1MVC模式422
10.2 MVP模式423
10.2.1 应用MVP模式424
10.2.2 MVP结合RxJava和Dagger2431
10.3 MVVM模式438
10.3.1 解析Data Binding439
10.3.2 应用Data Binding457
10.4 本章小结459
第11章 系统架构与MediaPlayer框架460
11.1 Android系统架构460
11.2 Android系统源码目录463
11.2.1 整体结构463
11.2.2 应用层部分464
11.2.3 应用框架层部分465
11.2.4 CC程序库部分465
11.3 Source Insights使用466
11.4 MediaPlayer框架467
11.4.1 Java Framework层的MediaPlayer分析467
11.4.2 JNI层的MediaPlayer分析469
11.4.3 Native层的MediaPlayer分析471
11.5 本章小结478
后记479
|
內容試閱:
|
前言
为什么写这本书
从2008年Android系统发布以来,Android已经发展了9年。在此期间,Android开发也相当火热。这时,大量人员涌入Android开发职场,并导致Android开发人才市场相对饱和。如此一来,很多Android开发者会发现工作越来越难找,企业对开发者的要求也越来越高,企业需求最多的不再是初中级别的Android工程师,而是Android高级工程师。但是,Android高级工程师有限。有些人在从事了几年开发工作后,对很多技术的理解却仍停留在会用的阶段。他们对于原理不求甚解,这导致他们进入技术瓶颈期并长期无法得到提高。很多开发者为了突破技术瓶颈,看了大量的网络视频和博客。尽管如此,他们仍旧无法突破自身的技术瓶颈。其主要原因是,他们没有将学到的知识点形成体系化。因此,这就需要有一本成体系的进阶书来帮助这些开发人员成为Android高级工程师并突破自身的技术瓶颈。纵观市面上Android开发相关的书籍,其中大部分书籍是入门级别类图书,还有一部分系统源码、逆向分析和系统移植类图书,而关于应用开发进阶的书籍则少得可怜。本书正是一本成体系的应用开发进阶图书,书中所要传达的不仅仅是知识,其同时还会告诉读者以下几点。
1. 要关注Android新技术;
2. Java基础和设计模式很重要;
3. 学习框架要深入其原理;
4. 要学习架构设计;
5. 要了解和学习系统源码。
本书内容
本书共分为11章,各章内容如下。
? 第1章介绍Android 5.0、Android 6.0、Android 7.0的新特性,包括Android 5.0的RecyclerView、Android 6.0的运行时权限机制和Android 7.0的多窗口模式等知识点。
? 第2章介绍Material Design以及Design Support Library常用的控件,并给出实例将Design Support Library中的常用控件结合在一起使用。
? 第3章介绍View相关的进阶知识,包括View的滑动、View的事件分发和View的工作流程。最后结合以上知识点来介绍自定义View。
? 第4章介绍多线程编程,本章不仅包括基础的线程知识,还会介绍线程同步和线程池等进阶知识点,最后结合这些知识点来分析Android 7.0的AsyncTask的源码。
? 第5章介绍网络编程的基础知识以及常用的网络框架:Volley、OkHttp和Retrofit的使用方法和原理分析。
? 第6章将设计模式进行分类,并介绍每个分类中常用的设计模式。
? 第7章介绍事件总线EventBus和otto的使用方法和原理。
? 第8章介绍函数响应式编程RxJava的使用方法,包括RxJava的基本使用、操作符、使用场景和源码分析等知识点。
? 第9章介绍注解的知识点和依赖注入框架ButterKnife和Dagger2的使用方法以及原理。
? 第10章介绍Android应用架构设计,包括MVP框架以及MVP结合RxJava和Dagger2,还有MVVM框架相关的Data Binding支持库。
? 第11章主要是指引读者进行Android系统源码阅读并带其入门,介绍Android系统框架、源码目录和阅读源码工具,并以分析MediaPlayer框架的源码作为示例。
本书特色
本书主要有以下特点。
? 本书整体结构由浅入深,从最简单的第1章到难一些的第11章,其难度是逐步加深的。
? 本书为了分析一些框架的原理,会介绍一些知识点做铺垫,比如为了更好地介绍依赖注入框架,需要首先了解注解相关的知识点。再比如要分析AsyncTask的源码,则需要了解线程池和阻塞队列等知识点。
? 本书的知识点环环相扣,比如要介绍MVP框架的设计,就需要先学习Retrofit、RxJava和Dagger2的相关知识点。
? 本书对于很多知识点都有很深入的讲解。其中,对于常用的框架,比如OkHttp、Retrofit、EventBus和RxJava等不只是讲解了如何使用,而且更加深入地介绍了其原理。
? 本书是目前市场上详细介绍有关Android新特性、Material Design、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。
读者对象
本书的章节设计是由浅入深的,适合Android初、中、高级工程师阅读。本书的定位是学习Android的第二本书,其阅读前提是要有一定的Android基础。
致谢
感谢本书的策划编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,这才使得本书得以及时出版。感谢本书的责任编辑李云静,她审稿时很细致,这使得书中的一些错误能被提早发现并改正。感谢我的父母在写书过程中对我的不断鼓励,这样我才得以全力以赴地投入编写工作。感谢所有关注我的朋友们,你们的鼓励和认可为我写博客以及写书带来了不可或缺的动力。
勘误与互动
本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。
本书互动地址
独立博客:http:liuwangshu.cn
CSDN博客:http:blog.csdn.netitachi85
GitHub:https:github.comhenrymorgen
微信公众号:刘望舒
QQ交流群:499174415
源码下载
https:github.comhenrymorgenandroid-advanced-light
http:www.broadview.com.cn31530
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
? 下载资源:本书如提供示例代码及资源文件,均可在下载资源处下载。
? 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
? 交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http:www.broadview.com.cn31530
|
|