<p>Big Nerd Ranch 是美国一家专业的移动开发技术培训机构。本书主要以其Android 训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android 编程权威指南。全书共36 章,详细介绍了8 个Android 应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。</p> <p>第3 版较之前版本增加了对数据绑定等新工具的介绍,同时新增了针对单元测试、辅助功能和MVVM 架构等主题的章节。如果你熟悉Java 语言,或者了解面向对象编程,那就立刻开始Android 编程之旅吧!</p>
Android编程权威指南(第2版)
✍ Scribed by Bill Phillips; Chris Stewart; Brian Hardy; Kristin Marsicano
- Publisher
- 人民邮电出版社
- Year
- 2016
- Tongue
- Chinese
- Leaves
- 570
- Series
- The Big Nerd Ranch Guide 中译本
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共34章,详细介绍了8个Android 应用。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得最前沿的开发经验。
如果你熟悉Java语言,或者了解面向对象编程,那就立刻开始Android编程之旅吧!
✦ Table of Contents
封面
书名
版权
献词
致谢
目录
第1章 Android开发初体验
1.1 应用开发基础
1.2 创建Android项目
1.3 Android Studio使用导航
1.4 用户界面设计
1.4.1 视图层级结构
1.4.2 组件属性
1.4.3 创建字符串资源
1.4.4 预览界面布局
1.5 从布局XML到视图对象
资源与资源ID
1.6 组件的实际应用
1.6.1 引用组件
1.6.2 设置监听器
1.7 创建提示消息
使用代码自动补全
1.8 使用模拟器运行应用
1.9 深入学习:Android编译过程
Android编译工具
第2章 Android与MVC设计模式
2.1 创建新类
生成获取方法与设置方法
2.2 Android与MVC设计模式
使用MVC设计模式的好处
2.3 更新视图层
2.4 更新控制层
2.5 在设备上运行应用
2.5.1 连接设备
2.5.2 配置设备用于应用开发
2.6 添加图标资源
2.6.1 向项目中添加资源
2.6.2 在XML文件中引用资源
2.7 关于挑战练习
2.8 挑战练习:为TextView添加监听器
2.9 挑战练习:添加后退按钮
2.10 挑战练习:从按钮到图标按钮
第3章 Activity的生命周期
3.1 日志跟踪理解Activity生命周期
3.1.1 输出日志信息
3.1.2 使用LogCat
3.2 设备旋转与Activity生命周期
设备配置与备选资源
3.3 设备旋转前保存数据
覆盖onSaveInstanceState(Bundle)方法
3.4 再探Activity生命周期
3.5 深入学习:测试onSaveInstanceState(Bundle)方法
3.6 深入学习:日志记录的级别与方法
第4章 Android应用的调试
4.1 异常与栈跟踪
4.1.1 诊断应用异常
4.1.2 记录栈跟踪日志
4.1.3 设置断点
4.1.4 使用异常断点
4.2 Android特有的调试工具
4.2.1 使用Android Lint
4.2.2 R类的问题
第5章 第二个activity
5.1 创建第二个activity
5.1.1 创建新的activity
5.1.2 创建新的activity子类
5.1.3 在manifest配置文件中声明activity
5.1.4 为QuizActivity添加Cheat按钮
5.2 启动activity
基于intent的通信
5.3 activity间的数据传递
5.3.1 使用intent extra
5.3.2 从子activity获取返回结果
5.4 activity的使用与管理
5.5 挑战练习
第6章 Android SDK版本与兼容
6.1 Android SDK版本
6.2 Android编程与兼容性问题
6.2.1 比较合理的版本
6.2.2 SDK最低版本
6.2.3 SDK目标版本
6.2.4 SDK编译版本
6.2.5 安全添加新版本API中的代码
6.3 使用Android开发者文档
6.4 挑战练习:报告编译版本
第7章 UI fragment与fragment管理器
7.1 UI设计的灵活性需求
7.2 fragment的引入
7.3 着手开发CriminalIntent
7.3.1 创建新项目
7.3.2 fragment与支持库
7.3.3 在Android Studio中增加依赖关系
7.3.4 创建Crime类
7.4 托管UI fragment
7.4.1 fragment的生命周期
7.4.2 托管的两种方式
7.4.3 定义容器视图
7.5 创建UI fragment
7.5.1 定义CrimeFragment的布局
7.5.2 创建CrimeFragment类
7.6 添加UI fragment到FragmentManager
7.6.1 fragment事务
7.6.2 FragmentManager与fragment生命周期
7.7 采用fragment的应用架构
使用fragment的理由
7.8 深入学习:为什么应优先使用支持库版fragment
7.9 深入学习:使用操作系统内置版fragment
第8章 使用布局与组件创建用户界面
8.1 升级Crime类
8.2 更新布局
8.3 生成并使用组件
8.4 深入探讨XML布局属性
8.4.1 样式、主题及主题属性
8.4.2 dp、sp以及屏幕像素密度
8.4.3 Android开发设计原则
8.4.4 布局参数
8.4.5 边距与内边距
8.5 使用图形布局工具
8.5.1 创建水平模式布局
8.5.2 添加新组件
8.5.3 在属性视图中编辑组件属性
8.5.4 在框架视图中重新组织组件
8.5.5 更新子组件的布局参数
8.5.6 android:layout_weight属性的工作原理
8.5.7 图形布局工具使用总结
8.5.8 组件ID与多种布局
8.6 挑战练习:日期格式化
第9章 使用RecyclerView显示列表
9.1 升级CriminalIntent应用的模型层
单例与数据集中存储
9.2 使用抽象activity托管fragment
9.2.1 通用的fragment托管布局
9.2.2 抽象activity类
9.3 RecyclerView、Adapter和ViewHolder
9.3.1 ViewHolder和Adapter
9.3.2 使用RecyclerView
9.3.3 实现Adapter和ViewHolder
9.4 定制列表项
9.4.1 创建列表项布局
9.4.2 使用定制列表项视图
9.5 响应点击
9.6 深入学习:ListView和GridView
9.7 深入学习:单例
第10章 使用fragment argument
10.1 从fragment中启动activity
10.1.1 附加extra信息
10.1.2 获取extra信息
10.1.3 使用Crime数据更新CrimeFragment视图
10.1.4 直接获取extra信息的缺点
10.2 fragment argument
10.2.1 附加argument给fragment
10.2.2 获取argument
10.3 刷新显示列表项
10.4 通过fragment获取返回结果
10.5 挑战练习:实现高效的RecyclerView刷新
10.6 深入学习:为何要用fragment argument
第11章 使用ViewPager
11.1 创建CrimePagerActivity
11.1.1 ViewPager与PagerAdapter
11.1.2 整合并配置使用CrimePagerActivity
11.2 FragmentStatePagerAdapter与FragmentPagerAdapter
11.3 深入学习:ViewPager的工作原理
11.4 深入学习:以代码的方式创建布局
第12章 对话框
12.1 使用AppCompat兼容库
12.2 创建DialogFragment
12.2.1 显示DialogFragment
12.2.2 设置对话框的显示内容
12.3 fragment间的数据传递
12.3.1 传递数据给DatePickerFragment
12.3.2 返回数据给CrimeFragment
12.4 挑战练习:更多对话框
12.5 挑战练习:按设备类型展现DialogFragment
第13章 工具栏
13.1 AppCompat
使用AppCompat库
13.2 工具栏菜单
13.2.1 在XML文件中定义菜单
13.2.2 创建菜单
13.2.3 响应菜单项选择
13.3 实现层级式导航
层级导航的工作原理
13.4 可选菜单项
13.4.1 切换菜单项标题
13.4.2 “还有个问题”
13.5 深入学习:工具栏与操作栏
13.6 挑战练习:删除crime记录
13.7 挑战练习:优化字符串资源显示
13.8 挑战练习:用于RecyclerView的空视图
第14章 SQLite数据库
14.1 定义Schema
14.2 创建初始数据库
处理数据库相关问题
14.3 修改CrimeLab类
14.4 写入数据库
14.4.1 使用ContentValues
14.4.2 插入和更新记录
14.5 读取数据库
14.5.1 使用CursorWrapper
14.5.2 创建模型层对象
14.6 深入学习:数据库高级主题介绍
14.7 深入学习:应用上下文
14.8 挑战练习:删除Crime记录
第15章 隐式intent
15.1 添加按钮组件
15.2 添加嫌疑人信息至模型层
15.3 使用格式化字符串
15.4 使用隐式intent
15.4.1 隐式intent的组成
15.4.2 发送消息
15.4.3 获取联系人信息
15.4.4 检查可响应任务的activity
15.5 挑战练习:ShareCompat
15.6 挑战练习:又一个隐式intent
第16章 使用intent拍照
16.1 布置照片
引入布局文件
16.2 外部存储
指定照片存放位置
16.3 使用相机intent
16.3.1 外部存储使用权限
16.3.2 触发拍照
16.4 缩放和显示位图
16.5 功能声明
16.6 深入学习:使用include标签
16.7 挑战练习:优化照片显示
16.8 挑战练习:优化缩略图加载
第17章 Master-Detail用户界面
17.1 增加布局灵活性
17.1.1 修改SingleFragmentActivity
17.1.2 创建包含两个fragment容器的布局
17.1.3 使用别名资源
17.1.4 创建平板设备专用可选资源
17.2 Activity:fragment的托管者
fragment回调接口
17.3 深入学习:设备屏幕尺寸的确定
第18章 Assets
18.1 为何使用assets
18.2 创建BeatBox应用
18.3 导入assets
18.4 处理assets
18.5 使用Assets
18.6 访问Assets
18.7 深入学习:什么是non-assets
第19章 使用SoundPool播放音频
19.1 创建SoundPool
19.2 加载音频文件
19.3 播放音频
19.4 释放音频
19.5 设备旋转和对象保存
19.5.1 保留fragment
19.5.2 旋转和已保留fragment
19.6 深入学习:是否要保留
19.7 深入学习:设备旋转处理再探
第20章 样式与主题
20.1 颜色资源
20.2 样式
样式继承
20.3 主题
修改默认主题
20.4 添加主题颜色
20.5 覆盖主题属性
主题探秘
20.6 修改按钮属性
20.7 深入学习:样式继承拾遗
20.8 深入学习:引用主题属性
20.9 挑战练习:创建多版本主题
第21章 XML drawable
21.1 统一按钮样式
21.2 shape drawable
21.3 state list drawable
21.4 layer list drawable
21.5 深入学习:为什么要用XML drawable
21.6 深入学习:使用9-patch图像
21.7 深入学习:使用Mipmap图像
第22章 深入学习intent和任务
22.1 创建NerdLauncher项目
22.2 解析隐式intent
22.3 在运行时创建显式intent
22.4 任务与后退栈
22.4.1 在任务间切换
22.4.2 启动新任务
22.5 使用NerdLauncher应用作为设备主屏幕
22.6 挑战练习:应用图标
22.7 深入学习:进程与任务
22.8 深入学习:并发文档
第23章 HTTP与后台任务
23.1 创建PhotoGallery应用
23.2 网络连接基本
获取网络使用权限
23.3 使用AsyncTask在后台线程上运行代码
23.4 线程与主线程
超越主线程
23.5 从Flickr获取JSON数据
解析JSON数据
23.6 从AsyncTask回到主线程
23.7 清理AsyncTask
23.8 深入学习:AsyncTask再探
23.9 深入学习:AsyncTask的替代方案
23.10 挑战练习:Gson
23.11 挑战练习:分页
23.12 挑战练习:动态调整网格列
第24章 Looper、Handler和HandlerThread
24.1 配置RecyclerView以显示图片
24.2 批量下载缩略图
24.3 与主线程通信
24.4 创建并启动后台线程
24.5 Message与message handler
24.5.1 消息的剖析
24.5.2 Handler的剖析
24.5.3 使用handler
24.5.4 传递handler
24.6 深入学习:AsyncTask与线程
24.7 挑战练习:预加载以及缓存
24.8 深入学习:解决图片下载问题
第25章 搜索
25.1 搜索Flickr网站
25.2 使用SearchView
响应用户搜索
25.3 使用shared preferences实现轻量级数据存储
25.4 优化应用
25.5 挑战练习:深度优化PhotoGallery应用
第26章 后台服务
26.1 创建IntentService
26.2 服务的作用
安全的后台网络连接
26.3 查找最新返回结果
26.4 使用AlarmManager延迟运行服务
26.4.1 合理控制服务启动的频度
26.4.2 PendingIntent
26.4.3 使用PendingIntent管理定时器
26.5 控制定时器
26.6 通知信息
26.7 挑战练习:可穿戴设备上的通知
26.8 深入学习:服务细节内容
26.8.1 服务的能与不能
26.8.2 服务的生命周期
26.8.3 non-sticky服务
26.8.4 sticky服务
26.8.5 绑定服务
26.9 深入学习:JobScheduler和JobService
26.10 深入学习:Sync Adapter
26.11 挑战练习:在Lollipop设备上使用JobService
第27章 broadcast intent
27.1 一般intent和broadcast intent
27.2 接收系统broadcast:重启后唤醒
27.2.1 standalone receiver
27.2.2 使用receiver
27.3 过滤前台通知消息
27.3.1 发送broadcast intent
27.3.2 动态broadcast receiver
27.3.3 使用私有权限
27.3.4 使用有序broadcast
27.4 receiver与长时运行任务
27.5 深入学习:本地事件
27.5.1 使用EventBus
27.5.2 使用Rxjava
27.6 深入学习:检测fragment的状态
第28章 网页浏览
28.1 最后一段Flickr数据
28.2 简单方式:隐式intent
28.3 较难方式:使用WebView
使用WebChromeClient优化WebView显示
28.4 处理WebView的设备旋转问题
自己处理配置更改的风险
28.5 深入学习:注入JavaScript对象
28.6 深入学习:KitKat的WebView
28.7 挑战练习:使用后退键浏览历史网页
28.8 挑战练习:非HTTP链接支持
第29章 定制视图与触摸事件
29.1 创建DragAndDraw项目
29.1.1 创建DragAndDrawActivity
29.1.2 创建DragAndDrawFragment
29.2 创建定制视图
创建BoxDrawingView视图
29.3 处理触摸事件
跟踪运动事件
29.4 onDraw(...)方法内的图形绘制
29.5 挑战练习:设备旋转问题
29.6 挑战练习:旋转矩形框
第30章 属性动画
30.1 建立场景
30.2 简单属性动画
30.2.1 视图属性转换
30.2.2 使用不同的interpolator
30.2.3 色彩渐变
30.3 播放多个动画
30.4 深入学习:其他动画API
30.4.1 传统动画工具
30.4.2 转场
30.5 挑战练习
第31章 地理位置和Play服务
31.1 地理位置和定位类库
Google Play服务
31.2 创建Locatr项目
31.3 Play服务和模拟器
模拟定位数据
31.4 创建Locatr应用
31.5 配置Google Play服务
地理位置定位权限
31.6 使用Google Play服务
31.7 基于地理位置的Flickr搜索
31.8 获取定位数据
31.9 寻找并显示图片
31.10 挑战练习:进度指示器
第32章 使用地图
32.1 导入Play地图服务库
32.2 Android上的地图服务
32.3 地图API设置
获取Maps API key
32.4 创建地图
32.5 获取更多地理位置数据
32.6 使用地图
在地图上绘制
32.7 深入学习:团队开发和API key
第33章 material design
33.1 material surface
33.1.1 elevation和Z值
33.1.2 state list animator
33.2 动画工具
33.2.1 circular reveal
33.2.2 shared element transition
33.3 新的视图组件
33.3.1 card
33.3.2 floating action button
33.3.3 snackbar
33.4 深入学习material design
第34章 编后语
34.1 终极挑战
34.2 关于我们
34.3 致谢
版权声明
📜 SIMILAR VOLUMES
<p>MongoDB如何帮你管理通过Web应用收集的海量数据呢?通过这本经典著作全新升级版的权威解读,你会了解面向文档数据库的诸多优点,会发现MongoDB如此稳定、性能优越甚至能够无限水平扩展背后的原因。</p> <p>本书是一本广受好评的MongoDB权威著作。新版本对上一版进行了全面扩充,可作为数据库开发人员的工作指南,也可作为系统管理人员的进阶指导,还可供项目中其他成员了解MongoDB使用。书中介绍了面向文档的存储方式及利用MongoDB的无模式数据模型处理文档、集合和多个数据库,讲述了如何执行基本的写操作以及各种复杂的条件查询,还介绍了索引、聚合工具以及其他高级查询技术,另外对监
<p>《IDA Pro权威指南(第2版)》共分为六部分,首先介绍了反汇编与逆向工程的基本信息和IDAPro的背景知识,接着讨论了IDAPro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户对IDAPro有全面深入的了解,另一方面让读者掌握IDAPro在现实中的应用。相比上一版,这一版以IDA6.0为基础,介绍了它的新的、基于Qt的图形用户界面,以及IDAPython插件。</p>
<p>本书由以太网标准制定参与者、以太网配置方面的顶级专家执笔,是一本介绍以太网构建与维护的全面指南。内容从以太网基础知识介绍开始,之后重点介绍以太网介质系统的构建,详细讲解如何使用转换器和集线器搭建以太网,并探讨以太网的性能和故障诊断等内容。</p>
<p>《Oracle 11g权威指南(第2版)》从数据库的基础知识入手,全面系统地介绍了Oracle 11g 数据库管理系统的所有特性,并配以翔实的实际用例,论述严谨,深入探讨了这些特性的细节内容,同时具有很强的可操作性和实用性。</p> <p>全书内容共37章,分为10大部分。第一部分为Oracle 11g 数据库基础;第二部分为Oracle之SQL与PL/SQL;第三部分为Oracle客户端工具,主要介绍SQL*Plus和SQL Developer;第四部分为Oracle 11g数据库管理,主要介绍管理控制文件/重做日志文件/表空间/数据文件、模式对象管理、表分区和索引分区、用户管理与安
书签已装载, 书签制作方法请找 [email protected] 完全免费 本书是程序员学习核心JavaScript语言和由Web浏览器定义的JavaScript API的指南和综合参考手册。 第6版涵盖HTML 5和ECMAScript 5。很多章节完全重写,以便与时俱进,紧跟当今的最佳Web开发实践。本书新增章节描述了jQuery和服务器端JavaScript。 本书适合那些希望学习Web编程语言的初、中级程序员和希望精通JavaScript的JavaScript程序员阅读。