描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787302432661
目 录
第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
前 言
自2007年5月Android开源手机平台问世以来,已经经历了五年的发展。五年间,基于Android平台的智能手机迅速占领市场,成为当前受欢迎的手机操作系统。与之伴随的基于Android操作系统的应用程序需求多元化,Android开发技术成为市场求职的新宠。
为了帮助国内开发人员快速掌握Android开发技术,获取更好的就业机会,笔者基于Google公司2015年3月发布的Android
SDK 5.1(API Level 22)编写了本书,希望能够帮助广大读者在Android开发的道路上入门并且获得提高。
本书内容
本书共分为14章,由浅入深地讲解了Android开发的各个方面。本书在讲解过程中穿插以大量实例,希望藉此帮助读者更好地理解Android开发的过程,并获得提高。
本书的前3章为本书的基础,系统地介绍了Android系统的诞生和发展的过程、Android的系统框架、Android开发环境的搭建以及Android应用程序的基本组件,并且着重讲解了Android系统中人机交互的基本组件Activity的基本知识。
第4章讲解了Android开发过程中界面开发相关知识,包括在用户界面设计过程中常用的布局和组件,以及Android处理人机交互事件的方法。
第5章讲解了Intent的基本知识,并利用Intent实现了电话和短信应用程序开发功能。
第6章主要讲解了Android系统下的多媒体开发技术,实现了音频和视频的播放。通过Service和BroadcastReceiver实现了后台音频播放的相关功能,通过Android提供的硬件编程API实现了自己的录像和拍照应用程序。
第7章讲解了Android系统提供的四种数据存储方式,分别为SharedPreferces、文件存储方式、数据库存储方式和ContentProvider。活用这些数据存储方式,实现数据持久化,是应用程序开发过程中不可回避的问题。
第8章讲解了网络编程的相关知识,包括HTTP编程、Socket编程、BlueTooth编程和WIFI编程几方面。
第9章解决了利用Google提供的Google Map API开发自己的位置服务应用的方法。
第10章讲解了Android SDK提供的绘图API,包括2D绘图和3D绘图两个方面。绘图技术是动画制作和游戏开发的重要技术。
第11章讲解了Android系统应用程序开发的国际化和本地化技术,借助于该技术,可以使开发人员开发的应用程序不需要做任何的修改就可以在全球任意地区均正常运行。
第12章讲解了Android5提供的文本服务,如何使用系统提供的剪贴板功能。
第13章讲解了Android5的企业应用开发技术,包括设备管理API、文本语言API、TV应用开发和可穿戴技术几部分。
第14章讲解了应用程序发布的相关知识,包括应用程序签名的策略、签名文件的生成、如何对应用程序签名以及如何发布到Google Play Store。正确地发布自己开发的应用程序,是利用Android技术赚取桶金的前提条件。
为了方便读者的学习,本书提供了配套光盘。本书中使用的相关实例的源代码均可以在光盘中找到。由于本身篇幅有限,不可能将Android SDK 5相关知识全部讲解,读者可以参阅Android
SDK文档获取更多信息。
本书在编写时综合考虑了自学和教学两方面因素。本书不仅适合高校教学,学生自学,同时也适合有一定开发经验的程序员作为参考书使用。
代码下载
本书提供配套源代码、课件和开发环境下载,地址(注意数字和英文大小写)如下:
http://pan.baidu.com/s/1dEedkQX
读者需要使用IE浏览器下载,如果下载链接存在问题,请发送邮件联系电子邮箱[email protected],邮件主题为“Android 5代码”。
作者与致谢
本书由李波、史江萍、李丰鹏主编,王祥凤和孙士洁参与了本书的整理校对工作。参与本书编写的有孙宪丽、关颖、曾祥萍、代钦、衣云龙、吕海华、祝世东、夏炎、王玮、王晓强、郭胜龙、林宏刚等。在此对在本书的编写过程中提供帮助和支持的朋友表示感谢。同时,在此也感谢清华大学出版社图格事业部的编辑,他们为本书的出版做了大量的工作。
由于笔者水平有限,编写时间仓促,书中难免有疏漏之处,恳请各位读者批评指正。相关指导意见请发送至[email protected],在此笔者表示衷心的感谢。
编者
2016年1月
评论
还没有评论。