第1篇 Android基础编程 2
第1章 初识Android 2
1.1 为什么要开发Android应用程序 2
1.2 搭建Android开发环境 4
1.2.1 Android源码 4
1.2.2 Android整体架构 4
1.2.3 搭建Android开发环境 5
1.2.4 下载和安装JDK 6
1.2.5 下载和安装Eclipse和ADT 7
1.2.6 安装Android SDK 10
1.2.7 管理模拟器 11
1.3 编写Hello World 12
1.3.1 新建Hello World工程 13
1.3.2 运行Hello Wor1d工程 14
1.3.3 Hello World工程目录结构分析 14
1.3.4 AndroidManifest.xml文件分析 19
1.4 Android编程基础 21
第2章 活动(Activity) 26
2.1 创建活动 26
2.1.1 新建活动 27
2.1.2 新建用户界面 27
2.2 理解活动生命周期 31
2.2.1 活动生命周期 31
2.2.2 Log Cat的使用 32
2.3 活动的启动模式(android:launchMode) 38
2.4 活动运用样式和主题 41
2.5 隐藏活动标题栏 42
2.6 弹出对话框 42
2.7 弹出进度条对话框 46
第3章 意图和广播接收者 52
3.1 意图激活Activity 52
3.1.1 Activity之间的跳转 52
3.1.2 Intent传递数据 55
3.1.3 跳转至其他活动并获取结果 57
3.2 隐式意图 59
3.2.1 意图过滤器 60
3.2.2 Android隐式意图的解析 63
3.2.3 隐式意图使用实例 65
3.2.4 意图打开内置应用程序组件 72
3.3 广播接收者 73
3.3.1 XML方式注册广播接收者 73
3.3.2 代码方式注册广播接收者 76
第4章 用户界面 78
4.1 用户界面组件 78
4.1.1 View和ViewGroup 79
4.1.2 LinearLayout(线性布局) 80
4.1.3 AbsoluteLayout(绝对布局) 86
4.1.4 TableLayout(表格布局) 87
4.1.5 RelativeLayout(相对布局) 89
4.1.6 FrameLayout(单帧布局) 91
4.1.7 ScrollView(滚动视图) 92
4.1.8 Java代码方式布局 93
4.2 屏幕方向改变 95
4.2.1 理解屏幕方向的改变 95
4.2.2 适应方向改变 98
第5章 常用控件 100
5.1 基本界面控件 100
5.1.1 文本框(TextView)和编辑框(EditText) 100
5.1.2 按钮(Button)和图片按钮(ImageButton) 104
5.1.3 单选按钮(Radio Button)和单选按钮组(RadioGroup) 106
5.1.4 复选按钮(CheckBox) 108
5.1.5 状态开关按钮(ToggleButton) 109
5.1.6 图像视图(ImageView) 111
5.2 高级界面控件 113
5.2.1 自动完成文本框(AutoCompleteTextView) 113
5.2.2 下拉列表(Spinner) 114
5.2.3 日期选择器(DatePicker)和时间选择器(TimePicker) 116
5.2.4 进度条(ProgressBar)和拖动条(SeekBar) 118
5.2.5 星级评分条(RatingBar) 121
5.2.6 列表视图(ListView) 123
5.2.7 网格视图(GridView) 125
第6章 菜单、通知以及闹钟服务 129
6.1 菜单 129
6.1.1 选项菜单 129
6.1.2 上下文菜单 133
6.1.3 子菜单 136
6.2 通知 138
6.2.1 普通通知 138
6.2.2 自定义视图通知 142
6.2.3 高级通知技术 145
6.3 闹钟服务 147
第7章 Android事件处理 152
7.1 Android事件处理概述 152
7.1.1 基于监听器的事件处理机制 152
7.1.2 基于回调的事件处理机制 153
7.2 监听和处理用户单击事件 154
7.2.1 匿名内部类作为事件监听器类 154
7.2.2 内部类作为事件监听器类 155
7.2.3 Activity本身作为事件监听器类 156
7.3 监听和处理键盘事件 157
7.3.1 监听处理onKeyDown事件 157
7.3.2 监听处理onKeyUp事件 159
7.4 自定义监听器 160
7.5 基于回调的事件处理 163
7.5.1 创建自定义视图 163
7.5.2 回调处理onKeyDown事件 165
7.5.3 回调处理onKeyUp事件 166
7.5.4 回调处理触摸事件 166
7.5.5 Android的手势识别 170
第8章 数据存储 173
8.1 SharedPreferences(系统偏好设置) 173
8.1.1 SharedPreferences数据存储 173
8.2 PreferenceActivity 176
8.2.1 CheckBoxPreference 177
8.2.2 EditTextPreference 179
8.2.3 ListPreference 181
8.2.4 RingtonePreference 182
8.2.5 PreferenceCategory 183
8.3 文件存储 185
8.3.1 内部存储 186
8.3.2 外部存储 189
8.4 SQLite数据库存储 194
第9章 内容提供者(Content Provider) 207
9.1 Android内置内容提供者 207
9.1.1 内置内容提供者 208
9.1.2 使用内置内容提供者 208
9.2 自定义内容提供者 217
第10章 Android异步处理机制 228
10.1 子线程 228
10.1.1 实现Runnable接口 229
10.1.2 继承Thread类 230
10.1.3 Android创建子线程 231
10.2 Handler的使用 233
10.2.1 Android消息机制 233
10.2.2 Handler更新UI界面 234
10.2.3 Handler发送Runnable对象 237
10.2.4 runOnUiThread函数的使用 242
10.3 AsyncTask的使用 244
第2篇 Android高级编程 250
第11章 服务(Service) 250
11.1 Service介绍 250
11.1.1 Service启动方式 250
11.1.2 Service基础 251
11.2 本地服务 252
11.2.1 不需要与组件交互本地服务 252
11.2.2 本地服务结合广播接收者 257
11.2.3 与组件交互本地服务 263
11.2.4 Service与Thread的区别 268
11.3 远程服务 269
11.3.1 AIDL介绍 269
11.3.2 远程服务实例 269
第12章 LBS 276
12.1 定位 276
12.1.1 手机定位的方式 276
12.1.2 GPS定位 277
12.1.3 基站定位 281
12.1.4 WIFI定位 289
12.2 Google Maps 295
12.2.1 下载Google APIs 295
12.2.2 获取Google Maps API Key 296
12.2.3 MapView的使用 298
12.2.4 地图标记的使用 302
第13章 网络编程 307
13.1 网络获取数据 307
13.1.1 从网络上下载图片 307
13.1.2 从网络上下载文本数据 311
13.2 XML解析 314
13.2.1 DOM解析技术 314
13.2.2 SAX解析技术 318
13.2.3 Pull解析技术 322
13.3 JSON数据解析 326
13.4 HttpClient 331
13.4.1 HttpClient发送HttpGet请求 331
13.4.2 HttpClient发送HttpPost请求 334
13.5 Android调用WebService查询号码归属地 335
13.6 Android Tcp Socket 340
第14章 多媒体 345
14.1 音频播放 345
14.1.1 MediaPlayer的介绍 345
14.1.2 MediaPlayer播放音频 346
14.2 视频播放 349
14.2.1 自带播放器播放视频 350
14.2.2 Video View播放视频 351
14.2.3 MediaPlayer结合Surface View播放视频 353
14.3 音频录制 358
14.4 视频录制 363
14.5 TTS的使用 366
第15章 传感器 370
15.1 传感器入门 370
15.1.1 获取传感器类别 370
15.1.2 监听传感器事件 373
15.2 仿微信摇一摇功能 376
15.3 方向传感器 380
第16章 Android图形和图像 384
16.1 图片浏览器 384
16.1.1 Gallery 384
16.1.2 ImageSwitcher 387
16.2 访问图片 392
16.2.1 Drawable 392
16.2.2 Bitmap和BitmapFactory 393
16.3 内存优化 394
16.3.1 Drawable与Bitmap占用内存比较 395
16.3.2 decodeResource方法与decodeStream效率 397
16.3.3 防止内存溢出 398
16.4 2D绘图 404
16.4.1 View类 404
16.4.2 SurfaceView类 405
16.4.3 Canvas(画布)和Paint(画笔) 405
16.5 Android动画 410
16.5.1 补间动画 410
16.5.2 渐变动画(AlphaAnimation) 412
16.5.3 尺寸变化动画(ScaleAnimation) 414
16.5.4 位置变化动画(TranslateAnimation) 416
16.5.5 旋转变化动画(RotateAnimation) 417
16.5.6 逐帧动画(Frame Animation) 419
第17章 Android硬件接口 423
17.1 蓝牙基本介绍 423
17.1.1 蓝牙工作流程 423
17.1.2 蓝牙编程核心类 424
17.1.3 蓝牙权限 425
17.1.4 找寻周围蓝牙设备 425
17.2 Telephony介绍 428
17.2.1 使用Telephony Manager 428
17.2.2 广播接收者监听来电信息 430
17.2.3 广播接收者监听去电信息 433
17.3 系统和控制设备 435
17.3.1 设置声音模式 435
17.3.2 获取安装程序列表 437
17.3.3 控制设备振动 441
17.3.4 管理网络和WIFI连接 443
第18章 Android桌面组件 448
18.1 实时文件夹 448
18.1.1 使用实时文件夹 449
18.1.2 实时文件夹实例 450
18.2 快捷方式 462
18.3 桌面插件(Widget) 467
18.3.1 使用Widget 467
18.3.2 AppWidget框架类 467
18.3.3 桌面插件(Widget)实例 468
第3篇 Android实战应用 484
第19章 电子订餐系统 484
19.1 系统功能简介和架构设计 484
19.1.1 系统功能简介 484
19.1.2 系统架构设计 485
19.2 发送Http请求的工具类 486
19.3 用户注册 490
19.3.1 用户注册Servlet 490
19.3.2 用户模型 491
19.3.3 用户DAO 492
19.3.4 用户注册 494
19.4 用户登录 498
19.4.1 用户登录Servlet 498
19.4.2 用户登录 499
19.5 菜品展示 505
19.5.1 菜品展示Servlet 505
19.5.2 菜品模型 506
19.5.3 菜品DAO 508
19.5.4 菜品展示 514
19.6 菜品详情 522
19.7 购物车 526
19.7.1 购物车总计 526
19.7.2 修改购物车 539
19.7.3 下单 541
参考文献 551