《Android应用开发学习手册》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:管蕾编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302401292
  • 页数:770 页
图书介绍:本书主要讲解基于Android系统开发应用程序程序的基本知识,包括Android开发技术基础、搭建Android应用开发环境、数据存储、电话和短信处理、控件应用、UI布局、事件处理、界面表现、音频/视频处理、二维图形、3D处理、游戏开发、网络应用、语音识别技术、手势识别、系统安全、系统优化、GPS地图应用、传感器开发技术、移动Web开发等知识。

第1篇 基础知识篇 2

第1章 Android应用开发基础 2

1.1 移动智能设备系统发展现状 2

1.1.1 智能手机和移动智能设备 2

1.1.2 主流系统的发展现状 3

1.2 Android系统的诞生和发展现状 5

1.2.1 Android系统的发展历程 6

1.2.2 Android系统的发展现状 7

1.2.3 常见的Android设备 7

1.2.4 Android系统的巨大优势 9

1.3 搭建Android应用开发环境 10

1.3.1 安装Android SDK的系统要求 11

1.3.2 安装JDK 11

1.3.3 获取并安装Eclipse和Android SDK 14

1.3.4 安装ADT 17

1.3.5 设定Android SDK Home 19

1.3.6 验证开发环境 20

1.3.7 创建Android虚拟设备(AVD) 21

1.3.8 启动AVD模拟器 23

1.4 第一个Android应用程序 24

1.4.1 使用Eclipse新建Android工程 24

1.4.2 编写代码和代码分析 25

1.4.3 调试程序 26

1.4.4 运行项目 27

1.4.5 导入一个既有项目 28

第2章 Android应用开发技术必备 30

2.1 Android系统架构 30

2.1.1 最底层的操作系统层(OS)——C/C++实现 30

2.1.2 Android的硬件抽象层——C/C++实现 31

2.1.3 各种库(Libraries)和Android运行环境(RunTime)——中间层 32

2.1.4 应用程序(Application)——Java实现 32

2.1.5 应用程序框架(Application Framework) 33

2.2 Android应用程序文件组成 33

2.2.1 src目录 33

2.2.2 设置文件AndroidManfest.xml 34

2.2.3 gen目录中的R.java和BuildConfig.java 35

2.2.4 res目录 36

2.2.5 assets目录 37

2.3 Android的5大组件 37

2.3.1 Activity组件——表现屏幕界面 37

2.3.2 Intent组件——实现界面切换 37

2.3.3 Service组件——后台服务 38

2.3.4 Broadcast/Receiver组件——实现广播机制 38

2.3.5 Content Provider组件——实现数据存储 39

2.4 Android应用程序的生命周期 39

2.4.1 什么是进程 39

2.4.2 什么是线程 40

2.4.3 Android应用程序的生命周期 40

2.5 Android和Linux的关系 42

2.5.1 Android继承于Linux 42

2.5.2 Android和Linux内核的区别 42

第2篇 核心技术篇 46

第3章 UI界面布局 46

3.1 View视图组件 46

3.1.1 View的常用属性和方法 46

3.1.2 Viewgroup容器 47

3.1.3 ViewManager类 47

3.2 Android UI布局的方式 48

3.2.1 使用XML布局 48

3.2.2 在Java代码中控制布局 48

3.3 Android布局管理器详解 50

3.3.1 Android布局管理器概述 50

3.3.2 线性布局LinearLayout 52

3.3.3 相对布局RelativeLayout 53

3.3.4 帧布局FrameLayout 55

3.3.5 表格布局TableLayout 55

3.3.6 绝对布局AbsoluteLayout 56

3.3.7 网格布局GridLayout 57

3.3.8 实战演练——演示各种基本布局控件的用法 58

第4章 核心组件介绍 66

4.1 Widget组件 66

4.1.1 创建一个Widget组件 66

4.1.2 使用按钮Button 68

4.1.3 使用文本框TextView 69

4.1.4 使用编辑框EditText 76

4.1.5 使用多项选择控件CheckBox 77

4.1.6 使用单项选择控件RadioGroup 79

4.1.7 使用下拉列表控件Spinner 80

4.1.8 使用自动完成文本控件AutoCompleteTextView 83

4.1.9 使用日期选择器控件DatePicker 85

