《移动操作系统原理与实践 基于Java语言的Android应用开发》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:关东升编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302505198
  • 页数:427 页
图书介绍:本书采用了案例驱动模式系统论述Android原理、架构与开发技术。第1章、第2章和第3章主要是一些概念的介绍。第4章到第7章主要介绍Android的UI的相关知识,因为UI和控件的知识点比较零散,所以采用了一些小例子来逐个说明各个UI的知识点。从第8章到第17章都安排了一些经典案例,每章先分析案例以及案例中涉及到的知识点,然后再展开介绍。

基础篇 2

第1章 移动操作系统概论 2

1.1 操作系统的原理与概念 2

1.1.1 隐藏硬件细节 2

1.1.2 资源管理 3

1.1.3 操作系统的历史 3

1.2 操作系统的分类 4

1.2.1 批处理操作系统 5

1.2.2 分时操作系统 5

1.2.3 实时操作系统 6

1.2.4 个人计算机操作系统 6

1.2.5 网络操作系统 6

1.2.6 分布式操作系统 6

1.2.7 嵌入式操作系统 7

1.3 移动操作系统 7

1.3.1 移动设备的特征 7

1.3.2 主要的移动操作系统 8

1.3.3 移动操作系统的应用和发展 9

1.4 Android移动操作系统概述 10

1.4.1 Android历史介绍 10

1.4.2 Android架构 10

1.4.3 Android平台介绍 12

本章练习题 13

第2章 Android开发环境搭建 14

2.1 JDK安装与配置 14

2.2 安装Android Studio 16

2.3 安装Android SDK 18

2.4 创建Android模拟器 21

本章总结 24

本章练习题 24

第3章 第一个Android应用程序 25

3.1 使用Android Studio工具创建项目 25

3.2 Android工程剖析 29

3.2.1 Android工程目录结构 29

3.2.2 R.java文件 30

3.2.3 MainActivity.java文件 31

3.2.4 activity-main.xml布局文件 31

3.2.5 Android Manifest.xml文件 33

3.3 运行工程 34

3.4 学会使用Android开发者社区帮助 34

3.4.1 在线帮助文档 34

3.4.2 Android SDK API文档 34

3.4.3 Android SDK开发指南 36

3.4.4 使用Android SDK案例 36

本章总结 38

本章练习题 38

第4章 调试Android应用程序 39

4.1 使用DDMS帮助调试程序 39

4.1.1 设备列表 40

4.1.2 文件浏览器 40

4.1.3 LogCat 41

4.2 使用Android Studio调试 44

4.3 使用ADB帮助调试程序 47

4.3.1 查询模拟器实例和设备 47

4.3.2 进入shell 48

4.3.3 导入导出文件 48

本章总结 50

本章练习题 50

第5章 Android界面编程 51

5.1 Android界面组成 51

5.1.1 视图 51

5.1.2 视图组 51

5.2 界面构建 52

5.2.1 使用Android Studio界面设计工具 52

5.2.2 实例:标签和按钮 52

5.3 事件处理模型 56

5.3.1 活动作为事件监听器 56

5.3.2 内部类事件监听器 58

5.3.3 匿名内部类事件监听器 59

5.4 屏幕上的事件处理 60

5.4.1 触摸事件 60

5.4.2 实例:屏幕触摸事件 60

5.4.3 键盘事件 61

5.4.4 实例:改变图片的透明度 62

本章总结 64

本章练习题 64

第6章 Android界面布局 65

6.1 Android界面布局设计模式 65

6.1.1 表单布局模式 65

6.1.2 列表布局模式 66

6.1.3 网格布局模式 66

6.2 布局管理 67

6.2.1 帧布局 67

6.2.2 实例:使用帧布局 67

6.2.3 线性布局 69

6.2.4 实例:使用线性布局实现登录界面 69

6.2.5 相对布局 72

6.2.6 实例:使用相对布局实现查询功能界面 72

6.2.7 网格布局 74

6.2.8 实例1:使用网格布局实现计算器界面 74

6.2.9 实例2:布局嵌套实现登录界面 76

6.3 屏幕旋转问题 78

6.3.1 解决方案 78

6.3.2 实例:加载不同布局文件 79

