目 录
第1章 Android系统概述..................................................................... 1
1.1 智能手机.................................................................................................... 1
1.1.1 什么是智能手机......................................................................... 1
1.1.2 智能手机操作系统..................................................................... 2
1.2 什么是Android........................................................................................ 4
1.2.1 Android的历史........................................................................... 4
1.2.2 Android的发展........................................................................... 5
1.2.3 Android的优点........................................................................... 6
1.3 Android系统架构.................................................................................. 7
1.3.1 应用程序层(Applications).................................................. 8
1.3.2 应用程序框架层(Application Framework)....................... 8
1.3.3 系统库(Libraries)................................................................... 8
1.3.4 Android运行环境(Android Runtime)............................... 9
1.3.5 Linux内核(Linux Kernel)..................................................... 9
1.4 Android5新特性介绍............................................................................... 9
1.4.1 全新的Material design设计.................................................. 10
1.4.2 支持64位ART虚拟机............................................................. 10
1.4.3 全新的通知设计....................................................................... 11
1.4.4 以大屏幕呈现............................................................................ 11
1.4.5 以文档为中心............................................................................ 12
1.4.6 改进连接性能............................................................................ 12
1.4.7 高性能图形................................................................................ 12
1.4.8 功能更强的音频处理............................................................... 13
1.4.9 进一步完善的摄像头和视频处理......................................... 14
1.4.10 配置文件.................................................................................. 14
1.4.11 屏幕截图和共享..................................................................... 15
1.4.12 新型传感器.............................................................................. 15
1.4.13 Chromium WebView............................................................... 15
1.4.14 辅助功能和输入..................................................................... 16
1.4.15 可构建低电耗应用................................................................. 16
1.5 小结........................................................................................................... 16
1.6 思考题...................................................................................................... 17
第2章 搭建Android开发环境........................................................... 18
2.1 系统需求.................................................................................................. 18
2.2 软件安装.................................................................................................. 18
2.2.1 JDK的安装................................................................................ 18
2.2.2 Android SDK............................................................................. 19
2.2.3 Eclipse 和 ADT........................................................................ 20
2.2.4 创建AVD................................................................................... 24
2.2.5 AVD与真机的区别.................................................................. 24
2.3 Android SDK介绍................................................................................. 25
2.3.1 Android SDK目录结构........................................................... 25
2.3.2 Android.jar................................................................................. 27
2.3.3 Android API核心包................................................................. 27
2.3.4 Android API扩展包................................................................. 28
2.4 创建第一个Android应用程序........................................................... 28
2.4.1 创建HelloAndroid工程.......................................................... 28
2.4.2 编写代码.................................................................................... 29
2.4.3 运行应用程序............................................................................ 30
2.4.4 工程文件结构解析................................................................... 31
2.5 调试程序.................................................................................................. 32
2.5.1 设置断点.................................................................................... 32
2.5.2 调试............................................................................................. 33
2.6 小结........................................................................................................... 34
2.7 思考题...................................................................................................... 34
第3章 Android应用程序结构............................................................ 35
3.1 应用程序基本组成................................................................................. 35
3.1.1 Activity....................................................................................... 35
3.1.2 Service......................................................................................... 35
3.1.3 BroadcastReceiver.................................................................... 36
3.1.4 ContentProvider........................................................................ 36
3.1.5 Intent........................................................................................... 36
3.2 Activity..................................................................................................... 36
3.2.1 Activity的生命周期................................................................ 37
3.2.2 Activity的创建......................................................................... 39
3.2.3 启动Activity............................................................................. 40
3.2.4 关闭Activity............................................................................. 41
3.2.5 Activity数据传递..................................................................... 41
3.3 资源........................................................................................................... 43
3.4 Manifest文件.......................................................................................... 43
3.5 App Widgets........................................................................................... 46
3.5.1 基础知识.................................................................................... 46
3.5.2 在Manifest文件中声明App Widget.................................. 47
3.5.3 增加AppWidgetProviderInfo元数据.................................. 47
3.5.4 创建App Widget布局............................................................ 48
3.5.5 为App Widget添加边界........................................................ 49
3.5.6 使用AppWidgetProvider类.................................................. 49
3.5.7 接收App Widget的广播........................................................ 51
3.5.8 创建App Widget的配置Activity........................................ 51
3.5.9 使用配置Activity对App Widget进行更新...................... 52
3.6 进程和线程.............................................................................................. 53
3.6.1 进程(Processes).................................................................. 53
3.6.2 线程(Threads)...................................................................... 55
3.6.3 线程安全方法............................................................................ 58
3.6.4 进程间的通信............................................................................ 58
3.7 小结........................................................................................................... 59
3.8 思考题...................................................................................................... 59
第4章 Android GUI开发................................................................... 60
4.1 View和ViewGroup................................................................................. 60
4.2 使用XML定义视图.............................................................................. 61
4.3 布局........................................................................................................... 64
4.3.1 FrameLayout.............................................................................. 65
4.3.2 LinearLayout.............................................................................. 67
4.3.3 RelativeLayout........................................................................... 70
4.3.4 TableLayout............................................................................... 72
4.3.5 AbsoluteLayout........................................................................ 74
4.3.6 WebView.................................................................................... 76
4.4 常用Widget组件................................................................................... 78
4.4.1 创建Widget组件实例............................................................ 78
4.4.2 按钮(Button)........................................................................ 80
4.4.3 文本框(TextView)................................................................ 82
4.4.4 编辑框(EditText)................................................................. 83
4.4.5 多项选择按钮(CheckBox)................................................. 85
4.4.6 单项选择按钮组(RadioGroup)......................................... 89
4.4.7 下拉列表(Spinner).............................................................. 92
4.4.8 自动完成文本(AutoCompleteTextView)......................... 96
4.4.9 日期选择器和时间选择器(DatePicker和TimePicker). 99
4.4.10 进度条(ProgressBar)...................................................... 103
4.4.11 滚动视图(ScrollView)..................................................... 105
4.4.12 拖动条(SeekBar).............................................................. 107
4.4.13 评价条(RatingBar).......................................................... 109
4.4.14 图片视图(ImageView)和图片按钮(ImageButton) 112
4.4.15 图片切换器ImageSwitcher和图库Gallery...................... 115
4.4.16 网格视图(GridView)........................................................ 120
4.4.17 标签(Tab)......................................................................... 123
4.5 Menu和ActionBar............................................................................ 127
4.5.1 Options Menu.......................................................................... 127
4.5.2 Context Menu.......................................................................... 132
4.5.3 SubMenu.................................................................................. 133
4.6 Bitmap..................................................................................................... 136
4.7 对话框(Dialog)................................................................................ 138
4.7.1 AlertDialog............................................................................... 139
4.7.2 ProgressDialog........................................................................ 142
4.8 Toast和Notification............................................................................ 143
4.8.1 Toast......................................................................................... 143
4.8.2 Notification............................................................................... 145
4.9 界面事件响应....................................................................................... 148
4.9.1 事件监听器.............................................................................. 148
4.9.2 回调事件响应.......................................................................... 149
4.9.3 界面事件响应实例................................................................. 150
4.10 小结....................................................................................................... 154
4.11 思考题.................................................................................................. 154
第5章 电话和短信应用程序开发..................................................... 155
5.1 Intent..................................................................................................... 155
5.1.1 显式Intent和隐式Intent...................................................... 157
5.1.2 IntentFilter................................................................................ 157
5.2 拨号程序................................................................................................ 158
5.3 短信程序................................................................................................ 161
5.3.1 SMS简介................................................................................. 161
5.3.2 接收短信.................................................................................. 162
5.3.3 接收短信实例.......................................................................... 162
5.3.4 发送短信.................................................................................. 165
5.3.5 短信发送实例.......................................................................... 165
5.4 照相机程序............................................................................................ 169
5.5 小结......................................................................................................... 172
5.6 思考题.................................................................................................... 172
第6章 多媒体开发.......................................................................... 173
6.1 Service.................................................................................................... 173
6.1.1 Service的作用......................................................................... 173
6.1.2 Service的生命周期................................................................ 173
6.1.3 启动Service............................................................................. 173
6.2 BroadcastReceiver................................................................................ 175
6.3 音频......................................................................................................... 178
6.3.1 Android4.0支持的音频格式................................................. 179
6.3.2 音频播放器.............................................................................. 179
6.3.3 后台播放音频.......................................................................... 184
6.3.4 录音程序.................................................................................. 187
6.3.5 后台录制音频.......................................................................... 194
6.4 视频......................................................................................................... 197
6.4.1 Android4.0 支持的视频文件............................................... 197
6.4.2 视频播放器.............................................................................. 197
6.4.3 拍照程序.................................................................................. 205
6.4.4 录制视频.................................................................................. 213
6.5 小结......................................................................................................... 222
6.6 思考题.................................................................................................... 222
第7章 数据存储.............................................................................. 223
7.1 SharedPreferences................................................................................ 223
7.1.1 SharedPreferences简介......................................................... 223
7.1.2 使用SharedPreferences......................................................... 224
7.2 文件存储................................................................................................ 227
7.2.1 文件存储方式简介................................................................. 227
7.2.2 使用文件存储功能................................................................. 229
7.3 SQLite..................................................................................................... 232
7.3.1 SQLite数据库简介................................................................. 232
7.3.2 SQLite数据库操作................................................................. 234
7.3.3 SQLite数据库操作实例........................................................ 236
7.4 ContentProvider.................................................................................... 246
7.4.1 ContentProvider简介............................................................. 246
7.4.2 UriMatcher............................................................................... 249
7.4.3 访问系统提供的ContentProvider....................................... 249
7.4.4 自定义ContentProvider........................................................ 253
7.4.5 访问自定义ContentProvider................................................ 258
7.5 数据同步到云端................................................................................... 264
7.5.1 App Engine简介..................................................................... 264
7.5.2 创建可相互通信的Android和App Engine应用程序... 265
7.6 数据备份与恢复................................................................................... 272
7.6.1 Android数据备份与恢复简介............................................. 272
7.6.2 实现备份代理的步骤............................................................. 273
7.6.3 通过BackupAgent实现备份与恢复.................................. 274
7.6.4 通过BackupAgentHelper实现备份与恢复...................... 279
7.7 小结......................................................................................................... 282
7.8 思考题.................................................................................................... 283
第8章 网络编程.............................................................................. 284
8.1 HTTP通信............................................................................................. 284
8.1.1 访问URL指定资源................................................................ 288
8.1.2 使用GET方式获取网络服务............................................... 292
8.1.3 使用POST方式获取网络服务............................................ 296
8.2 Socket通信............................................................................................ 299
8.2.1 Socket简介.............................................................................. 300
8.2.2 Socket使用方法..................................................................... 300
8.2.3 Socket编程实例..................................................................... 302
8.3 Bluetooth通信...................................................................................... 306
8.3.1 Bluetooth简介........................................................................ 306
8.3.2 Android系统的蓝牙通信功能............................................. 307
8.3.3 蓝牙通信实例.......................................................................... 312
8.4 WIFI通信.............................................................................................. 332
8.4.1 WIFI简介................................................................................. 332
8.4.2 WIFI实例................................................................................. 333
8.4.3 WIFI Direct............................................................................... 339
8.4.4 创建WIFI Direct应用程序的步骤...................................... 341
8.4.5 WIFI Direct编程实例............................................................ 346
8.5 NFC......................................................................................................... 361
8.5.1 NFC简介.................................................................................. 361
8.5.2 Android NFC技术.................................................................. 362
8.5.3 使用前台发布系统................................................................. 364
8.6 USB......................................................................................................... 366
8.6.1 USB简介.................................................................................. 366
8.6.2 USB附件.................................................................................. 367
8.6.3 USB主机.................................................................................. 373
8.7 SIP........................................................................................................... 378
8.7.1 SIP简介.................................................................................... 378
8.7.2 相关API................................................................................... 379
8.7.3 Manifest文件配置................................................................. 379
8.7.4 创建SipManager对象........................................................... 380
8.7.5 注册SIP服务器...................................................................... 380
8.7.6 拨打音频电话.......................................................................... 382
8.7.7 接收呼叫.................................................................................. 383
8.8 小结......................................................................................................... 385
8.9 思考题.................................................................................................... 385
第9章 智能传感器.......................................................................... 386
9.1 获取位置信息....................................................................................... 386
9.1.1 LocationManager介绍.......................................................... 387
9.1.2 LocationProvider介绍........................................................... 387
9.1.3 使用GPS获取当前位置信息............................................... 389
9.2 使用Google地图服务......................................................................... 393
9.2.1 Google Map API简介............................................................ 393
9.2.2 申请Android Map API Key................................................. 394
9.2.3 使用Google Map显示当前位置......................................... 396
9.3 传感器.................................................................................................... 402
9.3.1 Android传感器简介.............................................................. 402
9.3.2 标识传感器.............................................................................. 404
9.3.3 传感器事件处理..................................................................... 405
9.4 运动传感器............................................................................................ 406
9.4.1 加速度传感器.......................................................................... 407
9.4.2 重力传感器.............................................................................. 407
9.4.3 陀螺仪....................................................................................... 407
9.4.4 线性加速传感器..................................................................... 409
9.4.5 旋转向量传感器..................................................................... 409
9.5 位置传感器............................................................................................ 409
9.5.1 磁场传感器.............................................................................. 410
9.5.2 方位传感器.............................................................................. 410
9.5.3 距离传感器.............................................................................. 411
9.6 环境传感器............................................................................................ 412
9.7 小结......................................................................................................... 414
9.8 思考题.................................................................................................... 414
第10章 绘 图............................................................................... 415
10.1 2D绘图................................................................................................. 415
10.1.1 获取Canvas对象................................................................. 415
10.1.2 使用自定义View绘图......................................................... 416
10.1.3 使用Bitmap绘图.................................................................. 419
10.1.4 使用SurfaceView绘制静态图像....................................... 422
10.1.5 使用SurfaceView绘制动态图像....................................... 425
10.2 Drawable............................................................................................... 431
10.2.1 从资源文件中创建Drawable对象.................................... 431
10.2.2 从XML文件中创建Drawable对象................................. 431
10.2.3 使用构造方法创建Drawable对象.................................... 432
10.3 3D绘图................................................................................................. 433
10.3.1 OpenGL ES简介.................................................................... 433
10.3.2 绘制3D图像实例.................................................................. 433
10.4 硬件加速.............................................................................................. 438
10.4.1 启用硬件加速........................................................................ 438
10.4.2 Android绘图模型................................................................ 439
10.5 RenderScript........................................................................................ 440
10.5.1 RenderScript综述................................................................. 441
10.5.2 使用动态分配的内存........................................................... 442
10.5.3 使用静态分配的内存........................................................... 445
10.6 小结....................................................................................................... 448
10.7 思考题.................................................................................................. 448
第11章 APP的本地化.................................................................... 449
11.1 国际化与本地化................................................................................. 449
11.2 手机区域设置..................................................................................... 449
11.3 未本地化的应用程序........................................................................ 451
11.4 本地化的应用程序............................................................................. 455
11.5 小结....................................................................................................... 461
11.6 思考题.................................................................................................. 461
第12章 文本与输入........................................................................ 462
12.1 剪贴板框架(Clipboard Framework)........................................... 462
12.2 剪贴板类(Clipboard Classes)..................................................... 463
12.3 将剪贴板内数据强制转换为文本................................................... 464
12.4 复制到剪贴板..................................................................................... 466
12.5 从剪贴板中粘贴................................................................................. 467
12.6 利用Content Provider复制复杂数据............................................ 471
12.7 设计有效的复制/粘贴功能.............................................................. 476
12.8 综合实例.............................................................................................. 477
12.9 小结....................................................................................................... 487
第13章 企业应用开发..................................................................... 488
13.1 设备管理API概述............................................................................ 488
13.1.1 设备管理工作过程............................................................... 488
13.1.2 设备管理策略........................................................................ 489
13.2 开发设备管理API应用.................................................................... 490
13.2.1 创建程序代码........................................................................ 491
13.2.2 DeviceAdminReceiver的子类............................................ 493
13.2.3 启用程序................................................................................ 494
13.2.4 管理策略................................................................................ 496
13.3 文本语音API...................................................................................... 500
13.4 TV应用................................................................................................ 504
13.4.1 创建电视应用项目(TV Project).................................... 504
13.4.2 添加TV支持库..................................................................... 506
13.4.3 建立TV应用......................................................................... 507
13.4.4 运行TV应用......................................................................... 507
13.4.5 TV应用实例.......................................................................... 509
13.5 可穿戴设备应用................................................................................. 514
13.5.1 可穿戴设备应用简介........................................................... 514
13.5.2 Android Wear项目搭建...................................................... 514
13.6 小结....................................................................................................... 519
第14章 应用程序发布..................................................................... 520
14.1 应用程序发布的步骤........................................................................ 520
14.2 为什么要为应用程序签名................................................................ 521
14.3 Android的签名策略.......................................................................... 522
14.4 导出未签名应用程序........................................................................ 523
14.5 生成签名文件..................................................................................... 524
14.5.1 使用ADT插件..................................................................... 524
14.5.2 使用keytool工具................................................................. 525
14.6 为应用程序签名................................................................................. 527
14.6.1 使用ADT插件..................................................................... 527
14.6.2 使用jarsigner工具............................................................... 529
14.7 使用zipalign工具优化应用程序.................................................... 530
14.8 发布到Google Play Store.................................................................. 531
14.9 小结....................................................................................................... 532
14.10 思考题....................................................................................................... 532