4.1.10 使用时间选择器控件TimePicker 86

4.1.11 联合应用DatePicker和TimePicker 87

4.1.12 使用滚动视图控件ScrollView 91

4.1.13 使用进度条控件ProgressBar 91

4.1.14 使用拖动条控件SeekBar 93

4.1.15 使用评分组件RatingBar 94

4.1.16 使用图片视图控件ImageView 95

4.1.17 使用切换图片控件ImageSwitcher和Gallery 96

4.1.18 使用网格视图控件GridView 98

4.1.19 使用标签控件Tab 100

4.2 使用MENU友好界面 102

4.2.1 MENU基础 102

4.2.2 实战演练——使用MENU控件 102

4.3 使用列表控件ListView 105

4.3.1 通过ArrayAdapter接收一个数组或通过List作为参数来构建 105

4.3.2 实战演练——使用SimpleAdapter实现ListView列表功能 105

4.4 使用对话框控件 108

4.4.1 对话框基础 108

4.4.2 实战演练——在屏幕中使用对话框显示问候语 109

4.5 使用Toast和Notification提醒控件 114

4.5.1 Toast和Notification基础 115

4.5.2 练习Toast和Notification 116

4.6 自定义控件 123

第5章 Android事件处理 129

5.1 基于监听的事件处理 129

5.1.1 监听处理模型中的3种对象 129

5.1.2 Android系统中的监听事件 132

5.1.3 实现事件监听器的方法 132

5.2 基于回调的事件处理 140

5.2.1 Android事件侦听器的回调方法 140

5.2.2 基于回调的事件传播 142

5.2.3 重写onTouchEvent方法响应触摸屏事件 145

5.3 响应的系统设置的事件 146

5.3.1 Configuration类详解 147

5.3.2 重写onConfigurationChanged响应系统设置更改 149

5.4 Handler消息传递机制 152

第6章 Activity界面表现详解 157

6.1 Activity基础 157

6.1.1 Activity的状态及状态间的转换 157

6.1.2 Activity栈 158

6.1.3 Activity的生命周期 159

6.2 操作Activity 163

6.2.1 使用LauncherActivity类 163

6.2.2 使用ExpandableListActivity类 165

6.2.3 使用PreferenceActivity和PreferenceFragment 167

6.2.4 配置Activity 171

6.2.5 启动、关闭Activity 172

6.2.6 Activity数据交换 176

6.2.7 启动其他Activity 181

6.3 Activity的加载模式 186

6.3.1 standard加载模式 187

6.3.2 singleTop加载模式 188

6.3.3 singleTask加载模式 188

6.3.4 singleInstance加载模式 188

6.4 使用Fragment 190

6.4.1 Fragment基础 190

6.4.2 创建Fragment 194

第7章 Intent和IntentFilter详解 201

7.1 Intent和IntentFilter基础 201

7.1.1 Intent启动不同组件的方法 201

7.1.2 Intent的构成 202

7.1.3 Intent的基本用法 202

7.2 显式Intent和隐式Intent 205

7.2.1 显式Intent(Explicit Intent)的基本用法 206

7.2.2 隐式Intent(Implicit Intent) 209

7.3 IntentFilter详解 210

7.3.1 IntentFilter基础 210

7.3.2 IntentFilter响应隐式Intent 211

7.3.3 Android解析IntentFilter 213

7.4 Intent的属性 213

7.4.1 Component属性 213

7.4.2 Action属性 216

7.4.3 Category属性 219

7.4.4 Data属性和Type属性 222

7.4.5 Extra属性 225

7.4.6 Flag属性 225

7.5 Intent和Activity 226

7.5.1 显式启动新的Activity 226

7.5.2 隐式Intent和运行时绑定 226

7.5.3 Activity的返回值 227

7.5.4 Android本地动作 229

7.6 使用Intent广播一个事件 229

7.6.1 广播事件 230

7.6.2 BroadcastReceiver监听广播 230

7.6.3 Android本地广播 231

7.7 拨打电话 232

7.8 发送短信 234

第8章 Service和BroadcastReceiver 237

8.1 Service详解 237

8.1.1 Service基础 237

8.1.2 Service的生命周期 237

8.1.3 Service的策略 239

