第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 Linu×操作系统核心 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集市网站 12
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开发环境程序 16
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 55
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 finishO方法 70
4.3.2 isfinishingO方法 70
4.3.3 onLowMemoryO方法 70
第5章 活动程序Activity的切换——意图方法lntent 72
5.1活动程序Activity和意图方法lntent 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标准意图方法lntent 80
第6章 Android应用程序的Widget创作套件 84
6.1 Android应用程序的人机接口 84
6.1.1视图(View) 84
6.1.2视图组(ViewGroup) 84
6.2Android应用程序窗体布局 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编辑框事件处理——EditTe×t 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 119
第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建立显示窗体×ML文件 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上下文菜单——Conte×t 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数据库添加、更新、删除、检索方法 171
9.3.2 SQLite数据库关联操作方法 177
9.4内容提供器方法——Content Providers 183
9.4.1内容提供器公开数据方法 186
9.4.2 SQLite应用程序改用Content Provider来公开数据 191
9.5文件存储方法——Files 199
9.6网络存储方法——Networks 200
第10章 认识S6rvice服务程序 202
10.1 Android应用程序组成 202
10.1.1服务程序Service角色 202
10.1.2广播接收器Broadcast Receiver角色 202
10.2服务程序Service 203
10.2.1启动服务程序Service 204
10.2.2服务程序Service的执行状态迁移 204
10.2.3创建一个服务程序Service 206
10.3广播接收器BroadcastReceiver 206
10.3.1实现广播事件 206
10.3.2使用BroadcastReceiver广播接收器 207
10.4服务程序和广播接收器整合 208
第11章Android应用程序国际化 218
11.1 Android国际化 218
11.2 Android资源规划 219
11.2.1创建Android资源 220
11.2.2创建Android多语言资源 220
11.3 Android多语言范例 221
第12章 Android的Web视图——WebView 221
12.1 Android的Web视图 224
12.1.1 Android浏览器WebView 224
12.1.2 Android应用程序和JavaScript互动 224
12.2浏览网页WebView.loadUrl实现方法 224
12.3浏览网页WebView范例 226
12.3.1直接下载Yahoo或Google网页 229
12.3.2输入网址再下载网页 232
12.3.3 WebView网页向前和向后浏览历史管理——Back/Forward 234
12.3.4 WebView网页放大和缩小——Zoom in/Zoom out 238
12.4触控网页Motion Gesture 241
12.5 Android应用程序和JavaScript脚本代码互操作方法 244
12.5.1 JavaScript脚本代码调用Android应用程序 245
12.5.2 JavaScript脚本代码的警告信息 246
12.5.3 Android应用程序调用JavaScript脚本代码 247
12.6 JavaScript脚本代码互联范例 249
12.6.1 JavaScript脚本代码调用Android应用程序范例 251
12.6.2 JavaScript脚本代码的警告信息范例 254
12.6.3 JavaScript脚本代码的语言翻译范例 256
12.6.4 Android应用程序调用JavaScript脚本代码范例 259
第13章Android常驻程序——App Widget 263
13.1 Android的常驻程序App Widget体验 263
13.1.1调用常驻程序App Widget 263
13.1.2一般系统常驻程序和Android系统常驻程序 264
13.2 Android常驻程序的可用功能 264
13.3常驻程序的生命周期 265
13.4建立Android常驻程序方法 266
13.4.1Android配置文件 267
13.4.2常驻程序信息文件 268
13.4.3Layout窗体布局文件 268
13.4.4AppWidgetProvider常驻程序 269
13.4.5常驻程序配置Activity 270
13.4.6实现常驻程序生命周期——AppWidgetProvider 271
13.5 Android常驻程序范例 272
13.5.1常驻程序生命周期——LifeCycle范例 274
13.5.2指定间隔时间执行——SlideShow常驻程序范例 278
13.5.3指定间隔时间执行——WhatTimelsltNow常驻程序范例 279
13.5.4指定时刻时执行——Alarm ManagerSample常驻程序范例 281
13.5.5单击按钮时执行——ClickSample常驻程序范例 284
第14章 Android应用程序GPS位置和GoogleMaps 288
14.1 GPS位置和GoogleMaps 288
14.1.1 GPS定位服务 288
14.1.2 Google地图外部库 288
14.2取得GPS位置信息 288
14.2.1 LocationManager类 289
14.2.2 Location Listener接口 289
14.2.3 Location类 290
14.2.4 Location Provider类 290
14.2.5 LocationGPS应用程序范例——GPS位置信息 290
14.2.6在仿真器测试LocationGPS应用程序范例 293
14.3取得Google地图外部库 295
14.3.1开发Google地图应用程序前的工作 295
14.3.2 Google地图应用程序范例——从Google地图服务系统获得地图 297
14.4使用MapView前先取得Maps APl Key 299
14.4.1使用Maps APl Key的重点 299
14.4.2产生keystore并取得认证指纹(MD5)码 299
14.4.3经Google网站的签署取得Maps APl Key 300
14.5 Google地图上贴上标记 302
14.5.1 Google地图应用程序范例——实现一个ltemizedOverlay类 302
14.5.2 Google地图应用程序范例——Google地图上贴上标记 304
14.6按GPS位置来显示Google地图 306
第15章 Android音频和视频 310
15.1 Android音频和视频 310
15.2播放视频在窗体布局上——VideoView 311
15.3播放音频和视频——MediaPlayer 313
15.3.1播放媒体来自本地资源 313
15.3.2播放媒体来自系统文件和数据流 314
15.4播放媒体应用程序范例MediaPlayer 314
15.4.1 MediaPlayerAudio应用程序范例 317
15.4.2 MediaPlayerVideo应用程序范例 321
15.5播放JET内容 328
15.6捕捉音频内容——MediaRecorder 329
15.7 Android文字到语音转换——Te×tToSpeech 330
第16章 Android 2D绘图和3D OpenGL绘图 334
16.1 Android操作系统的绘图 334
16.1.1二维绘图 334
16.1.2三维绘图 334
16.2绘制二维图形的方法 334
16.3图像显示对象——Drawable 335
16.3.1从项目资源来创建图像 335
16.3.2从项目资源来创建图像的范例 337
16.3.3从×ML文件来定义图像 338
16.3.4从×ML文件定义图像——TransitionDrawable范例 340
16.3.5形状图像绘制对象——ShapeDrawable 341
16.4创建二维动画——Animation 343
16.4.1补间动画绘制对象——Tween Animation 343
16.4.2补间动画绘制对象Tween Animation范例 346
16.4.3帧动画绘制对象——Frame Animation 350
16.4.4帧动画绘制对象——Frame Animation范例 351
16.5直接在画布描绘图形——Canvas 355
16.5.1画布描绘图形——View 355
16.5.2画布描绘图形——View范例 356
16.5.3画布高速描绘——SurfaceView 358
16.6 3DOpenGL绘图 359
第17章Android高速描绘——SurfaceView 359
17.1 Android高速描绘SurfaceView 361
17.1.1高速描绘画布SurfaceView方法——SurfaceView.getHolder 361
17.1.2高速描绘画布SuefaceView方法——SurfaceHolder.Callback 361
17.1.3 SurfaceView类和方法 362
17.1.4各类描绘方式和方法 363
17.1.5 SurfaceView类的按键输入事件 365
17.2高速描绘SurfaceView范例 365
17.2.1高速描绘画布SurfaceView方法——SurfaceView.getHolder范例 367
17.2.2高速描绘画布SurfaceView方法——SurfaceHolder.Callback范例 369
17.2.3平滑锯齿方法——AntiAlias范例 371
17.2.4描绘方式和方法的范例——简单Game 374
17.2.5描绘画布的保存和回复范例——Canvas方法 384
17.2.6按键事件处理范例——Key 387
17.2.7触控和轨迹球事件处理范例——Touch & Trackball 389
17.2.8透明事件范例Transparent 391
17.2.9半透明事件范例——Translucent 394
第18章 Android动态壁纸——Live Wallpaper 394
18.1 Android动态壁纸Live Wallpaper 400
18.1.1动态壁纸Live Wallpaper架构 400
18.1.2WallpaperService和WallpaperService…Engine方法 400
18.2 Android动态壁纸设置 401
18.2.1简单动态壁纸Live Wallpaper设置 401
18.2.2调整参数的动态壁纸Live Wallpaper设置 403
18.3 Android动态壁纸应用程序设计 407
18.3.1简单动态壁纸Live Wallpaper应用程序设计 407
18.3.2调整参数的动态壁纸Live Wallpaper应用程序设计 409
18.4Android动态壁纸应用程序范例——火焰之舞 409
18.5Android动态壁纸应用程序范例——动画参数设置 413
18.6 Android动态壁纸应用程序范例——照片自动切换 418
18.7 Android动态壁纸应用程序范例——触控切换照片 423
第19章 Android蓝牙通信——Bluetooth 423
19.1 Android蓝牙通信Bluetooth 429
19.1.1 Android蓝牙通信Bluetooth基本架构 429
19.1.2定义蓝牙通信Bluetooth权限——Permission 430
19.2建立蓝牙通信Bluetooth 430
19.2.1设置蓝牙通信——Setting up Bluetooth 431
19.2.2发现蓝牙设备——Finding Devices 432
19.2.3连接蓝牙设备——Connecting Devices 434
19.2.4管理蓝牙连接——Managing a Cnnection 438
第20章 Android触控屏幕——Gesture 442
20.1 Android触控屏幕Gesture 442
20.2 Android触控屏幕Gesture处理顺序 443
20.3 Android触控屏幕Gesture范例 444
第21章 Android感应检测——Sensor 448
21.1 Android感应检测Sensor 448
21.2 Android感应检测管理——SensorManager 448
21.3 Android加速度感应检测——Accelerometer 450
21.4 Android磁场感应检测——Magnetic 451
21.5 Android方位感应检测——Orientation 451
21.6 Android温度感应检测——Temperature 452
21.7 Android感应检测Sensor范例 452
21.7.1做一个指北针——Compass范例 454
21.7.2 Android方位感应检测——Orientation范例 457
21.7.3 Android加速度感应检测一Accelerometer范例 462
21.7.4 Android磁场感应检测——Magnetic范例 466
21.7.5 Android温度感应检测——Temperature范例 469
附录A Android应用程序范例光盘使用说明 474
A.1范例光盘 474
A.2Android SDK开发环境 474
A.3进入Eclipse集成开发环境 474
A.4Android应用程序范例 475
A.4.1生成Android应用程序的项目 475
A.4.2编译和执行Android应用程序范例 477