本章总结 81

本章练习题 81

第7章 Android简单控件 82

7.1 按钮 82

7.1.1 Button 82

7.1.2 ImageButton 82

7.1.3 ToggleButton 83

7.1.4 实例:ButtonSample 83

7.2 标签 85

7.3 文本框 86

7.3.1 文本框相关属性 87

7.3.2 实例1:用户登录 87

7.3.3 实例2:文本框输入控制 89

7.4 单选按钮 91

7.4.1 RadioButton 91

7.4.2 RadioGroup 92

7.4.3 实例:使用单选按钮 92

7.5 复选框 94

7.5.1 CheckBox 94

7.5.2 实例:使用复选框 95

7.6 进度栏 97

7.6.1 进度栏相关属性和方法 97

7.6.2 实例1:水平条状进度栏 98

7.6.3 实例2:圆形进度栏 101

7.7 拖动栏 103

7.7.1 SeekBar 103

7.7.2 实例:使用拖动栏 104

本章总结 106

本章练习题 106

第8章 Android高级控件 107

8.1 列表类控件 107

8.1.1 适配器 107

8.1.2 Spinner 107

8.1.3 实例:使用Spinner进行选择 109

8.1.4 ListView 111

8.1.5 实例1:使用ListView实现选择文本 111

8.1.6 实例2:使用ListView实现选择文本十图片 112

8.2 Toast 116

8.2.1 实例1:文本类型Toast 116

8.2.2 实例2:图片类型Toast 117

8.2.3 实例3:文本+图片Toast 118

8.3 对话框 119

8.3.1 实例1:显示文本信息对话框 120

8.3.2 实例2:简单列表项对话框 122

8.3.3 实例3:单选列表对话框 123

8.3.4 实例4:复选列表项对话框 125

8.3.5 实例5:复杂布局对话框 127

8.4 操作栏和菜单 129

8.4.1 操作栏 129

8.4.2 菜单编程 130

8.4.3 实例:文本菜单 130

8.4.4 实例:操作表按钮 132

本章总结 133

本章练习题 133

第9章 活动 134

9.1 活动概述 134

9.1.1 创建活动 134

9.1.2 活动的生命周期 135

9.1.3 实例:Back和Home按钮的区别 137

9.2 多活动之间跳转 139

9.2.1 登录案例介绍 139

9.2.2 启动下一个活动 140

9.2.3 参数传递 141

9.2.4 返回上一个活动 142

9.3 活动任务与返回栈 144

本章总结 145

本章练习题 145

第10章 碎片 146

10.1 界面重用问题 146

10.2 碎片技术 147

10.3 碎片的生命周期 147

10.3.1 三种状态 147

10.3.2 11种方法 147

10.4 使用碎片开发 149

10.4.1 碎片相关类 149

10.4.2 创建碎片 150

10.4.3 静态添加碎片到活动 151

10.4.4 动态添加碎片到活动 152

10.4.5 管理碎片事务 153

10.4.6 碎片与活动之间的通信 154

10.5 案例:比赛项目 154

10.5.1 创建两个碎片 155

10.5.2 创建MainActivity活动 158

10.5.3 单击Master碎片列表项 160

10.5.4 数据访问对象 163

本章总结 165

本章练习题 165

第11章 意图 166

11.1 什么是意图 166

11.1.1 意图与目标组件间的通信 166

11.1.2 意图包含内容 167

11.2 意图类型 167

11.2.1 显式意图 167

11.2.2 隐式意图 168

11.3 匹配组件 169

11.3.1 动作 170

11.3.2 数据 171

11.3.3 类别 172

11.4 实例:Android系统内置意图 173

本章总结 175

本章练习题 175

第12章 数据存储 176

12.1 Android数据存储概述 176

12.2 健康助手应用 176

12.2.1 需求分析 177

12.2.2 原型设计 177

12.2.3 UI设计 177

12.2.4 数据库设计 178

12.3 本地文件 179

12.3.1 沙箱目录设计 179

12.3.2 访问应用程序files目录 180

12.3.3 实例:访问CSV文件 180

12.4 SQLite数据库 183

12.4.1 SQLite数据类型 183