8.1.4 创建Service 240

8.1.5 使用Service 243

8.1.6 与远程Service通信 244

8.1.7 Service的访问权限 245

8.1.8 简单使用Service实例 245

8.1.9 提高Service优先级 250

8.1.10 Service综合实例 250

8.2 AIDL Service服务 253

8.2.1 AIDL基础 253

8.2.2 将接口暴露给客户端 256

8.2.3 客户端访问AIDL Service 258

8.3 BroadcastReceiver详解 261

8.3.1 BroadcastReceiver基础 261

8.3.2 Receiver的生命周期 262

8.3.3 基本操作 262

8.4 短信处理和电话处理 266

8.4.1 SmsManager类介绍 266

8.4.2 TelephonyManager类介绍 268

8.4.3 实战演练——监听短信是否发送成功 271

第9章 应用资源管理机制详解 275

9.1 Android的资源类型 275

9.2 如何使用资源 276

9.2.1 在Java代码中使用资源清单项 276

9.2.2 在Java代码中访问实际资源 277

9.2.3 在XML代码中使用资源 277

9.3 \res\values目录 278

9.3.1 定义颜色值 278

9.3.2 字符串资源 278

9.3.3 颜色资源文件 279

9.3.4 尺寸资源文件 279

9.3.5 数组资源 280

9.3.6 使用字符串、颜色和尺寸资源 280

9.3.7 使用数组资源 284

9.4 Drawable(图片)资源 287

9.4.1 使用StateListDrawable资源 287

9.4.2 使用LayerDrawable资源 288

9.4.3 使用ShapeDrawable资源 289

9.4.4 使用ClipDrawable资源 290

9.4.5 使用AnimationDrawable资源 290

9.5 使用属性动画(Property Animation)资源 291

9.6 使用原始的XML资源 292

9.7 样式资源和主题资源 295

9.7.1 使用样式资源 295

9.7.2 使用主题资源文件 297

9.8 使用属性资源 298

9.9 使用声音资源 301

9.1 使用布局资源和菜单资源 303

9.11 国际化 304

第10章 数据存储 307

10.1 5种存储方式 307

10.2 SharedPreferences存储 307

10.2.1 SharedPreferences简介 308

10.2.2 使用SharedPreferences存储数据 308

10.3 文件存储 310

10.4 最常用的SQLite 313

10.4.1 SQLite基础 313

10.4.2 SQLite数据类型 314

10.4.3 SQLiteDatabase介绍 315

10.4.4 SQLiteOpenHelper介绍 319

10.4.5 实战演练——使用SQLite操作数据 319

10.5 ContentProvider存储 325

10.5.1 ContentProvider介绍 325

10.5.2 使用ContentProvider 326

10.6 网络存储 328

第3篇 多媒体应用篇 332

第11章 二维图像处理 332

11.1 SurfaceFlinger渲染管理器 332

11.1.1 SurfaceFlinger基础 332

11.1.2 Surface和Canvas 334

11.2 Skia渲染引擎详解 335

11.2.1 Skia基础 335

11.2.2 Android中的Skia 335

11.2.3 使用Skia绘图 336

11.2.4 Skia的其他功能 337

11.3 Android绘图基础 338

11.3.1 使用Canvas画布 339

11.3.2 使用Paint类 341

11.3.3 位图操作类Bitmap 344

11.4 使用其他的绘图类 349

11.4.1 使用设置文本颜色类Color 349

11.4.2 使用矩形类Rect和RectF 351

11.4.3 非矢量图形拉伸类NinePatch 355

11.4.4 使用变换处理类Matrix 355

11.4.5 使用BitmapFactory类 359

11.4.6 使用Region类 361

11.4.7 使用Typeface类 363

第12章 二维动画应用 364

12.1 使用Drawable实现动画效果 364

12.1.1 Drawable基础 364

12.1.2 使用Drawable实现动画效果 365

12.2 Tween Animation动画详解 366

12.2.1 Tween动画基础 366

12.2.2 Tween动画类详解 370

12.2.3 Tween应用实战 373

12.3 实现Frame Animation动画效果 375

12.3.1 Frame动画基础 376

12.3.2 使用Frame动画 376

12.4 Property Animation动画 378

