类似推荐
编辑推荐
第3版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM 架构等主题的章节。如果你熟悉Java 语言,或者了解面向对象编程,那就立刻开始Android 编程之旅吧!
内容简介
Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共36章,详细介绍了8个Android应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。第3版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM架构等主题的章节。
作者简介
作者比尔·菲利普斯,Big Nerd Ranch资深讲师。他与人合作开发了广受好评的Android训练营培训课程,并为之编写教材(包括本书的第1版和第2版)。他一直坚持撰写博客、阅读各类文学作品、作曲奏乐以及著书。
章节目录
版权信息
版权声明
献词
致谢
如何学习Android开发
开发必备工具
第1章 Android开发初体验
1.1 Android开发基础
1.2 创建Android项目
1.3 Android Studio使用导航
1.4 用户界面设计
1.5 从布局XML到视图对象
1.6 组件的实际应用
1.7 创建提示消息
1.8 使用模拟器运行应用
1.9 深入学习:Android编译过程
1.10 关于挑战练习
1.11 挑战练习:定制toast消息
第2章 Android与MVC设计模式
2.1 创建新类
2.2 Android与MVC设计模式
2.3 更新视图层
2.4 更新控制器层
2.5 在物理设备上运行应用
2.6 添加图标资源
2.7 挑战练习:为TextView添加监听器
2.8 挑战练习:添加后退按钮
2.9 挑战练习:从按钮到图标按钮
第3章 activity的生命周期
3.1 日志跟踪理解activity生命周期
3.2 设备旋转与activity生命周期
3.3 保存数据以应对设备旋转
3.4 再探activity生命周期
3.5 深入学习:activity内存清理现状
3.6 深入学习:日志记录的级别与方法
3.7 挑战练习:禁止一题多答
3.8 挑战练习:评分
第4章 Android应用的调试
4.1 异常与栈跟踪
4.2 Android特有的调试工具
4.3 挑战练习:探索布局检查器
4.4 挑战练习:探索内存分配跟踪
第5章 第二个activity
5.1 创建第二个activity
5.2 启动activity
5.3 activity间的数据传递
5.4 activity的使用与管理
5.5 挑战练习:堵住漏洞
第6章 Android SDK版本与兼容
6.1 Android SDK版本
6.2 Android编程与兼容性问题
6.3 使用Android开发者文档
6.4 挑战练习:报告编译版本
6.5 挑战练习:限制作弊次数
第7章 UI fragment与fragment管理器
7.1 UI设计的灵活性需求
7.2 引入fragment
7.3 着手开发CriminalIntent
7.4 托管UI fragment
7.5 创建UI fragment
7.6 向FragmentManager添加UI fragment
7.7 采用fragment的应用架构
7.8 深入学习:fragment与支持库
7.9 深入学习:为什么优先使用支持库版fragment
第8章 使用RecyclerView显示列表
8.1 升级CriminalIntent应用的模型层
8.2 使用抽象activity托管fragment
8.3 RecyclerView、ViewHolder和Adapter
8.4 绑定列表项
8.5 响应点击
8.6 深入学习:ListView和GridView
8.7 深入学习:单例
8.8 挑战练习:RecyclerView ViewType
第9章 使用布局与组件创建用户界面
9.1 使用图形布局工具
9.2 引入ConstraintLayout
9.3 深入学习布局属性
9.4 图形布局工具使用小结
9.5 挑战练习:日期格式化
第10章 使用fragment argument
10.1 从fragment中启动activity
10.2 fragment argument
10.3 刷新显示列表项
10.4 通过fragment获取返回结果
10.5 深入学习:为何要用fragment argument
10.6 挑战练习:实现高效的RecyclerView刷新
10.7 挑战练习:优化CrimeLab的表现
第11章 使用ViewPager
11.1 创建CrimePagerActivity
11.2 FragmentStatePagerAdapter与FragmentPagerAdapter
11.3 深入学习:ViewPager的工作原理
11.4 深入学习:以代码的方式创建视图
11.5 挑战练习:恢复CrimeFragment的边距
11.6 挑战练习:添加Jump to First按钮和Jump to Last按钮
第12章 对话框
12.1 创建DialogFragment
12.2 fragment间的数据传递
12.3 挑战练习:更多对话框
12.4 挑战练习:实现响应式DialogFragment
第13章 工具栏
13.1 AppCompat
13.2 工具栏菜单
13.3 实现层级式导航
13.4 可选菜单项
13.5 深入学习:工具栏与操作栏
13.6 挑战练习:删除crime记录
13.7 挑战练习:复数字符串资源
13.8 挑战练习:用于RecyclerView的空视图
第14章 SQLite数据库
14.1 定义schema
14.2 创建初始数据库
14.3 修改CrimeLab类
14.4 写入数据库
14.5 读取数据库
14.6 深入学习:数据库高级主题介绍
14.7 深入学习:应用上下文
14.8 挑战练习:删除crime记录
第15章 隐式intent
15.1 添加按钮组件
15.2 添加嫌疑人信息至模型层
15.3 使用格式化字符串
15.4 使用隐式intent
15.5 挑战练习:ShareCompat
15.6 挑战练习:又一个隐式intent
第16章 使用intent拍照
16.1 布置照片
16.2 文件存储
16.3 使用相机intent
16.4 缩放和显示位图
16.5 功能声明
16.6 挑战练习:优化照片显示
16.7 挑战练习:优化缩略图加载
第17章 双版面主从用户界面
17.1 增加布局灵活性
17.2 activity:fragment的托管者
17.3 深入学习:设备屏幕尺寸的确定
17.4 挑战练习:添加滑动删除功能
第18章 应用本地化
18.1 资源本地化
18.2 配置修饰符
18.3 测试备选资源
18.4 挑战练习:日期本地化
第19章 Android辅助功能
19.1 TalkBack
19.2 实现非文字型元素可读
19.3 提升辅助体验
19.4 深入学习:使用辅助功能扫描器
19.5 挑战练习:优化列表项
19.6 挑战练习:补全上下文信息
19.7 挑战练习:事件主动通知
第20章 数据绑定与MVVM
20.1 为何要用MVVM架构
20.2 创建BeatBox应用
20.3 导入assets
20.4 处理assets
20.5 使用assets
20.6 绑定数据
20.7 访问assets
20.8 深入学习:数据绑定再探
20.9 深入学习:为何使用assets
20.10 深入学习:什么是non-assets
第21章 音频播放与单元测试
21.1 创建SoundPool
21.2 加载音频文件
21.3 播放音频
21.4 添加测试依赖
21.5 创建测试类
21.6 实现测试类
21.7 编写测试方法
21.8 数据绑定回调
21.9 释放音频
21.10 设备旋转和对象保存
21.11 深入学习:是否保留fragment
21.12 深入学习:Espresso与整合测试
21.13 深入学习:虚拟对象与测试
21.14 挑战练习:播放进度控制
第22章 样式与主题
22.1 颜色资源
22.2 样式
22.3 主题
22.4 添加主题颜色
22.5 覆盖主题属性
22.6 修改按钮属性
22.7 深入学习:样式继承拾遗
22.8 深入学习:引用主题属性
第23章 XML drawable
23.1 统一按钮样式
23.2 shape drawable
23.3 state list drawable
23.4 layer list drawable
23.5 深入学习:为什么要用XML drawable
23.6 深入学习:使用mipmap图像
23.7 深入学习:使用9-patch图像
23.8 挑战练习:按钮主题
第24章 深入学习intent和任务
24.1 创建NerdLauncher项目
24.2 解析隐式intent
24.3 在运行时创建显式intent
24.4 任务与回退栈
24.5 使用NerdLauncher应用作为设备主屏幕
24.6 挑战练习:应用图标
24.7 深入学习:进程与任务
24.8 深入学习:并发文档
第25章 HTTP与后台任务
25.1 创建PhotoGallery应用
25.2 网络连接基本
25.3 使用AsyncTask在后台线程上运行代码
25.4 线程与主线程
25.5 从Flickr获取JSON数据
25.6 从AsyncTask回到主线程
25.7 清理AsyncTask
25.8 深入学习:AsyncTask再探
25.9 深入学习:AsyncTask的替代方案
25.10 挑战练习:Gson
25.11 挑战练习:分页
25.12 挑战练习:动态调整网格列
第26章 Looper、Handler和HandlerThread
26.1 配置RecyclerView以显示图片
26.2 批量下载缩略图
26.3 与主线程通信
26.4 创建并启动后台线程
26.5 Message与message handler
26.6 深入学习:AsyncTask与线程
26.7 深入学习:解决图片下载问题
26.8 深入学习:StrictMode
26.9 挑战练习:预加载以及缓存
第27章 搜索
27.1 搜索Flickr网站
27.2 使用SearchView
27.3 使用shared preferences实现轻量级数据存储
27.4 优化应用
27.5 挑战练习:深度优化PhotoGallery应用
第28章 后台服务
28.1 创建IntentService
28.2 服务的作用
28.3 查找最新返回结果
28.4 使用AlarmManager延迟运行服务
28.5 控制定时器
28.6 通知信息
28.7 挑战练习:可穿戴设备上的通知
28.8 深入学习:服务之细节
28.9 深入学习:JobScheduler和JobService
28.10 挑战练习:在Lollipop设备上使用JobService
28.11 深入学习:sync adapter
第29章 broadcast intent
29.1 普通intent和broadcast intent
29.2 接收系统broadcast:重启后唤醒
29.3 过滤前台通知消息
29.4 receiver与长时运行任务
29.5 深入学习:本地事件
29.6 深入学习:探测fragment的状态
第30章 网页浏览
30.1 最后一段Flickr数据
30.2 简单方式:隐式intent
30.3 较难方式:使用WebView
30.4 处理WebView的设备旋转问题
30.5 深入学习:注入JavaScript对象
30.6 深入学习:WebView升级
30.7 挑战练习:使用后退键浏览历史网页
30.8 挑战练习:非HTTP链接支持
第31章 定制视图与触摸事件
31.1 创建DragAndDraw项目
31.2 创建定制视图
31.3 处理触摸事件
31.4 onDraw(...)方法内的图形绘制
31.5 挑战练习:设备旋转问题
31.6 挑战练习:旋转矩形框
第32章 属性动画
32.1 建立场景
32.2 简单属性动画
32.3 播放多个动画
32.4 深入学习:其他动画API
32.5 挑战练习
第33章 地理位置和Play服务
33.1 地理位置和定位类库
33.2 创建Locatr项目
33.3 Play服务定位和模拟器
33.4 创建Locatr应用
33.5 配置Google Play服务
33.6 使用Google Play服务
33.7 基于地理位置的Flickr搜索
33.8 获取定位数据
33.9 获取运行时权限
33.10 寻找并显示图片
33.11 挑战练习:权限使用理由
33.12 挑战练习:进度指示器
第34章 使用地图
34.1 导入Play地图服务库
34.2 Android上的地图服务
34.3 获取Maps API key
34.4 创建地图
34.5 获取更多地理位置数据
34.6 使用地图
34.7 深入学习:团队开发和API key
第35章 material design
35.1 material surface
35.2 动画工具
35.3 新的视图组件
35.4 深入学习material design
第36章 编后语
36.1 终极挑战
36.2 关于我们
36.3 致谢
看完了
Android编程权威指南(第3版)是2017年由人民邮电出版社出版,作者比尔·菲利普斯(BillPhillips)。
得书感谢您对《Android编程权威指南(第3版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。