科技
类型
8.4
豆瓣评分
可以朗读
语音朗读
545千字
字数
2017-06-01
发行日期
展开全部
主编推荐语
第3版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM 架构等主题的章节。如果你熟悉Java 语言,或者了解面向对象编程,那就立刻开始Android 编程之旅吧!
内容简介
Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共36章,详细介绍了8个Android应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。第3版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM架构等主题的章节。
目录
- 版权信息
- 版权声明
- 献词
- 致谢
- 如何学习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 致谢
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。