12.4.1 Property Animation(属性)动画基础 378

12.4.2 使用Property Animation 380

12.5 实现动画效果的其他方法 384

12.5.1 播放GIF动画 384

12.5.2 实现EditText动画特效 386

第13章 开发音频应用程序 388

13.1 音频应用接口类介绍 388

13.2 AudioManager类 389

13.2.1 AudioManager基础 389

13.2.2 AudioManager基本应用——设置短信提示铃声 391

13.3 录音处理 395

13.3.1 使用MediaRecorder接口录制音频 395

13.3.2 使用AudioRecorder接口录制音频 397

13.4 播放音频 399

13.4.1 使用AudioTrack播放音频 399

13.4.2 使用MediaPlayer播放音频 400

13.4.3 使用SoundPool播放音频 402

13.4.4 使用Ringtone播放铃声 402

13.4.5 使用JetPlayer播放音频 403

13.4.6 使用AudioEffect处理音效 404

13.5 语音识别技术 406

13.5.1 Text-To-Speech技术 406

13.5.2 谷歌的Voice Recognition技术 410

13.6 实现振动功能 412

13.7 设置闹钟 413

13.7.1 AlarmManager基础 413

13.7.2 开发一个闹钟程序 414

第14章 开发视频应用程序 420

14.1 使用MediaPlayer播放视频 420

14.2 使用VideoView播放视频 427

14.2.1 VideoView基础 428

14.2.2 使用VideoView播放手机中的影片 429

14.3 使用Camera拍照 432

14.3.1 Camera基础 432

14.3.2 使用Camera预览并拍照 434

14.3.3 使用Camera API方式拍照 440

第15章 OpenGL ES 3.1 三维处理 443

15.1 OpenGL ES基础 443

15.1.1 OpenGL ES 3.1 介绍 443

15.1.2 Android全面支持OpenGL ES 3.1 444

15.2 OpenGL ES的基本应用 444

15.2.1 使用点线法绘制三角形 444

15.2.2 使用索引法绘制三角形 449

15.3 实现投影效果 454

15.3.1 正交投影 454

15.3.2 透视投影 455

15.3.3 正交投影和透视投影的区别 455

15.4 实现光照效果 455

15.4.1 光源的类型 455

15.4.2 光源的颜色 456

15.5 实现纹理映射 457

15.5.1 纹理贴图和纹理拉伸 457

15.5.2 Texture Filter纹理过滤 458

15.6 绘制一个圆柱体 459

15.7 实现坐标变换 467

15.7.1 坐标变换基础 467

15.7.2 实现缩放变换 468

15.7.3 实现平移变换 468

15.8 使用Alpha混合技术 468

15.9 实现摄像机和雾特效功能 470

15.9.1 摄像机基础 470

15.9.2 雾特效基础 470

第4篇 网络应用篇 474

第16章 HTTP数据通信 474

16.1 HTTP基础 474

16.1.1 HTTP概述 474

16.1.2 HTTP协议的功能 475

16.1.3 Android中的HTTP 475

16.1.4 使用Apache接口 476

16.1.5 实战演练——在手机屏幕中传递HTTP参数 476

16.2 URL和URLConnection 480

16.2.1 URL类详解 481

16.2.2 实战演练——从网络中下载图片作为屏幕背景 482

16.3 HTTPURLConnection详解 486

16.3.1 HttpURLConnection的主要用法 486

16.3.2 实战演练——在Android手机屏幕中显示网络中的图片 488

第17章 处理XML数据 491

17.1 XML技术基础 491

17.1.1 XML的概述 491

17.1.2 XML的语法 492

17.1.3 获取XML文档 492

17.2 使用SAX解析XML数据 494

17.2.1 SAX的原理 494

17.2.2 基于对象和基于事件的接口 495

17.2.3 常用的接口和类 496

17.2.4 实战演练——在Android系统中使用SAX解析XML数据 499

17.3 使用DOM解析XML 501

17.3.1 DOM概述 501

17.3.2 DOM的结构 502

17.3.3 实战演练——在Android系统中使用DOM解析XML数据 504

17.4 PULL解析技术 506

17.4.1 PULL解析原理 506

17.4.2 实战演练——在Android系统中使用PULL解析XML数据 506

第18章 下载、上传数据 510

