第1章 认识一下Android 1
引言 1
1.1 什么是Android 1
1.1.1 Android是操作系统吗 1
1.1.2 Android是Linux操作系统的分支吗 1
1.1.3 Android是开发平台吗 1
1.1.4 Android是J2ME的一个实现吗 1
1.2 为什么推出Android 2
1.3 Android包含什么 4
1.3.1 Linux内核(Linux Kernel) 4
1.3.2 Android运行环境(Android Runtime) 5
1.3.3 库集合(Libraries) 5
1.3.4 应用框架(Application Framework) 5
1.3.5 应用(Applications) 6
1.4 为什么选择Android 6
1.4.1 巨大的市场前景 7
1.4.2 完全的开放特性 7
1.4.3 强大的应用开发支持 8
1.4.4 完整的产业链 8
1.5 为什么不是J2ME 8
1.6 开发Android需要准备什么 9
1.6.1 需要掌握Linux吗 9
1.6.2 需要掌握Java吗 9
1.6.3 需要一部Android设备吗 10
1.7 Android开发有哪些新特点 10
总结 11
第2章 搭建Android应用开发环境 12
引言 12
2.1 搭建开发环境 12
2.1.1 安装JDK 12
2.1.2 安装Eclipse 13
2.1.3 安装ADT插件 14
2.1.4 安装Android开发组件 18
2.2 创建Android测试应用 19
2.3 Android工程目录结构分析 21
2.4 在虚拟设备上测试应用 22
2.5 在真实设备上测试应用 25
2.6 利用DDMS调试Android应用 27
2.7 Android应用打包 29
总结 30
第3章 Activity组件 31
引言 31
3.1 什么是Activity 31
3.2 第一个Activity 32
3.3 Activity的运行状态 35
3.4 Activity的生命周期 36
3.5 Activity的管理——栈 44
3.6 Activity状态维护 46
3.7 Activity的窗口 47
3.7.1 全屏显示 47
3.7.2 定制窗口标题 48
3.7.3 为窗口应用风格 49
总结 50
第4章 界面布局 52
引言 52
4.1 用户界面结构 52
4.2 定义界面布局 53
4.3 声明界面布局 54
4.4 在代码中引用声明的UI组件 58
4.5 LayoutParams与布局属性 60
4.6 边距和刻度 62
4.6.1 边距 62
4.6.2 刻度 62
4.7 LinearLayout 63
4.8 TableLayout 68
4.9 RelativeLayout 71
4.10 FrameLayout 74
4.11 滚动处理 75
总结 82
第5章 资源管理 84
引言 84
5.1 什么是资源 84
5.2 资源存储 84
5.3 资源映射 87
5.4 资源命名 89
5.5 资源访问 90
5.6 常用资源类型 91
5.6.1 String 91
5.6.2 dimension 92
5.6.3 Drawable 93
5.6.4 XML 104
5.6.5 Raw 104
5.6.6 Style 105
5.7 资源国际化 106
5.8 Assets 107
总结 110
第6章 Intent组件 111
引言 111
6.1 什么是Intent 111
6.2 Intent的组成 111
6.3 Intent Filter 113
6.4 Intent解析机制 113
6.5 Intent的调用 115
6.6 在Intent中传递数据 120
6.7 在Intent中传递复杂对象 123
6.8 实现Activity之间的协同 126
6.9 常用的Intent组件 130
6.10 Intent选择 132
6.11 Intent与ShortCut 136
总结 144
第7章 Service 145
引言 145
7.1 什么是Service 145
7.2 Service的生命周期 145
7.3 Service的常用方法 147
7.4 启动模式下的Service 147
7.4.1 创建和使用Service 147
7.4.2 运行模式 152
7.4.3 多请求下的线程同步 154
7.5 IntentService 156
7.6 绑定模式下的Service 159
7.6.1 本地绑定 159
7.6.2 远程调用基础 163
7.6.3 远程绑定 164
7.6.4 传递复杂对象 170
7.7 安全与权限 175
7.8 运行机制 178
7.9 提高Service优先级 178
7.10 使用系统服务 184
总结 186
第8章 BroadcastReceiver 187
引言 187
8.1 广播消息 187
8.2 广播消息的处理流程 187
8.2.1 消息发送 187
8.2.2 注册BroadcastReceiver 188
8.2.3 处理消息 188
8.3 处理系统广播消息 189
8.4 深入消息处理 190
8.5 BroadcastReceiver的生命周期 199
总结 199
第9章 Content Provider 201
引言 201
9.1 基础知识 201
9.1.1 ContentResolver 201
9.1.2 数据模型 202
9.1.3 Cursor 202
9.1.4 URI 202
9.2 数据操作原理 203
9.2.1 查询 203
9.2.2 增加 205
9.2.3 更新 205
9.2.4 批量更新 205
9.2.5 删除 205
9.3 内置Content Provider 206
9.4 自定义Content Provider 208
总结 216
第10章 Fragment 218
引言 218
10.1 什么是Fragment 218
10.2 创建第一个Fragment 219
10.3 将Fragment添加到Activity 220
10.4 Fragment的生命周期 222
10.5 Back Stack 232
10.6 与Activity的交互 236
10.7 Fragment之间的交互 240
总结 244
第11章 基本UI组件 245
引言 245
11.1 TextView(标签文本) 245
11.2 EditText(文本输入框) 248
11.3 Button(按钮) 250
11.4 ImageButton(图像按钮) 254
11.5 ToggleButton(开关按钮) 257
11.6 RadioButton(单选按钮) 259
11.7 Progressbar(进度条) 262
11.8 CheckBox(检查框) 267
11.9 SeekBar(滑动条) 269
11.10 RatingBar(评分条) 271
11.11 Chronometer(秒表) 273
11.12 ZoomButton(缩放按钮) 276
11.13 CalendarView(日历视图) 278
总结 280
第12章 高级UI组件 281
引言 281
12.1 Adapter和AdapterView 281
12.2 Spinner(下拉列表) 282
12.3 ListView(列表) 284
12.4 GridView(网格) 293
12.5 Gallery(画廊) 295
12.6 SlidingDrawer(滑动抽屉) 301
12.7 AutoCompleteTextView(自动完成) 304
12.8 TabHost(分页视图) 309
总结 317
第13章 Menu 318
引言 318
13.1 了解一下Android菜单 318
13.1.1 选项菜单 318
13.1.2 上下文菜单 319
13.1.3 子菜单 320
13.2 选项菜单 320
13.2.1 定制选项菜单 320
13.2.2 动态刷新菜单 324
13.2.3 菜单与Intent 325
13.3 上下文菜单 327
13.4 利用Menu资源来创建菜单 330
13.5 Intent动态菜单选项 333
13.6 PopUpMenu 336
总结 339
第14章 ActionBar 340
引言 340
14.1 了解ActionBar 340
14.2 显示选项菜单 341
14.3 显示活动组件 344
14.4 实现Tab导航 345
14.5 实现下拉列表导航 349
14.6 使用应用图标 352
总结 355
第15章 通知 356
引言 356
15.1 概述 356
15.2 Toast 356
15.3 Notification 362
总结 366
第16章 Dialog 367
引言 367
16.1 概述 367
16.2 Activity对Dialog的托管 367
16.3 AlertDialog 368
16.4 Dialog的底层运行机制 373
16.5 把Activity变成Dialog 374
16.6 Dialog的事件处理 374
16.7 与Activity交互 374
16.8 自定义Dialog 378
16.9 几个特殊的Dialog 384
16.9.1 TimePickerDialog 384
16.9.2 DatePickerDialog 384
16.9.3 ProgressDialog 388
总结 390
第17章 Alarm 391
引言 391
17.1 概述 391
17.1.1 AlarmManager 391
17.1.2 PendingIntent 392
17.1.3 基本流程 392
17.2 简单Alarm示例 393
17.3 闹钟应用 397
17.4 情景模式定时切换 399
总结 407
第18章 触摸处理 408
引言 408
18.1 触摸屏概述 408
18.2 触摸处理 408
18.3 多点触控 413
总结 417
第19章 深入View 418
引言 418
19.1 View组件体系结构 418
19.1.1 View和ViewGroup 418
19.1.2 通用方法 419
19.2 样式与主题 419
19.2.1 样式 419
19.2.2 主题 422
19.3 事件处理 425
19.3.1 事件处理器 425
19.3.2 事件监听器 425
19.3.3 触摸模式 427
19.3.4 处理焦点 427
19.3.5 完整示例 428
总结 431
第20章 线程与进程 432
引言 432
20.1 进程 432
20.2 线程 433
20.3 线程间通信 434
20.4 AsyncTask 439
总结 443
第21章 Preferences 445
引言 445
21.1 概述 445
21.2 操作Preferences 445
21.2.1 获取Preferences对象 445
21.2.2 访问Preferences 446
21.2.3 更新Preferences 446
21.2.4 监听Preference变化 446
21.3 完整示例 447
21.4 监听Preference变化 449
21.5 PerferenceActivity 451
21.6 共享PreferenceActivity的数据 457
21.7 自定义Preference组件 459
总结 463
第22章 文件操作 465
引言 465
22.1 概述 465
22.2 一个读写Android文件的示例 466
22.3 中文乱码处理 471
22.4 操作资源文件 471
22.5 操作SD卡上的文件 472
22.6 文件监听器 476
总结 480
第23章 数据库 481
引言 481
23.1 SQLite简介 481
23.2 Android中的SQLite 482
23.2.1 SQLiteOpenHelper 482
23.2.2 SQLiteDatabase 483
23.2.3 SQLiteCursor 483
23.3 数据库读写示例 483
23.4 SQLiteStatement 489
23.5 事务支持 495
23.6 将数据库保存在SD卡上 495
总结 498
第24章 综合示例 499
引言 499
24.1 应用概述 499
24.2 总体设计 499
24.3 主要代码 500
24.4 资源准备 513
24.5 应用配置 514
24.6 运行演示 515
总结 517