12.4.2 Android平台下管理SQLite数据库 184

12.5 案例:SQLite实现健康助手数据存储 186

12.5.1 SQLiteOpenHelper帮助类 186

12.5.2 数据插入 187

12.5.3 数据删除 189

12.5.4 数据修改 189

12.5.5 数据查询 191

12.6 使用SharedPreferences 193

12.6.1 实例:写入SharedPreferences 193

12.6.2 实例:读取SharedPreferences 195

本章总结 196

本章练习题 196

第13章 使用内容提供者共享数据 197

13.1 内容提供者概述 197

13.2 Content URI 198

13.2.1 Content URI概述 198

13.2.2 内置Content URI 199

13.3 实例:访问联系人信息 200

13.3.1 查询联系人 201

13.3.2 普通权限和运行时权限 204

13.3.3 通过联系人id查询联系人的Email 206

13.3.4 查询联系人的电话 209

13.4 实例:访问通话记录 209

13.5 实例:访问短信记录 215

本章总结 219

本章练习题 219

进阶篇 222

第14章 Android多线程开发 222

14.1 线程概念 222

14.1.1 进程概念 222

14.1.2 线程概念 222

14.2 计时器案例介绍 223

14.3 Java中的线程 224

14.3.1 Thread类实现线程体 224

14.3.2 Runnable接口实现线程体 227

14.3.3 匿名内部类实现线程体 228

14.4 Android中的多线程 230

14.4.1 主线程之外更新UI问题 230

14.4.2 Android异步消息处理机制 231

14.4.3 Handler发送消息方法 232

14.4.4 计时器案例:异步消息机制实现 233

本章总结 235

本章练习题 235

第15章 服务 236

15.1 服务概述 236

15.1.1 创建服务 236

15.1.2 服务的分类 237

15.2 启动类型服务 238

15.2.1 启动服务生命周期 238

15.2.2 实例:启动类型服务 239

15.3 绑定类型服务 240

15.3.1 绑定服务生命周期 240

15.3.2 实例:绑定类型服务 241

15.4 IntentService 244

15.4.1 IntentService优势 244

15.4.2 实例:IntentService与Service比较 244

本章总结 246

本章练习题 246

第16章 广播接收器 247

16.1 广播概述 247

16.2 广播接收器概述 247

16.2.1 编写广播接收器 248

16.2.2 注册广播接收器 248

16.2.3 实例:发送广播 250

16.3 系统广播 251

16.3.1 系统广播动作 252

16.3.2 实例:Downloader 252

16.4 本地广播 255

16.4.1 本地广播API 255

16.4.2 实例:发送本地广播 255

16.5 通知 257

16.5.1 实例:普通通知 257

16.5.2 其他形式的Notification 259

本章总结 260

本章练习题 260

第17章 多媒体开发 261

17.1 多媒体文件介绍 261

17.1.1 音频多媒体文件介绍 261

17.1.2 视频多媒体文件介绍 262

17.2 Android音频/视频播放API 262

17.2.1 核心API—— MediaPlayer类 263

17.2.2 播放状态 263

17.3 实例:音频播放 265

17.3.1 资源音频文件播放 265

17.3.2 本地音频文件播放 269

17.4 Android音频/视频录制API 271

17.5 实例:音频录制 272

17.6 视频播放 275

17.6.1 VideoView控件 275

17.6.2 实例:VideoView播放视频 275

本章总结 277

本章练习题 277

第18章 网络通信技术 278

18.1 网络通信技术介绍 278

18.1.1 Socket通信 278

18.1.2 HTTP协议 278

18.1.3 HTTPS协议 279

18.1.4 Web服务 279

18.2 案例:MyNotes 279

18.3 发送网络请求 280

18.3.1 使用java.net.URL 281

18.3.2 使用HttpURLConnection发送GET请求 284

18.3.3 使用HttpURLConnection发送POST请求 285

18.3.4 实例:Downloader 286

18.4 数据交换格式 288

18.4.1 XML文档结构 290

18.4.2 解析XML文档 291

18.4.3 实例:DOM解析XML文档 292

18.4.4 JSON文档结构 296

18.4.5 JSON数据编码和解码 298

18.4.6 实例:解码JOSN数据 299