18.1 下载网络中的图片数据 510

18.2 下载网络中的JSON数据 511

18.2.1 JSON基础 511

18.2.2 实战演练——远程下载服务器中的JSON数据 512

18.3 实战演练——下载并播放网络中的MP3 517

18.4 使用GET方式上传数据 524

18.5 使用POST方式上传数据 528

第19章 使用Socket实现数据通信 533

19.1 Socket编程初步 533

19.1.1 TCP/IP协议基础 533

19.1.2 UDP协议 534

19.1.3 基于Socket的Java网络编程 534

19.2 TCP编程详解 535

19.2.1 使用ServletSocket 536

19.2.2 使用Socket 536

19.2.3 TCP中的多线程 537

19.2.4 实现非阻塞Socket通信 537

19.3 UDP编程 539

19.3.1 使用DatagramSocket 539

19.3.2 使用MulticastSocket 540

19.4 在Android中使用Socket实现数据传输 541

第20章 使用WebKit浏览网页数据 545

20.1 WebKit源码分析 545

20.1.1 Java层框架 545

20.1.2 C/C++层框架 550

20.2 分析WebKit的操作过程 552

20.2.1 WebKit初始化 552

20.2.2 载入数据 554

20.2.3 刷新绘制 554

20.3 WebView详解 555

20.3.1 WebView介绍 555

20.3.2 实战演练——在手机屏幕中浏览网页 556

20.3.3 实战演练——加载一个指定的HTML程序 558

20.3.4 实战演练——使用WebView加载JavaScript程序 560

第21章 GPS地图定位 564

21.1 位置服务 564

21.1.1 类location详解 564

21.1.2 实战演练——在Android设备中实现GPS定位 565

21.2 随时更新位置信息 567

21.2.1 库Maps中的类 567

21.2.2 使用LocationManager监听位置 567

21.2.3 实战演练——监听当前设备的坐标和海拔 568

21.3 在Android设备中使用地图 576

21.3.1 添加Google Map密钥 576

21.3.2 使用Map API密钥 578

21.3.3 实战演练——在Android设备中使用谷歌地图实现定位 580

21.4 接近警报 585

21.4.1 类Geocoder基础 585

21.4.2 Geocoder的公共构造器和公共方法 587

第5篇 知识进阶篇 590

第22章 Android传感器应用开发详解 590

22.1 Android传感器系统概述 590

22.2 Android传感器应用开发基础 590

22.2.1 查看包含的传感器 591

22.2.2 模拟器测试工具——SensorSimulator 592

22.2.3 实战演练——检测当前设备支持的传感器 595

22.3 使用光线传感器 596

22.3.1 光线传感器介绍 597

22.3.2 使用光线传感器的方法 598

22.4 使用磁场传感器 598

22.4.1 什么是磁场传感器 599

22.4.2 Android系统中的磁场传感器 599

22.5 使用加速度传感器 599

22.5.1 加速度传感器的分类 600

22.5.2 Android系统中的加速度传感器 600

22.6 使用方向传感器 601

22.6.1 方向传感器基础 601

22.6.2 Android中的方向传感器 602

22.7 使用陀螺仪传感器 603

22.7.1 陀螺仪传感器基础 603

22.7.2 Android中的陀螺仪传感器 604

22.8 使用旋转向量传感器 605

22.9 使用距离传感器详解 606

22.9.1 距离传感器介绍 606

22.9.2 Android系统中的距离传感器 606

22.10 使用气压传感器 608

22.10.1 气压传感器基础 608

22.10.2 气压传感器在智能手机中的应用 609

22.11 温度传感器详解 609

22.11.1 温度传感器介绍 609

22.11.2 Android系统中的温度传感器 610

22.12 使用湿度传感器 612

第23章 近距离通信应用详解 614

23.1 近距离无线通信技术概览 614

23.1.1 ZigBee——低功耗、自组网 614

23.1.2 WiFi——大带宽支持家庭互联 614

23.1.3 蓝牙——4.0进入低功耗时代 615

23.1.4 NFC——必将逐渐远离历史舞台 615

23.2 低功耗蓝牙基础 616

23.2.1 低功耗蓝牙的架构 616

23.2.2 低功耗蓝牙分类 617

