第1章 Android开发环境与项目解析 1
1.1 Android介绍 1
1.1.1 Android发展与智能手机 1
1.1.2 Android版本说明 3
1.1.3 Android系统架构 5
1.2 Android开发环境 8
1.2.1 使用Eclipse 8
1.2.2 使用adt-bundle Eclipse 12
1.2.3 使用Android Studio 12
1.3 Android项目解析 16
1.3.1 创建Android项目 17
1.3.2 Android项目结构 21
1.4 运行与调试Android项目 25
1.4.1 使用Android虚拟机 25
1.4.2 使用Android真机 28
1.4.3 调试日志的使用 30
1.5 签名输出apk文件 31
1.6 习题 32
第2章 使用控件创建用户界面 34
2.1 Android用户界面设计 34
2.1.1 使用布局文件设计界面 34
2.1.2 使用Java代码设计界面 35
2.2 使用简单控件 36
2.2.1 控件的基本属性 36
2.2.2 TextView 39
2.2.3 Button 40
2.2.4 ToggleButton与Switch 41
2.2.5 EditText 43
2.2.6 CheckBox 45
2.2.7 RadioButton与RadioGroup 45
2.2.8 SeekBar 46
2.2.9 RatingBar 47
2.2.10 ProgressBar 48
2.3 布局管理器 50
2.3.1 LinearLayout 50
2.3.2 RelativeLayout 51
2.3.3 FrameLayout 54
2.3.4 GridLayout 54
2.3.5 TableLayout 56
2.3.6 AbsoluteLayout 57
2.4 使用图片控件 57
2.4.1 ImageView 57
2.4.2 ImageButton 58
2.5 使用复杂控件 58
2.5.1 数据适配器 59
2.5.2 Spinner 60
2.5.3 ListView与ListActivity 62
2.5.4 GridView 64
2.5.5 ExpandableListView 66
2.5.6 ScrollView与Horizontal ScrollView 68
2.6 高级控件 68
2.6.1 TabHost 69
2.6.2 ViewFlipper 71
2.6.3 ImageSwitcher 72
2.7 日期和时间控件 75
2.7.1 DatePicker和TimePicker 75
2.7.2 Chronometer 77
2.7.3 AnalogClock与TextClock 78
2.8 线程机制 79
2.9 习题 82
第3章 Activity与Intent 84
3.1 Activity的创建与管理 84
3.1.1 创建Activity与配置信息 84
3.1.2 Activity的生命周期 88
3.1.3 Activity启动模式 89
3.2 Intent对象 93
3.2.1 创建Intent对象 94
3.2.2 使用Intent启动Activity 94
3.2.3 使用Intent传递数据 98
3.2.4 Intent过滤器 98
3.2.5 使用Intent启动手机组件 99
3.3 Activity与Fragment 100
3.3.1 Fragment生命周期 100
3.3.2 Fragment传递数据 107
3.3.3 管理Fragment 110
3.4 习题 113
第4章 使用项目资源 114
4.1 Android资源类型 114
4.1.1 资源的创建与引用 114
4.1.2 资源的分类 116
4.2 布局资源 116
4.3 菜单资源 117
4.3.1 普通菜单 118
4.3.2 ActionBar中的菜单 121
4.4 “值”资源 123
4.4.1 字符串 123
4.4.2 颜色资源 123
4.4.3 尺寸资源 124
4.5 可绘制资源 124
4.5.1 Android中的图片类型 124
4.5.2 NinePatch图片格式 125
4.5.3 selector资源 127
4.5.4 shape资源 130
4.6 动画资源 132
4.6.1 Tween Animation 132
4.6.2 Frame Animation 138
4.7 样式与主题资源 141
4.7.1 样式资源 141
4.7.2 主题资源 142
4.8 习题 145
第5章 使用系统组件 146
5.1 菜单的使用 146
5.1.1 创建菜单 146
5.1.2 监听菜单选中 147
5.1.3 子菜单与弹出菜单 148
5.2 ActionBar的使用 150
5.2.1 导航菜单 151
5.2.2 导航模式 152
5.2.3 Actionbar与Fragment 153
5.3 Toast与Notification 156
5.3.1 创建并显示Toast 156
5.3.2 自定义Toast 156
5.3.3 创建并发出通知 157
5.4 对话框的使用 159
5.4.1 普通对话框的创建 159
5.4.2 选择对话框 160
5.4.3 日期与时间对话框 161
5.4.4 进度条对话框 162
5.4.5 自定义对话框 163
5.5 习题 164
第6章 二维图像的处理 166
6.1 位图的使用 166
6.1.1 Bitmap与BitmapFactory 166
6.1.2 位图的缩略图 168
6.2 使用View绘制视图 169
6.2.1 横竖屏坐标与全屏操作 169
6.2.2 View类 171
6.2.3 Canvas类 173
6.2.4 Paint类 182
6.2.5 使用View自定义控件 184
6.2.6 Matrix变换 185
6.3 使用SurfaceView绘制视图 187
6.3.1 SurfaceHolder介绍 188
6.3.2 使用子线程绘制视图 189
6.4 线程控制下的动画效果 191
6.4.1 属性动画效果 191
6.4.2 帧动画效果 193
6.4.3 剪切区动画效果 195
6.5 习题 197
第7章 多媒体应用开发 199
7.1 音频播放 199
7.1.1 MediaPlayer对象的创建 199
7.1.2 MediaPlayer对象的状态转换 202
7.1.3 SoundPool的创建和使用 204
7.2 视频播放 206
7.2.1 VideoView播放本地资源 206
7.2.2 MediaController 208
7.2.3 播放网络资源 209
7.3 MediaRecorder 209
7.3.1 录制音频 211
7.3.2 同时录制音视频 212
7.4 使用Camera拍照 214
7.4.1 启动相机与拍照 215
7.4.2 获取相机返回数据 217
7.4.3 获取原尺寸照片 218
7.4.4 照片缩略图 220
7.5 习题 222
第8章 Service与BroadcastReceiver 223
8.1 创建并配置Service 223
8.1.1 自定义Service 223
8.1.2 Service的生命周期 225
8.2 Service的启动模式 226
8.2.1 startService 227
8.2.2 bindService 230
8.3 远程Service 233
8.4 BroadcastReceiver 236
8.4.1 发出广播与接收广播 237
8.4.2 广播的分类与权限 238
8.4.3 注册广播接收器 239
8.4.4 接收系统广播 245
8.5 实现短信拦截 246
8.6 习题 249
第9章 数据存储与ContentProvider 251
9.1 以文件形式存储数据 251
9.1.1 读写XML文件 251
9.1.2 读写普通文件 254
9.1.3 读写SD中的文件 256
9.2 以数据库形式存储数据 258
9.2.1 SQLiteDatabase介绍 258
9.2.2 执行增删改操作 260
9.2.3 Cursor与查询操作 262
9.2.4 SQLiteOpenHelper的使用 265
9.3 SQLite图形化查看工具 266
9.4 Content Provider 268
9.4.1 使用ContentProvider 268
9.4.2 Uri的组成 268
9.4.3 ContentProvider基本操作 269
9.5 管理手机联系人信息 274
9.6 习题 279
第10章 Android网络编程 281
10.1 基于传输层协议的联网 281
10.1.1 传输层协议介绍 281
10.1.2 Socket与ServerSocket 282
10.1.3 DatagramSocket与DatagramPacket 288
10.1.4 Android对联网代码的限制 292
10.2 基于应用层协议的联网 293
10.2.1 URL介绍 293
10.2.2 GET请求和POST请求 295
10.2.3 使用HttpURLConnection联网 296
10.2.4 使用HttpClient联网 300
10.3 访问Web Service 303
10.3.1 WSDL和SOAP 304
10.3.2 调用Web Service 304
10.4 解析网络传输中的数据 306
10.4.1 解析JSON格式数据 306
10.4.2 解析XML格式数据 310
10.5 习题 313
第11章 传感器应用与蓝牙通信 315
11.1 Android中的传感器 315
11.1.1 传感器概述 315
11.1.2 测试传感器应用程序 317
11.2 加速度传感器 318
11.3 光线传感器 321
11.4 距离传感器 323
11.5 蓝牙通信技术应用 324
11.5.1 近距离通信技术介绍 325
11.5.2 Android系统中的蓝牙组件 325
11.5.3 蓝牙设备间的通信 330
11.6 习题 337
第12章 校园App项目案例 338
12.1 校园App项目介绍 338
12.2 服务器端功能开发 340
12.2.1 数据库表 341
12.2.2 实体类 342
12.2.3 DAO层 344
12.2.4 Action层 345
12.3 Android客户端开发 348
12.3.1 欢迎界面与标题栏样式 348
12.3.2 主界面Activity 349
12.3.3 自定义Fragment 354
12.3.4 WebView加载HTML5页面 363
12.4 习题 364
参考文献 365