第1章 步入Android的世界 1
1.1 Android平台简介 1
1.2 Android架构 3
1.3 万丈高楼平地起——Android开发环境的搭建 5
1.3.1 Java环境的搭建 5
1.3.2 安装Eclipse开发工具 6
1.3.3 下载Android SDK 6
1.3.4 安装ADT插件 8
1.4 Android模拟器等工具的使用 9
1.4.1 Android模拟器的创建 9
1.4.2 Android调试桥ADB的使用 10
1.4.3 DDMS的使用 11
1.5 创建Hello Android 13
1.6 Android应用程序的调试方法 14
1.6.1 日志输出 14
1.6.2 Debug调试 16
1.6.3 让程序定行更顺畅——单元测试 18
1.7 如何发布Android应用程序 20
1.8 Android金矿离你不会太远——Android生财之道 21
1.9 本章小结 22
第2章 Android应用程序的构成 23
2.1 Android应用程序的目录结构 23
2.2 资源的管理与使用 26
2.2.1 资源存放的位置和种类 27
2.3 Android组件介绍 28
2.3.1 屏幕组件——Activity 28
2.3.2 服务组件——Service 28
2.3.3 广播接收组件——Broadcast Receiver 28
2.3.4 内容提供者——Content Provider 29
2.4 本章小结 29
第3章 我的界面我作主——Activity和布局管理器 30
3.1 Activity应用详解与实例 30
3.1.1 Activity中的任务和历史栈 30
3.1.2 Activity的创建 30
3.1.3 Activity的生命周期 32
3.2 用户界面的构成 36
3.3 界面布局 37
3.3.1 布局的配置方法 37
3.3.2 布局的属性 38
3.4 Android中使用的尺寸单位 40
3.5 线性布局(LinearLayout) 41
3.6 相对布局(RelativeLayout) 43
3.7 表格布局(TableLayout) 45
3.8 框架布局(FrameLayout) 48
3.9 绝对布局(AbsoluteLayout) 49
3.10 层级观察器(Hierarchy Viewer) 50
3.11 布局优化分析工具layoutopt 52
3.12 Android界面布局的优化:<merge/>、<include/>和<ViewStub/>标签的使用 52
3.13 本章小结 56
第4章 Android用户界面 57
4.1 文本控件TextView 57
4.2 文本编辑框EditText 61
4.3 按钮控件Button和事件处理 63
4.4 按钮控件Button和显示效果 66
4.5 按钮控件Button和可延伸的图像 68
4.6 图片按钮控件ImageButton 73
4.7 单选按钮(RadioGroup和RadioButton) 75
4.8 多选按钮(CheckBox) 77
4.9 开关按钮(ToggleButton) 80
4.10 日期时间控件(DatePicker和TimePicker) 81
4.11 图像显示控件ImageView 84
4.12 列表(ListView)控件和适配器(Adapter) 87
4.12.1 ListView使用ArrayAdapter 88
4.12.2 ListView使用SimpleAdapter 90
4.12.3 ListView使用BaseAdapter与ListView的优化 93
4.13 ListActivity 97
4.14 ListView的美化 100
4.15 下拉列表(Spinner) 100
4.16 网格视图GridView与应用实例 103
4.17 Gallery 107
4.18 抽屉(SlidingDrawer) 115
4.19 进度条(ProgressBar) 118
4.19.1 不确定进度条 119
4.19.2 确定进度条 120
4.20 可拖动进度条(SeekBar) 123
4.21 格式化界面:style和theme 125
4.22 对话框(AlertDialog) 126
4.23 进度条对话框(ProgressDialog) 136
4.24 弹出窗口(PopupWindow) 138
4.25 弹出消息(Toast) 141
4.26 状态栏提醒(Notification) 142
4.27 菜单(menu) 146
4.27.1 常用的菜单Options Menu与实例 146
4.27.2 子菜单SubMenu与实例 149
4.27.3 上下文菜单Context Menu与实例 150
4.28 标签控件TabWidget与实例 151
4.29 使用handler异步更新UI 154
4.30 本章小结 156
第5章 图形与动画 157
5.1 Android中的图形 157
5.1.1 View类和自定义控件与实例 157
5.1.2 画笔Paint和画布Canvas类与实例 159
5.1.3 几何图形的绘制与实例 160
5.1.4 贴图的绘制与实例 162
5.2 动画与实例 170
5.2.1 Animation动画 170
5.2.2 Frame动画 175
5.2.3 Gif动画 177
5.3 本章小结 178
第6章 组件通信与广播消息 179
6.1 Intent对象 179
6.2 显式启动Activity并传递数据 180
6.3 隐式启动Activity和Intent过滤器IntentFilter 183
6.4 获取Activity的返回值 187
6.5 广播和广播接收者(Broadcast Receiver) 191
6.6 本章小结 197
第7章 多媒体 198
7.1 多媒体开发 198
7.1.1 多媒体核心OpenCore 199
7.1.2 媒体播放器(MediaPlayer) 200
7.1.3 媒体录制MediaRecorder 206
7.1.4 播放视频VideoView 213
7.2 相机设置 215
7.3 本章小结 219
第8章 服务Service 220
8.1 Service基本知识 220
8.1.1 Service简介 220
8.1.2 生命周期 220
8.1.3 绑定Context 223
8.2 AIDL远程服务 225
8.2.1 AIDL简介 225
8.2.2 程序间的通信 225
8.3 系统服务 228
8.3.1 获取系统服务 228
8.4 本章小结 229
第9章 数据存储 230
9.1 轻量级的存储SharedPreferences 230
9.2 文件存储 233
9.3 数据库SQLite 237
9.3.1 SQLite简介 237
9.3.2 SQLite管理工具 237
9.3.3 用SQLiteDatebase进行数据库操作 238
9.3.4 管理数据库SQLiteOpenHelper 241
9.4 数据交换ContentProvider 254
9.4.1 ContentProvider的创建 254
9.4.2 使用ContentProvider 256
9.4.3 ContentProvider实例 258
9.5 本章小结 264
第10章 Android网络 265
10.1 基本网络概念 265
10.1.1 网络 265
10.1.2 网络的分层 266
10.1.3 IP、TCP和UDP 268
10.1.4 Internet 269
10.2 HTTP基础 269
10.2.1 什么是HTTP 269
10.2.2 Java标准网络接口 271
10.2.3 Apache网络接口 277
10.2.4 Android网络接口 281
10.2.5 补充讲解:网络中得到JSON字符串的解析 283
10.2.6 补充讲解:处理中文乱码和中文部分乱码 285
10.2.7 实战:异步下载网络图片 288
10.3 Socket技术与实例 291
10.3.1 什么是Socket 292
10.3.2 TCP协议的Socket应用 292
10.3.3 UDP协议的Socket 295
10.3.4 实战Socket实现移动cmwap和cmnet 298
10.4 网页浏览及用户交互接口WebView 300
10.4.1 WebView加载HTML 301
10.4.2 扩展JavaScriptAPI 303
10.5 WiFi的基本介绍及实现 311
10.6 蓝牙的基本介绍与实现 316
10.7 XML解析 320
10.7.1 SAX解析 321
10.7.2 PULL解析 324
10.7.3 实战:天气预报实例 326
10.8 本章小结 333
第11章 国际化和自适应 334
11.1 国际化基础 334
11.1.1 语言国际化 334
11.2 资源自适应 335
11.2.1 自适应屏幕 335
11.3 本章小结 336
第12章 Android专属 337
12.1 Google Maps 337
12.1.1 Google Maps API Key 337
12.1.2 Geopoint与MapView 339
12.1.3 Google Maps实战:漂亮的气泡地图 340
12.2 传感器(Sensor) 344
12.2.1 什么是传感器(Sensor) 344
12.2.2 传感器(Sensor)关联的类(Class)和接口(Interface) 345
12.2.3 传感器(Sensor)实战案例 346
12.2.4 传感器(Sensor)实战2:手势电话 350
12.3 AppWidget 353
12.3.1 AppWidget框架 353
12.3.2 AppWidget实战让自己的应用支持AppWidget 354
第13章 Android综合案例一:权限管理工具 358
13.1 软件背景 358
13.2 总体设计 359
13.2.1 软件概述 359
13.2.2 技术分析 359
13.3 详细设计与实现 360
13.3.1 前期准备 360
13.3.2 代码结构 361
13.3.3 布局结构 362
13.3.4 本机程序 365
13.3.5 APK扫描 369
13.3.6 信任程序 371
13.3.7 扫描结果 373
13.4 本章小结 374
第14章 Android综合案例:条形码扫描器 375
14.1 需求分析 375
14.1.1 背景概述 375
14.1.2 Zxing介绍 375
14.2 总体设计 376
14.2.1 系统功能整理 376
14.2.2 系统流程设计 376
14.3 详细设计与实现 377
14.3.1 导入Zxing源码 377
14.3.2 实现UI布局 378
14.3.3 数据存储机制 393
14.3.4 GPRS数据上传服务器 411
14.3.5 相机接口调用及数据处理 415
14.4 本章小结 425
第15章 Android综合案例:物流信息系统终端 426
15.1 需求分析 426
15.2 总体设计 426
15.2.1 功能需求及协议整理 426
15.2.2 程序流程图 427
15.3 详细设计与实现 427
15.3.1 UI布局实现 427
15.3.2 数据存储 432
15.3.3 服务器设置 437
15.3.4 定位获取经纬信息 438
15.3.5 心跳获取任务信息 440
15.3.6 GPRS上传实现 442
15.4 本章小结 445
第16章 Android开发中的常见问题和面试题 446
16.1 Android开发中常见问题 446
16.2 常见Android面试题 452
附录A Android权限大全 459
附录B Android图标资源 466