第1章 Android开发入门 1
1.1 Android的发展及历史 1
1.1.1 Android系统简介 1
1.1.2 Android智能手机系统的发展 2
1.1.3 Android系统的框架架构 3
1.2 Android开发环境搭建 5
1.2.1 Android开发简介 5
1.2.2 安装JDK 5
1.2.3 安装Eclipse 6
1.2.4 配置Android开发环境 7
1.2.5 创建AVD 9
1.3 第一个应用程序 11
1.3.1 创建第一个应用程序项目(Project) 11
1.3.2 修改显示内容 13
1.4 项目框架分析 14
1.4.1 HelloAndroid项目结构 14
1.4.2 资源目录(res/) 15
1.4.3 gen/目录下的R.java文件 17
1.4.4 AndroidManifest.xml介绍 18
1.5 Android四大组件介绍 21
1.6 本章小结 22
第2章 生命周期及调试方法 23
2.1 系统进程生命周期(LifeCycle) 23
2.2 Activity生命周期 25
2.2.1 Activity生命周期的基本概念 25
2.2.2 生命周期的回调函数 25
2.3 Intent的概念及使用 30
2.4 Activity的启动和跳转 32
2.4.1 两种启动和跳转方式 32
2.4.2 带值跳转方式 35
2.4.3 跳转并带值返回父界面的方式 36
2.5 Android开发中的调试技术 38
2.5.1 使用Debug断点调试 38
2.5.2 使用JUnit调试 39
2.5.3 使用Logcat进行调试 39
2.5.4 使用DDMS进行调试 40
2.6 实训项目与演练 41
2.6.1 实训一:使用Logcat跟踪Activity带值跳转实训 41
2.6.2 实训二:使用断点Debug跟踪Activity带值返回实训 42
2.7 本章小结 44
第3章 布局与基本组件 45
3.1 Android用户界面的组件和容器 45
3.2 文本控件的功能与使用方法 46
3.2.1 TextView的XML使用 46
3.2.2 TextView的Java使用 48
3.2.3 EditText的XML使用 50
3.2.4 EditText的Java使用 51
3.3 按钮控件的功能与使用方法 51
3.3.1 Button与ImageButton的XML使用 52
3.3.2 Button与ImageButton的Java使用 52
3.3.3 CheckBox的XML使用 54
3.3.4 CheckBox的Java使用 55
3.3.5 RadioButton的XML使用 56
3.3.6 RadioButton的Java使用 57
3.4 时间和日期控件的功能与使用方法 57
3.4.1 AnalogClock与DigitalClock的XML使用 58
3.4.2 DatePicker与TimePicker的XML使用 58
3.4.3 DatePicker与TimePicker的Java使用 59
3.5 界面布局管理器的使用 60
3.5.1 布局文件的使用 61
3.5.2 线性布局 61
3.5.3 表格布局 64
3.5.4 相对布局 65
3.6 实训项目与演练 67
3.6.1 实训一:电话闹钟的首页设计 67
3.6.2 实训二:新浪微博的登录界面设计 71
3.7 本章小结 71
第4章 高级组件开发 72
4.1 进度条组件的开发和使用 72
4.1.1 ProgressBar的开发与使用 72
4.1.2 SeekBar的开发与使用 74
4.2 列表与Adapter的开发和使用 75
4.2.1 Spinner和ListView的简单使用 75
4.2.2 Adapter的开发与使用 77
4.3 图片浏览组件的开发和使用 81
4.3.1 ImageView的开发和使用 81
4.3.2 GridView的开发和使用 83
4.4 消息组件的开发和使用 85
4.4.1 Toast的开发和使用 86
4.4.2 Notification的开发和使用 87
4.5 菜单与标签页组件的开发和使用 89
4.5.1 Menu的开发和使用 89
4.5.2 ContextMenu的开发和使用 92
4.5.3 ActionBar的开发和使用 94
4.5.4 Fragment的开发和使用 98
4.6 实训项目与演练 101
4.6.1 实训一:TagInfo的首页设计 101
4.6.2 实训二:MyMusic播放界面 104
4.7 本章小结 105
第5章 异步任务开发 106
5.1 异步的基本概念 106
5.2 使用Thread+Handler+Message进行异步操作 106
5.2.1 Java线程(Thread)简介 106
5.2.2 Android异步操作 107
5.2.3 Thread+Handler+Message机制 108
5.2.4 使用Thread+Handler+Message异步加载网络图片 109
5.3 使用AsnycTask进行异步操作 111
5.3.1 AsyncTask简介 111
5.3.2 AsyncTask的程序模型 112
5.3.3 使用AsyncTask异步加载网络图片 113
5.3.4 Android与HTTP服务器交互 114
5.4 本章小结 115
第6章 后台服务 116
6.1 后台服务简介 116
6.2 服务的两种使用方式 117
6.2.1 调用StartService()函数使用服务 118
6.2.2 以绑定方式使用服务 121
6.3 在服务中使用新线程更新UI 125
6.3.1 创建和使用线程(Thread) 126
6.3.2 使用Handle更新用户界面 127
6.4 广播(Broadcast)及接收 130
6.5 实训项目与演练 135
6.5.1 实训一:使用Service的音乐播放器实训 135
6.5.2 实训二:定时提醒服务 137
6.6 本章小结 139
第7章 数据存储与数据共享 140
7.1 配置文件的存储SharedPreferences 140
7.1.1 SharedPreferences的数据操作 140
7.1.2 SharedPreferences在程序中的应用 141
7.2 普通文件的存储与读取 143
7.2.1 Android中的文件操作 143
7.2.2 Android中的I/O流操作 147
7.3 SQLite数据库的访问与读写操作 151
7.3.1 关系型数据库中的基本概念 151
7.3.2 基本SQL语句的使用 152
7.3.3 Android中SQLite的使用 155
7.3.4 简单课程表的实现 156
7.4 Socket与HTTP的网络通信 160
7.4.1 Android中的Socket通信 160
7.4.2 Android Socket通信的实现 161
7.4.3 Android的HTTP通信 164
7.5 ContentProvidei数据共享的操作 168
7.5.1 URI的组成与ContentProvider的使用 169
7.5.2 系统联系人的读取 169
7.6 实训项目与演练 171
7.6.1 实训一:系统通讯录的实现 171
7.6.2 实训二:实时天气预报的实现 173
7.7 本章小结 176
第8章 传感器应用开发 177
8.1 手机传感器介绍 177
8.2 开发传感器应用 180
8.3 传感器综合示例 180
8.4 本章小结 184
第9章 媒体播放器的设计 185
9.1 多媒体文件格式与编码 185
9.1.1 多媒体文件格式 185
9.1.2 多媒体文件编码 186
9.2 音乐播放器的设计 187
9.2.1 播放3种不同的数据源 187
9.2.2 MediaPlayer类解析 189
9.3 带扫描SD卡文件功能的播放器设计 192
9.4 使用Service的播放器设计 199
9.5 录音功能的设计与实现 202
9.6 本章小结 206
第10章 地图与位置服务的设计 207
10.1 百度定位SDK的开发与使用 207
10.1.1 定位SDK的配置 207
10.1.2 LocationClient对象的初始化 209
10.1.3 Activity中定位的设置和启动 210
10.2 百度地图简介与导入 212
10.2.1 百度地图SDK简介 212
10.2.2 百度地图SDK库文件的导入 213
10.3 Application和Activity的创建 214
10.3.1 全局Application的初始化 214
10.3.2 Hello BaiduMap的创建 216
10.4 百度地图自定义覆盖物的开发 217
10.4.1 “我的位置”图层的添加 217
10.4.2 自定义覆盖物的开发 218
10.5 路径规划与兴趣点的实现 222
10.6 本章小结 225
第11章 综合实例:旅游小助手的实现 226
11.1 系统功能介绍和架构设计 226
11.1.1 系统功能介绍 226
11.1.2 系统架构设计 227
11.2 百度API Key的申请 227
11.2.1 百度LBS服务AK的申请 228
11.2.2 百度应用接入AK的申请 229
11.3 JSON数据的解析 229
11.4 公交线路查询的实现 230
11.5 百度实时翻译的实现 232
11.6 本章小结 235
参考文献 236