第1章 拓展Android市场的Java应用 2
1.1 Android来了 2
1.2 Android操作系统结构 3
1.2.1 Android应用程序 4
1.2.2 Android应用程序开发平台 4
1.2.3 Android的各类链接库 5
1.2.4 Android运行时环境 6
1.2.5 Linux操作系统核心 7
1.3 OESF扩增功能 7
1.3.1 OESF EM嵌入式项目 7
1.3.2 OESF针对的相关产业和设备 8
1.3.3 OESF工作小组 9
1.4 Android——Windows开发环境 10
1.5 在Android Market销售你的应用软件 12
1.5.1 如何上传应用软件到Android Market集市网站 13
1.5.2 如何从Android Market集市网站下载应用软件 14
第2章 安装Android SDK开发环境 16
2.1 Android SDK开发环境 16
2.1.1 安装Android SDK开发环境 16
2.1.2 快速了解安装Android SDK开发环境程序 17
2.1.3 符合安装Android SDK的必要条件 17
2.2 安装Android SDK开发环境 18
2.2.1 安装Android SDK软件开发包 18
2.2.2 安装Android开发工具ADT 20
2.2.3 设置Android开发工具ADT 24
2.2.4 创建Android虚拟设备AVD 25
2.2.5 验证Android SDK软件开发环境 28
2.2.6 安装Windows USB驱动程序 30
2.3 安装Android SDK前必要的软件 32
2.3.1 安装Java开发包JDK 33
2.3.2 安装Eclipse集成开发环境 34
2.4 更新到新版本Android开发工具ADT 35
2.5 删除Android开发工具ADT 36
2.6 Android——“Hello World!”验证 36
2.6.1 生成Android应用程序代码 36
2.6.2 执行Android应用程序 39
第3章 Android SDK开发平台应用 43
3.1 Android SDK开发平台应用 43
3.2 Android仿真器 43
3.2.1 控制Android仿真器 45
3.2.2 Android仿真器启动选项 46
3.3 Android仿真器专用SD存储卡 47
3.4 Android系统调试工具——ADB 48
3.4.1 adb命令的标准格式 49
3.4.2 侦测adb服务器的信息 49
3.4.3 安装与移除应用程序apk套件 50
3.4.4 Android操作系统命令行模式 51
3.4.5 上传文件到/sdcard或自/sdcard下载文件 51
3.4.6 变更TCP通信端口 52
3.4.7 启动和关掉adb服务器 52
3.4.8 Android仿真器的调试监控报告 52
3.5 Android调试监控服务系统DDMS 53
3.5.1 Eclipse开发环境提供DDMS 53
3.5.2 ddms批处理文件 55
第4章 认识Android基本单元——活动程序Activity 59
4.1 Android应用程序组成 59
4.1.1 活动程序——Activity 59
4.1.2 活动程序——Activity范例 59
4.2 执行状态迁移的生命周期(Lifecycle) 63
4.2.1 Android操作系统执行状态迁移的生命周期 64
4.2.2 活动程序——Activity执行状态迁移的生命周期范例 66
4.3 精通活动程序——Activity的控制功能 69
4.3.1 finish()方法 70
4.3.2 isfinishing()方法 70
4.3.3 onLowMemory()方法 70
第5章 活动程序Activity的切换——意图方法Intent 72
5.1 活动程序Activity和意图方法Intent 72
5.1.1 Android如何切换显示窗体 72
5.1.2 Chat Activities应用程序 73
5.2 建立Chat Activities应用程序 74
5.2.1 Chat Activities应用程序——窗体布局 74
5.2.2 Chat Activities应用程序——资源 75
5.2.3 Chat Activities应用程序——Manifest 76
5.3 Chat Activities应用程序实现 77
5.4 标准意图方法Intent 80
第6章 Android应用程序的Widget创作套件 84
6.1 Android应用程序的人机接口 84
6.1.1 视图(View) 84
6.1.2 视图组(ViewGroup) 84
6.2 Android应用程序窗体布局 85
6.2.1 布局编辑器——Android Layout Editor 85
6.2.2 资源编辑器——Android Resource Editor 86
6.3 视图(View)范例 86
6.3.1 按钮事件处理——Button 89
6.3.2 编辑框事件处理——Edit Text 93
6.3.3 时钟事件处理——AnalogClock/DigitalClock 96
6.3.4 进度条事件处理——ProgressBar 98
6.3.5 日期和时间事件处理——DatePicker/TimePicker 101
6.3.6 计时表事件处理——Chronometer 104
6.3.7 对话框事件处理——AlertDialog/Toast 105
6.3.8 下拉列表事件处理——SpinnerSelect 110
6.3.9 网格视图事件处理——GridView 112
6.3.10 视频播放事件处理——Video 114
6.3.11 相册事件处理——Gallery 116
6.3.12 拖动条事件处理——RatingBar/SeekBar 118
第7章 Android应用程序的Layout窗体布局 122
7.1 Android应用程序的窗体布局 122
7.1.1 表格布局——Table Layout 123
7.1.2 线性布局——Linear Layout 124
7.1.3 相对布局——Relative Layout 126
7.1.4 绝对布局——Absolute Layout 127
7.1.5 框架布局——Frame Layout 129
7.2 建立窗体布局Layout文件 130
7.2.1 建立显示窗体XML文件 130
7.2.2 设计显示窗体上的布局 130
7.3 显示窗体布局Layout范例 131
7.3.1 表格布局范例——Table Layout 134
7.3.2 线性布局范例——Linear Layout 136
7.3.3 相对布局范例——Relative Layout 138
7.3.4 绝对布局范例——Absolute Layout 140
7.3.5 窗体布局Layout的范例程序 142
第8章 Android应用程序的Menu菜单 145
8.1 Android应用程序的Menu菜单 145
8.1.1 选项菜单——Option Menu 145
8.1.2 上下文菜单——Context Menu 146
8.1.3 子菜单——Submenu 146
8.2 规划选项菜单 146
8.2.1 如何规划选项菜单 146
8.2.2 如何处理选项菜单的选项 147
8.2.3 处理选项菜单范例 148
8.3 规划上下文菜单 150
8.3.1 如何规划上下文菜单 151
8.3.2 如何处理上下文菜单的选项 151
8.3.3 处理上下文菜单范例 152
8.4 规划子菜单 154
8.4.1 如何规划子菜单 155
8.4.2 如何处理子菜单的选项 155
8.4.3 处理子菜单范例 155
第9章 Android数据存储和数据公开——SQLite 159
9.1 Android数据存储和共享 159
9.2 实现共享优先数据方法——Shared Preferences 159
9.2.1 共享优先数据存取方法 160
9.2.2 应用程序范例——离开时存储优先数据 165
9.3 数据库存储方法——SQLite Databases 167
9.3.1 SQLite数据库添加、更新、删除、检索方法 170
9.3.2 SQLite数据库关联操作方法 176
9.4 内容提供器方法——Content Providers 182
9.4.1 内容提供器公开数据方法 185
9.4.2 SQLite应用程序改用Content Provider来公开数据 190
9.5 文件存储方法——Files 198
9.5.1 文件写入、读出和拷贝方法 199
9.5.2 SQLite数据库和应用程序一起发布 204
9.6 网络存储方法——Networks 206
第10章 认识Service服务程序 219
10.1 Android应用程序组成 219
10.1.1 服务程序Service角色 219
10.1.2 广播接收器Broadcast Receiver角色 219
10.2 服务程序Service 220
10.2.1 启动服务程序Service 221
10.2.2 服务程序Service的执行状态迁移 221
10.2.3 创建一个服务程序Service 223
10.3 广播接收器BroadcastReceiver 223
10.3.1 实现广播事件 223
10.3.2 使用BroadcastReceiver广播接收器 224
10.4 服务程序和广播接收器整合 225
第11章 Android应用程序国际化 225
11.1 Android国际化 235
11.2 Android资源规划 236
11.2.1 创建Android资源 237
11.2.2 创建Android多语言资源 237
11.3 Android多语言范例 238
第12章 Android的Web视图——WebView 238
12.1 Android的Web视图 241
12.1.1 Android浏览器WebView 241
12.1.2 Android应用程序和JavaScript互动 241
12.2 浏览网页WebView.loadUrl实现方法 241
12.3 浏览网页WebView范例 243
12.3.1 直接下载Yahoo或Google网页 246
12.3.2 输入网址再下载网页 249
12.3.3 WebView网页向前和向后浏览历史管理——Back/Forward 251
12.3.4 WebView网页放大和缩小——Zoom in/Zoom out 255
12.4 触控网页Motion Gesture 258
12.5 Android应用程序和JavaScript脚本代码互操作方法 261
12.5.1 JavaScript脚本代码调用Android应用程序 262
12.5.2 JavaScript脚本代码的警告信息 263
12.5.3 Android应用程序调用JavaScript脚本代码 264
12.6 JavaScript脚本代码互联范例 266
12.6.1 JavaScript脚本代码调用Android应用程序范例 268
12.6.2 JavaScript脚本代码的警告信息范例 271
12.6.3 JavaScript脚本代码的语言翻译范例 273
12.6.4 Android应用程序调用JavaScript脚本代码范例 276
第13章 Android常驻程序——App Widget 276
13.1 Android的常驻程序App Widget体验 280
13.1.1 调用常驻程序App Widget 280
13.1.2 一般系统常驻程序和Android系统常驻程序 281
13.2 Android常驻程序的可用功能 281
13.3 常驻程序的生命周期 282
13.4 建立Android常驻程序方法 283
13.4.1 Android配置文件 284
13.4.2 常驻程序信息文件 285
13.4.3 Layout窗体布局文件 285
13.4.4 AppWidgetProvider常驻程序 286
13.4.5 常驻程序配置Activity 287
13.4.6 实现常驻程序生命周期——AppWidgetProvider 288
13.5 Android常驻程序范例 289
13.5.1 常驻程序生命周期——LifeCycle范例 291
13.5.2 指定间隔时间执行——SlideShow常驻程序范例 295
13.5.3 指定间隔时间执行——WhatTimelsltNow常驻程序范例 296
13.5.4 指定时刻时执行——AlarmManagerSample常驻程序范例 298
13.5.5 单击按钮时执行——ClickSample常驻程序范例 301
13.6 采用自定义的thread来处理常驻程序范例 304
13.7 采用timer task方式来处理常驻程序范例 306
第14章 Android应用程序GPS位置和GoogleMaps 306
14.1 GPS位置和GoogleMaps 309
14.1.1 GPS定位服务 309
14.1.2 Google地图外部库 309
14.2 取得GPS位置信息 309
14.2.1 LocationManager类 310
14.2.2 LocationListener接口 310
14.2.3 Location类 311
14.2.4 LocationProvider类 311
14.2.5 LocationGPS应用程序范例——GPS位置信息 311
14.2.6 在仿真器测试LocationGPS应用程序范例 314
14.3 取得Google地图外部库 316
14.3.1 开发Google地图应用程序前的工作 316
14.3.2 Google地图应用程序范例——从Google地图服务系统获得地图 318
14.4 使用MapView前先取得Maps API Key 320
14.4.1 使用Maps API Key的重点 320
14.4.2 产生keystore并取得认证指纹(MD5)码 320
14.4.3 经Google网站的签署取得Maps API Key 321
14.5 Google地图上贴上标记 323
14.5.1 Google地图应用程序范例——实现一个ItemizedOverlay类 323
14.5.2 Google地图应用程序范例——Google地图上贴上标记 325
14.6 按GPS位置来显示Google地图 327
第15章 Android音频和视频 331
15.1 Android音频和视频 331
15.2 播放视频在窗体布局上——VideoView 332
15.3 播放音频和视频——MediaPlayer 334
15.3.1 播放媒体来自本地资源 334
15.3.2 播放媒体来自系统文件和数据流 335
15.4 播放媒体应用程序范例MediaPlayer 335
15.4.1 MediaPlayerAudio应用程序范例 338
15.4.2 MediaPlayerVideo应用程序范例 342
15.5 播放JET内容 349
15.6 捕捉音频内容——MediaRecorder 350
15.7 Android文字到语音转换——TextToSpeech 351
第16章 Android 2D绘图和3D OpenGL绘图 351
16.1 Android操作系统的绘图 355
16.1.1 二维绘图 355
16.1.2 三维绘图 355
16.2 绘制二维图形的方法 355
16.3 图像显示对象——Drawable 356
16.3.1 从项目资源来创建图像 356
16.3.2 从项目资源来创建图像的范例 358
16.3.3 从XML文件来定义图像 359
16.3.4 从XML文件定义图像——TransitionDrawable范例 361
16.3.5 形状图像绘制对象——ShapeDrawable 362
16.4 创建二维动画——Animation 364
16.4.1 补间动画绘制对象——Tween Animation 364
16.4.2 补间动画绘制对象——Tween Animation范例 367
16.4.3 帧动画绘制对象——Frame Animation 371
16.4.4 帧动画绘制对象——Frame Animation范例 372
16.5 直接在画布描绘图形——Canvas 376
16.5.1 画布描绘图形——View 376
16.5.2 画布描绘图形———View范例 377
16.5.3 画布高速描绘——SurfaceView 379
16.6 3D OpenGL绘图 380
第17章 Android高速描绘——SurfaceView 380
17.1 Android高速描绘SurfaceView 382
17.1.1 高速描绘画布SurfaceView方法——SurfaceView.getHolder 382
17.1.2 高速描绘画布SurfaceView方法——SurfaceHolder.Callback 382
17.1.3 SurfaceView类和方法 383
17.1.4 各类描绘方式和方法 384
17.1.5 SurfaceView类的按键输入事件 386
17.2 高速描绘SurfaceView范例 386
17.2.1 高速描绘画布SurfaceView方法——SurfaceView.getHolder范例 388
17.2.2 高速描绘画布SurfaceView方法——SurfaceHolder.Callback范例 390
17.2.3 平滑锯齿方法——AntiAlias范例 392
17.2.4 描绘方式和方法的范例——简单Game 395
17.2.5 描绘画布的保存和回复范例——Canvas方法 405
17.2.6 按键事件处理范例——Key 408
17.2.7 触控和轨迹球事件处理范例——Touch & Trackball 410
17.2.8 透明事件范例——Transparent 412
17.2.9 半透明事件范例——Translucent 415
第18章 Android动态壁纸——Live Wallpaper 415
18.1 Android动态壁纸Live Wallpaper 421
18.1.1 动态壁纸Live Wallpaper架构 421
18.1.2 WallpaperService和WallpaperService.Engine方法 421
18.2 Android动态壁纸设置 422
18.2.1 简单动态壁纸Live Wallpaper设置 422
18.2.2 调整参数的动态壁纸Live Wallpaper设置 424
18.3 Android动态壁纸应用程序设计 428
18.3.1 简单动态壁纸Live Wallpaper应用程序设计 428
18.3.2 调整参数的动态壁纸Live Wallpaper应用程序设计 430
18.4 Android动态壁纸应用程序范例——火焰之舞 430
18.5 Android动态壁纸应用程序范例——动画参数设置 434
18.6 Android动态壁纸应用程序范例——照片自动切换 439
18.7 Android动态壁纸应用程序范例——触控切换照片 444
第19章 Android蓝牙通信——Bluetooth 444
19.1 Android蓝牙通信Bluetooth 450
19.1.1 Android蓝牙通信Bluetooth基本架构 450
19.1.2 定义蓝牙通信Bluetooth权限——Permission 451
19.2 建立蓝牙通信Bluetooth 451
19.2.1 设置蓝牙通信——Setting up Bluetooth 452
19.2.2 发现蓝牙设备——Finding Devices 453
19.2.3 连接蓝牙设备——Connecting Devices 455
19.2.4 管理蓝牙连接——Managing a Connection 459
第20章 Android触控屏幕——Gesture 459
20.1 Android触控屏幕Gesture 463
20.2 Android触控屏幕Gesture处理顺序 464
20.3 Android触控屏幕Gesture范例 465
第21章 Android感应检测——Sensor 465
21.1 Android感应检测Sensor 469
21.2 Android感应检测管理——SensorManager 469
21.3 Android加速度感应检测——Accelerometer 471
21.4 Android磁场感应检测——Magnetic 472
21.5 Android方位感应检测——Orientation 472
21.6 Android温度感应检测——Temperature 473
21.7 Android感应检测Sensor范例 473
21.7.1 做一个指北针——Compass范例 475
21.7.2 Android方位感应检测——Orientation范例 478
21.7.3 Android加速度感应检测——Accelerometer范例 483
21.7.4 Android磁场感应检测——Magnetic范例 487
21.7.5 Android温度感应检测——Temperature范例 490
第22章 Android OS 2.3姜饼报到 490
22.1 Android OS 2.3姜饼Gingerbread版本 495
22.1.1 更简单的接口与更容易的操作 495
22.1.2 更直觉的文字输入与更快的操作速度 495
22.1.3 多点触控输入 496
22.1.4 强化文字复制与剪贴 496
22.1.5 增强的电源管理功能 497
22.1.6 对应用程序的控制 497
22.1.7 内建网络电话VOIP的SIP stack 498
22.1.8 支持近距离无线通信NFC 498
22.1.9 下载应用程序管理 499
22.1.10 提供多个相机,可选择前后相机拍摄 499
22.1.11 加强手机执行游戏的性能 499
22.1.12 加入陀螺仪和数种新传感器的API 499
22.1.13 加强多媒体音场效果 500
22.1.14 支持新的媒体格式 500
22.2 Android OS 2.3提供给开发人员的新功能 500
22.2.1 加强开发游戏软件的功能 501
22.2.2 提供丰富的多媒体功能 502
22.2.3 提供通信的新方法和格式 502
22.3 Android OS 2.3版本新的类包 503
第23章 Android手机必备的照相机 503
23.1 Android照相机原理 505
23.1.1 信息配置文件“Androidmanifest.xml” 505
23.1.2 相机应用程序拍摄的步骤 505
23.2 设计一个照相机软件 507
23.2.1 预览相机所拍摄影像 507
23.2.2 相机自动焦聚和拍摄照片 509
23.2.3 配置相机特性的参数 511
23.2.4 贴图在拍摄的影像上 511
23.3 Android OS 2.3所增加照相机新功能 512
23.3.1 读取实体相机的号码 512
23.3.2 读取实体相机的信息 513
23.3.3 开启指定的实体相机 513
23.4 照相机软件基本操作范例 513
23.4.1 Camera应用程序范例——Camera Preview 515
23.4.2 Camera应用程序范例——Camera Auto Focus 522
23.4.3 Camera应用程序范例——Camera Parameters Setting 526
23.4.4 Camera应用程序范例——Over on Photo 535
23.5 设计自己的相机应用软件范例 537
第24章 设计Android网络电话VolP-SIP 537
24.1 网络电话VoIP 544
24.1.1 第三方开发公司提供的网络电话VoIP 544
24.1.2 网络电话VoIP基本概念 544
24.1.3 网络电话VoIP的运作方式 546
24.2 采用SIP设计Android网络电话VoIP 547
24.2.1 信息设置文件“Androidmanifest.xml” 548
24.2.2 采用SIP设计网络电话VoIP的方法 548
24.3 采用SIP开发Android无线电对讲机应用程序范例 549
附录A Android应用程序范例光盘使用说明 565
A.1 范例光盘 565
A.2 Android SDK开发环境 565
A.3 进入Eclipse集成开发环境 565
A.4 Android应用程序范例 566
A.4.1 生成Android应用程序的项目 566
A.4.2 编译和执行Android应用程序范例 568