23.2.3 可穿戴设备的兴起 617

23.3 和蓝牙相关的类 618

23.3.1 BluetoothSocket类 618

23.3.2 BluetoothServerSocket类 620

23.3.3 BluetoothAdapter类 620

23.3.4 BluetoothClass.Service类 626

23.3.5 BluetoothClass.Device类 627

23.4 使用近场通信技术 627

23.4.1 NFC技术的特点 627

23.4.2 NFC的工作模式 628

23.4.3 NFC和蓝牙的对比 628

23.4.4 Android系统中的NFC 629

23.4.5 实战演练——使用NFC发送消息 630

第24章 手势识别实战 635

24.1 手势识别技术介绍 635

24.1.1 手势识别类GestureDetector 635

24.1.2 手势检测器类GestureDetector 636

24.1.3 手势识别处理事件和方法 638

24.2 实战演练——通过点击的方式移动图片 639

24.3 实战演练——实现各种手势识别 642

24.3.1 布局文件main.xml 642

24.3.2 隐藏屏幕项部的电池等图标和标题内容 643

24.3.3 监听触摸屏幕中的各种常用手势 643

24.3.4 根据监听到的用户手势创建视图 645

24.4 实战演练——实现手势翻页效果 646

24.4.1 布局文件main.xml 646

24.4.2 监听手势 647

第25章 Google Now和Android Wear详解 652

25.1 Google Now介绍 652

25.1.1 搜索引擎的升级——Google Now 652

25.1.2 Google Now的用法 653

25.2 Android Wear详解 654

25.2.1 什么是Android Wear 654

25.2.2 搭建Android Wear开发环境 655

25.3 开发Android Wear程序 659

25.3.1 创建通知 659

25.3.2 创建声音 661

25.3.3 给通知添加页面 664

25.3.4 通知堆 664

25.3.5 通知语法介绍 665

25.4 实战演练——开发一个Android Wear程序 666

第26章 Android应用优化详解 674

26.1 用户体验是产品成功的关键 674

26.1.1 什么是用户体验 674

26.1.2 影响用户体验的因素 675

26.1.3 用户体验设计目标 675

26.2 Android优化概述 676

26.3 UI布局优化 676

26.3.1 〈merge/〉标签在UI界面中的优化作用 677

26.3.2 遵循Android Layout优化的两段通用代码 679

26.3.3 优化Bitmap图片 680

26.3.4 FrameLayout布局优化 682

26.3.5 使用Android提供的优化工具 687

26.4 优化Android代码 696

26.4.1 优化Java代码 697

26.4.2 编写更高效的Android代码 703

第27章 为Android开发网页 717

27.1 准备工作 717

27.1.1 搭建开发环境 717

27.1.2 实战演练——编写一个适用于Android系统的网页 719

27.1.3 控制页面的缩放 723

27.2 添加Android的CSS 723

27.2.1 编写基本的样式 723

27.2.2 添加视觉效果 725

27.3 添加JavaScript 726

27.3.1 jQuery框架介绍 726

27.3.2 具体实践 727

27.4 使用AJAX 729

27.4.1 AJAX介绍 729

27.4.2 实战演练——在Android系统中开发一个AJAX网页 729

27.5 让网页动起来 735

27.5.1 一个开源框架——JQTouch 735

27.5.2 实战演练——在Android系统中使用JQTouch框架开发网页 735

27.6 使用PhoneGap 742

27.6.1 PhoneGap介绍 742

27.6.2 搭建PhoneGap开发环境 743

27.6.3 创建基于PhoneGap的HelloWorld程序 744

第28章 编写安全的应用程序 751

28.1 Android安全机制概述 751

28.1.1 Android的安全机制模型 752

28.1.2 Android具有的权限 752

28.1.3 Android的组件模型(Component Model) 753

28.1.4 Android安全访问设置 753

28.2 声明不同的权限 754

28.2.1 AndroidManifest.xml文件基础 754

28.2.2 声明获取不同的权限 755

28.2.3 自定义一个权限 759

28.3 发布Android程序生成APK 759

28.3.1 什么是APK文件 759

28.3.2 申请会员 760

28.3.3 生成签名文件 763

28.3.4 使用签名文件 768

28.3.5 发布到市场 770