本章总结 301

本章练习题 302

第19章 百度地图与定位服务 303

19.1 使用百度地图 303

19.1.1 申请API Key 303

19.1.2 获得Android签名证书中的SHA1值 303

19.1.3 搭建和配置环境 306

19.1.4 实例:显示地图 309

19.1.5 实例:设置地图状态 312

19.1.6 实例:地图覆盖物 313

19.2 定位服务 314

19.2.1 定位服务授权 314

19.2.2 位置信息提供者 316

19.2.3 管理定位服务 317

19.2.4 实例:MyLocation 318

19.2.5 测试定位服务 321

19.3 定位服务与地图结合实例:WhereAMI 324

本章总结 326

本章练习题 326

第20章 Android 2D图形与动画技术 327

20.1 Android 2D绘图技术 327

20.1.1 画布和画笔 327

20.1.2 实例:绘制点和线 328

20.1.3 实例:绘制矩形 329

20.1.4 实例:绘制弧线 331

20.1.5 实例:绘制位图 332

20.2 位图变换 333

20.2.1 矩阵 333

20.2.2 实例:位图变换 334

20.3 调用Android照相机获取图片 336

20.3.1 调用Android照相机 336

20.3.2 实例:调用Android照相机 336

20.4 Android动画技术 338

20.4.1 渐变动画 338

20.4.2 实例:渐变动画 339

20.4.3 动画插值器 342

20.4.4 使用动画集 343

20.4.5 帧动画 344

本章总结 346

本章练习题 346

第21章 手机功能开发 347

21.1 电话应用开发 347

21.1.1 拨打电话功能 347

21.1.2 实例:拨打电话 348

21.1.3 呼入电话状态 350

21.1.4 实例:电话黑名单 351

21.2 短信和彩信应用开发 354

21.2.1 发送短信功能 354

21.2.2 发送彩信功能 354

本章总结 356

本章练习题 356

实战篇 358

第22章 分层架构设计与重构健康助手应用 358

22.1 分层架构设计 358

22.1.1 低耦合企业级系统架构设计 358

22.1.2 Android平台分层架构设计 359

22.2 健康助手应用架构设计 359

22.3 重构健康助手数据持久层 360

22.3.1 DAO设计模式 361

22.3.2 工厂设计模式 365

22.4 表示层开发 367

22.4.1 Health列表界面 367

22.4.2 Health添加界面 371

22.4.3 Health修改界面 374

本章总结 375

本章练习题 376

第23章 内容提供者重构健康助手应用 377

23.1 分层架构与内容提供者 377

23.2 自定义内容提供者访问数据库 377

23.2.1 编写内容提供者 377

23.2.2 注册内容提供者 384

23.3 重构健康助手数据持久层 385

本章总结 387

本章练习题 387

附录A 课程设计参考——Android播放器应用开发 388

A.1 应用分析与设计 388

A.1.1 应用概述 388

A.1.2 需求分析 388

A.1.3 原型设计 389

A.1.4 界面设计 389

A.1.5 架构设计 390

A.2 任务1:创建工程 391

A.3 任务2:音频列表功能 391

A.3.1 任务2.1:界面布局 391

A.3.2 任务2.2: Audio ListActivity 392

A.3.3 任务2.3: AudioCursorAdapter 393

A.4 任务3:音频控制功能 394

A.4.1 任务3.1:界面布局 395

A.4.2 任务3.2:初始化AudioPlayerActivity活动 397

A.4.3 任务3.3:初始化AudioService服务 399

A.4.4 任务3.4:播放控制 400

A.4.5 任务3.5:进度控制 404

A.5 任务4:后台播放回到前台功能 409

A.6 任务5:更新专辑图片功能 410

附录B 把应用发布到Google play应用商店 412

B.1 谷歌Android应用商店Google play 412

B.2 Android设备测试 413

B.3 还有“最后一公里” 414

B.3.1 添加图标 414

B.3.2 生成数字签名文件 414

B.3.3 发布打包 415

B.4 发布产品 417

B.4.1 上传APK 417

B.4.2 填写商品详细信息 418

B.4.3 定价和发布范围 419

附录C 练习题参考答案 423