展开全部

主编推荐语

第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月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。