第1章 Android概述 1
1.1 Android介绍 1
1.1.1 Android简介 1
1.1.2 Android的系统架构 2
1.2 Android版本发展历程 3
1.3 开发环境快速搭建 7
1.3.1 安装JDK 7
1.3.2 安装ADT-Bundle for Windows 9
1.3.3 创建一个Hello World项目 10
1.4 Android开源项目 12
小结 17
习题 17
第2章 Java语言基础 18
2.1 Java概述及环境配置 18
2.2 Java编译与运行 20
2.3 Java基本语法 21
2.3.1 基本元素和数据类型 21
2.3.2 运算符和表达式 23
2.3.3 类型转换和函数 25
2.3.4 特殊关键字和抽象类 26
2.3.5 接口和包 28
2.3.6 异常与处理 30
2.4 Java中的数组 31
2.4.1 一维数组 31
2.4.2 二维数组 32
2.5 Java中的几种控制结构语句 32
2.6 JDK5之后Java的新特性 34
2.6.1 泛型 34
2.6.2 for-each循环 36
2.6.3 自动装箱/拆箱 38
2.6.4 枚举 38
2.6.5 可变参数 39
2.6.6 静态导入 40
2.6.7 协变返回 41
2.6.8 类型强制转换 41
2.7 Java中的多线程 42
2.7.1 进程和线程 42
2.7.2 线程的同步 44
2.7.3 线程的阻塞 46
2.8 Java输入/输出流 49
2.8.1 标准输入/输出流 49
2.8.2 字节输出流 51
2.8.3 字节输入流 51
2.8.4 文件输入流 52
2.8.5 文件输出流 53
小结 54
习题 55
第3章 Android开发基础 56
3.1 Android的资源 56
3.1.1 创建资源 56
3.1.2 使用资源 56
3.2 Android应用程序的四大组件 59
3.2.1 Activity 59
3.2.2 Broadcast Receiver 76
3.2.3 Service 79
3.2.4 Content provider 82
3.3 Android的Intent类 83
3.3.1 Intent类简介 83
3.3.2 Intent对象对Activity类的应用 83
3.3.3 Intent对象对Service类的应用 83
3.3.4 Intent对象对Broadcast Receiver类的应用 84
3.3.5 Intent的使用 84
3.4 Material Design(应用程序设计规范) 85
3.4.1 Material Design设计规范简介 85
3.4.2 Material Design设计规范详解 86
3.5 Android开发基础实例——多Activity交互程序 113
3.5.1 建立Android项目 113
3.5.2 多Activity交互程序构架 113
3.5.3 多Activity交互实现 113
小结 115
习题 115
第4章 Android界面编程 117
4.1 AndroidManifest.xml文件 117
4.2 Android项目的布局 117
4.2.1 Android的五大布局 117
4.2.2 FrameLayout(框架布局) 118
4.2.3 LinearLayout(线性布局) 119
4.2.4 RelativeLayout(相对布局) 119
4.2.5 TableLayout(表格布局) 121
4.2.6 AbsoluteLayout(绝对布局) 122
4.2.7 布局高级技术 122
4.3 Android的View类 127
4.3.1 ImageView(图片视图) 127
4.3.2 TextView(文本视图) 128
4.3.3 EditText(编辑视图) 128
4.3.4 Button(按钮) 129
4.3.5 ImageButton(图片按钮) 131
4.3.6 ListView(列表视图) 131
4.3.7 GridView(格式视图) 131
4.3.8 ProgressBar(进度栏) 132
4.3.9 Spinner(下拉列表) 132
4.4 Menu(菜单) 133
4.4.1 创建选项菜单 133
4.4.2 动态设置菜单 136
4.4.3 上下文菜单 136
4.5 WebView(网页视图) 138
4.6 AngularJS(前端JS开发框架) 139
4.6.1 AngularJS语言简介 139
4.6.2 AngularJS语言入门 140
4.6.3 AngularJS语言进阶 144
4.7 Android界面编程实例——个人空间 150
4.7.1 程序界面构成 150
4.7.2 登录和注册界面 150
4.7.3 主界面开发 155
4.7.4 实例小结 157
小结 158
习题 158
第5章 Android数据存储与交互 160
5.1 SQLite数据库 160
5.1.1 创建数据库 160
5.1.2 创建表和索引 161
5.1.3 添加数据 162
5.1.4 查询数据库 162
5.2 Preferences数据存储 163
5.3 文件存储 164
5.4 Content provider数据共享 165
5.4.1 Content provider基础 165
5.4.2 Content provider数据模型 165
5.4.3 创建Content provider 166
5.4.4 声明Content provider 167
5.4.5 查询Content provider 167
5.5 Android数据存储与交互实例——通讯录 169
5.5.1 数据存储与交互简介 169
5.5.2 布局文件简介 171
5.5.3 数据库文件 173
5.5.4 添加联系人 174
5.5.5 查找联系人 175
5.5.6 联系人的信息类 176
5.5.7 删除联系人 178
5.5.8 实例小结 179
小结 179
习题 180
第6章 Android网络通信 181
6.1 HTTP通信 181
6.1.1 请求网络通信权限 181
6.1.2 检查网络连接 181
6.1.3 通信流程 182
6.2 Socket(套接字)通信 183
6.3 蓝牙通信 184
6.3.1 Android中提供的蓝牙API 185
6.3.2 基本蓝牙功能 185
6.3.3 蓝牙例程BluetoothChat分析 185
6.4 红外通信 187
小结 188
习题 188
第7章 Android多媒体开发 189
7.1 Android中的多媒体简介 189
7.2 MediaPlayer(音频/视频管理) 189
7.2.1 MediaPlayer播放文件 189
7.2.2 MediaPlayer录制文件 190
7.2.3 管理MediaPlayer输出 190
7.3 Camera(摄像头) 191
7.3.1 Taking Photos(拍照操作) 191
7.3.2 Recording Videos(录像操作) 195
7.3.3 Controlling the Camera(控制相机硬件) 196
7.4 语音识别 199
7.5 多媒体实例——语音备忘录 200
7.5.1 语音备忘录简介 200
7.5.2 语音输入控制 201
7.5.3 语音与文字的转换 202
7.5.4 语音备忘录的功能实现 203
7.5.5 实例小结 204
小结 204
习题 204
第8章 Android开源项目开发 205
8.1 ActionBarSherlock(操作栏开源项目) 205
8.1.1 ActionBarSherlock库简介 205
8.1.2 ActionBarSherlock库文件配置 206
8.1.3 ActionBarSherlock库的核心功能 208
8.2 Facebook-Android-SDK脸书开源项目 213
8.2.1 Facebook-SDK项目介绍 213
8.2.2 Facebook-SDK的配置 214
8.2.3 使用Facebook来实现登录注销 217
8.2.4 将应用程序上的内容分享到Facebook上 220
8.2.5 用图谱获取Facebook用户的信息 227
8.2.6 给朋友发送请求 231
8.3 SlidingMenu(滑动菜单开源项目) 234
8.3.1 SlidingMenu库简介 234
8.3.2 SlidingMenu库文件配置 234
8.3.3 SlidingMenu库的核心功能 236
8.4 Google Map(谷歌地图)开发技术 241
8.4.1 Google Map API简介 241
8.4.2 使用Google Map API开发地图应用程序 241
8.5 Google CardBoard谷歌虚拟现实技术 270
8.5.1 Google CardBoard简介 271
8.5.2 手机软件安装 271
8.5.3 开发纸板项目——寻宝 271
小结 276
习题 277
第9章 综合实例1——OpenSudoku数独游戏项目 278
9.1 游戏简介 278
9.1.1 游戏源码下载 278
9.1.2 游戏规则介绍 279
9.2 图形界面编写 280
9.2.1 自定义View类——SudokuBoardView 280
9.2.2 填写数字的布局 284
9.2.3 列表界面 287
9.3 数据库结构 289
9.3.1 插入数据到数据库中 289
9.3.2 数据库操作函数 290
9.4 编写游戏逻辑 292
9.4.1 在九宫格布局中放置数字 292
9.4.2 玩家填入数字 293
9.4.3 定时器 295
9.4.4 对话框 296
9.4.5 导出谜团 297
小结 300
第10章 综合实例2——Faceless社交应用项目 301
10.1 Faceless项目简介 301
10.2 Faceless图形界面 302
10.3 Faceless程序逻辑与通信 305
10.3.1 主界面功能 305
10.3.2 添加消息功能 308
10.3.3 程序设置功能 317
小结 320
附录 习题参考答案 321
参考文献 331