第1章 Android概述 1
1.1什么是Android 2
1.1.1移动信息设备分类 2
1.1.2 Open Handset Alliance 和Android 3
1.2 Android简介 5
1.2.1 Android的历史 5
1.2.2 Android的版本介绍 6
1.2.3 Android的未来 8
1.3 Android平台的技术架构 9
1.4 Android应用程序的构成 11
1.4.1活动(Activity) 11
1.4.2广播(Broadcast) 11
1.4.3服务(Service) 11
1.4.4内容提供器(Content Provider) 12
1.5 Android的网上资源 12
1.6本章习题 13
第2章 Android开发环境与开发工具 15
2.1 Java开发组件的安装和配置 16
2.1.1安装Java开发工具包 17
2.1.2配置Java开发组件 18
2.2软件开发组件的下载和安装 20
2.2.1下载Android软件开发工具包 20
2.2.2安装Android软件开发工具包 21
2.3使用Android SDK开发Android应用 23
2.3.1 Android SDK的目录结构 23
2.3.2使用Android SDK文档 24
2.3.3 Android SDK中的示例 24
2.3.4使用Android SDK命令行 25
2.3.5使用Android模拟器 26
2.4 Eclipse的下载和安装 28
2.4.1下载Eclipse 29
2.4.2安装Eclipse 29
2.4.3安装和配置Android插件(ADT) 30
2.5使用Eclipse开发Android应用 34
2.5.1使用Eclipse创建Android项目 34
2.5.2 Eclipse中Android项目架构 35
2.5.3 Eclipse中Android项目的调试和运行 36
2.5.4创建一个Android应用:Welcome Android 37
2.6 Android常用的开发工具 39
2.6.1配置工具(AVD) 39
2.6.2 Android仿真器(Emulator) 39
2.6.3图形化调试工具(DDMS) 40
2.6.4命令行调试工具(ADB) 43
2.6.5资源打包工具(AAPT) 45
2.6.6获取日志工具(LogCat) 47
2.6.7视图层次工具(Hierarchy Viewer) 47
2.7上机实训 49
2.8本章习题 49
第3章Android编程基础 51
3.1语言要素 52
3.1.1注释 52
3.1.2标识符 56
3.1.3分隔符 57
3.1.4关键字 58
3.2数据类型 58
3.2.1基本数据类型 59
3.2.2引用数据类型 60
3.3运算符和表达式 61
3.3.1赋值运算符 62
3.3.2算术运算符 63
3.3.3关系运算符 64
3.3.4位运算符 65
3.3.5逻辑运算符 66
3.3.6其他运算符 67
3.3.7表达式与语句 68
3.4控制语句 68
3.4.1选择控制语句 68
3.4.2循环控制语句 70
3.4.3转移控制语句 71
3.5数组 72
3.5.1静态数组 72
3.5.2动态数组 72
3.6字符串 74
3.6.1字符串的定义 74
3.6.2常用的字符串方法 74
3.7类和对象 76
3.7.1类和对象的概念与定义 76
3.7.2成员变量和方法 77
3.7.3创建对象 78
3.7.4构造函数 78
3.8继承 79
3.8.1继承的实现 79
3.8.2成员变量的隐藏和方法的重写 80
3.8.3关键字super 80
3.9多态 81
3.10上机实训 82
3.11本章习题 83
第4章 Android GUI开发 85
4.1用户人机界面元素分类 86
4.1.1视图组件(View) 86
4.1.2视图容器组件(View Group) 86
4.1.3布局组件(Layout) 87
4.1.4布局参数(LayoutParams) 88
4.2常用widget组件 88
4.2.1文本框视图(TextView) 88
4.2.2按钮(Button) 92
4.2.3图片按钮(ImageButton) 93
4.2.4编辑框(EditText) 95
4.2.5多项选择(CheckBox) 98
4.2.6单项选择(RadioGroup) 101
4.2.7下拉列表(Spinner) 101
4.2.8自动完成文本(AutoCompleteTextView) 103
4.2.9日期选择器(DatePicker) 104
4.2.10时间选择器(TimePicker) 107
4.2.11数字时钟(DigitalClock) 109
4.2.12表状时钟(AnalogClock) 110
4.2.13进度条(ProgressBar) 113
4.2.14拖动条(SeekBar) 114
4.2.15 评分组件(RatingBar) 117
4.3视图组件 120
4.3.1图片视图(ImageView) 121
4.3.2滚动视图(ScrollView) 129
4.3.3网格视图(GridView) 134
4.3.4列表视图(ListView) 134
4.4菜单(Menu) 135
4.4.1上下文菜单(Context Menu) 135
4.4.2选项菜单(Options Menu) 138
4.4.3基于XML的菜单结构 140
4.5界面布局 141
4.5.1线性布局(LinearLayout) 142
4.5.2相对布局(RelativeLayout) 144
4.5.3表格布局(TableLayout) 144
4.5.4绝对布局(AbsoluteLayout) 145
4.6上机实训 147
4.7本章习题 147
第5章 Android编程基础 149
5.1 Activity的生命周期和栈管理机制 150
5.1.1 Activity生命周期 150
5.1.2 Activity栈管理机制 151
5.2解析Activity的实现 152
5.2.1创建Activity 153
5.2.2启动另外一个Activity 155
5.2.3 Activity的启动模式 157
5.2.4设置Activity许可 160
5.3多个Activity应用 163
5.3.1 Activity间的消息传递 163
5.3.2多Activity的Android应用 165
5.4上机实训 169
5.5本章习题 169
第6章Android Service组件 171
6.1 Service的作用 172
6.2解析Service的实现 173
6.2.1创建Service 173
6.2.2绑定一个已经存在的Service 174
6.2.3 Service的生命周期 175
6.3远程Service调用 180
6.3.1创建一个AIDL文件 181
6.3.2实现AIDL文件生成的 Java接口 184
6.3.3客户端调用 184
6.4系统服务 186
6.5上机实训 187
6.6本章习题 187
第7章Android桌面组件 189
7.1快捷方式 190
7.1.1显示快捷方式到桌面 190
7.1.2添加快捷方式到快捷方式列表 191
7.2 Widget开发 193
7.2.1 Widget介绍 193
7.2.2在桌面上添加Widget 194
7.2.3 Widget的开发流程 195
7.2.4 Widget的开发实例 196
7.3上机实训 204
7.4本章习题 204
第8章Android程序间的通信 205
8.1Intent 206
8.1.1 Intent介绍 206
8.1.2 Intent的启动机制 208
8.1.3常用Intent Action 211
8.2 Broadcast中的Intent 212
8.2.1发送广播Intent 212
8.2.2接受广播Intent 214
8.3应用实例详解:电话拨号程序 217
8.3.1实例分析 218
8.3.2实例实现 218
8.4上机实训 223
8.5本章习题 223
第9章Android图形库 225
9.1图形基础 226
9.2 2D绘图 228
9.2.1多边形绘图 228
9.2.2颜色和透明度 231
9.2.3旋转 232
9.3 3D绘图 233
9.3.1 3D空间 233
9.3.2纹理映射 234
9.3.3光照和透明度事件 236
9.4上机实训 238
9.5本章习题 238
第10章 Android资源与国际化 239
10.1Android资源 240
10.1.1 Android资源介绍 240
10.1.2 Android资源存储 241
10.1.3 Android资源分类 242
10.2资源的创建和使用 243
10.2.1创建资源 243
10.2.2使用自定义资源 244
10.2.3使用系统资源 259
10.3资源国际化 260
10.4上机实训 262
10.5本章习题 262
第11章 Android中的数据存储 265
11.1使用SharedPreference存储数据 266
11.1.1访问SharedPreferences的API 266
11.1.2使用XML存储SharedPreferences数据 269
11.2使用文件存储数据 270
11.2.1访问应用中的文件数据 271
11.2.2访问设备中独立的文件数据 274
11.3使用SQLite数据库存储数据 277
11.3.1 SQLite数据库简介 277
11.3.2 SQLite数据库操作 278
11.4使用ContentProvider 284
11.5上机实训 289
11.6本章习题 289
第12章Android通信业务开发 291
12.1 Wifi 292
12.1.1 WifiManager介绍 292
12.1.2 Socket和ServerSocket 293
12.1.3 Wifi的实现过程 294
12.1.4应用实例:Wifi Socket数据传输 295
12.2短消息 299
12.2.1 SmsManager介绍 299
12.2.2短信业务的实现过程 300
12.2.3应用实例:短信提示实现 301
12.3电话 305
12.3.1 TelephoneManager介绍 305
12.3.2电话业务实现过程 306
12.4上网 309
12.4.1使用WebView组件访问Internet 309
12.4.2使用 HttpComponents访问Internet 315
12.5上机实训 317
12.6本章习题 317
第13章Android GPS业务开发 319
13.1 GPS工作原理 320
13.2 Android Location-Based API简介 321
13.3 Android模拟器支持的GPS定位文件 322
13.3.1 KML 322
13.3.2 NMEA 323
13.4 LocationManager和LocationProvider 324
13.4.1 LocationManager 325
13.4.2 LocationProvider 326
13.5基于Google Map的应用 331
13.5.1将定位信息传递给Google Map 331
13.5.2使用MapView下载显示地图 331
13.6上机实训 334
13.7本章习题 334
第14章Android多媒体开发 337
14.1多媒体开发组件 338
14.1.1 MediaPlayer 338
14.1.2 MediaRecorder 340
14.1.3 VideoView 341
14.2播放音频媒体 342
14.3录制视频媒体 343
14.4播放视频媒体 345
14.5上机实训 347
14.6本章习题 348
第15章Android NDK技术 349
15.1 NDK介绍 350
15.2搭建NDK开发环境 351
15.2.1安装环境 351
15.2.2下载和安装NDK 352
15.2.3下载和安装Cygwin 353
15.2.4运行一个NDK程序 358
15.3 Android NDK开发 361
15.3.1设计JNI接口 361
15.3.2使用C/C+++实现本地方法 365
15.3.3编译文件实现 366
15.3.4编译NDK程序 369
15.4上机实训 370
15.5本章习题 371
第16章 常见错误与分析 373
16.1常见错误 374
16.2捕捉错误 376
16.2.1使用LogCat捕捉错误 376
16.2.2使用断点捕捉错误 378
16.2.3使用异常来捕捉错误 383
16.3上机实训 386
16.4本章习题 387
第17章Android综合实例开发——Android手机新浪微博 389
17.1 Android手机新浪微博功能需求 390
17.2 Android手机新浪微博设计和实现 391
17.2.1 OAuth认证 391
17.2.2核心控制类的实现(MainService) 399
17.2.3主项面的实现 405
17.2.4子页面的实现 411
17.3新浪微博功能演示 416