第1章  概述    /1
  1.1  搭建环境	1
    1.1.1  安装Android Studio	1
    1.1.2  安装SDK	2
  1.2  创建第一个Android程序	3
    1.2.1  使用Android Studio创建一个Android工程	3
    1.2.2  在模拟器上运行	6
    1.2.3  在手机上运行	8
  1.3  如何导入本书案例库	8
  1.4  Android应用程序的构成	10
  1.5  Android四大组件	13
    1.5.1  活动	13
    1.5.2  服务	14
    1.5.3  内容提供者	14
    1.5.4  广播接收者	15
  1.6  养成良好的学习习惯	15
  本章小结	16
第2章  活动    /17
  2.1  Activity概述	17
    2.1.1  Activity是什么	17
    2.1.2  Activity生命周期	19
    2.1.3  Activity生命周期的示例	22
  2.2  一个Android工程的整体结构	24
    2.2.1  Android程序中各种文件夹及文件	25
    2.2.2  res文件夹	28
    2.2.3  AndroidManifest.xml文件	32
  2.3  最简单的图书管理系统	33
第3章  用户界面    /37
  3.1  用户界面基础知识	37
  3.2  界面基本组件	38
    3.2.1  界面基本属性	38
    3.2.2  TextView	38
    3.2.3  EditText	40
    3.2.4  Button	42
    3.2.5  复选框(CheckBox)	44
    3.2.6  单选按钮	45
    3.2.7  Listview	47
  3.3  布局	48
    3.3.1  FrameLayout(帧布局)	48
    3.3.2  LinearLayout(线性布局)	50
    3.3.3  RelativeLayout(相对布局)	52
    3.3.4  TableLayout(表格布局)	54
    3.3.5  AbsoluteLayout(绝对布局)	55
    3.3.6  多种布局混合使用	56
  3.4  菜单	58
    3.4.1  选项菜单	58
    3.4.2  上下文菜单	59
    3.4.3  子菜单	61
    3.4.4  定义XML菜单文件	63
  3.5  事件响应	65
    3.5.1  基本事件	65
    3.5.2  事件的响应	66
  3.6  界面切换与数据传递	68
    3.6.1  Intent与Bundle	68
    3.6.2  界面切换	70
    3.6.3  传递数据	71
  3.7  Activity界面刷新	75
  3.8  Activity栈及4种启动模式	75
    3.8.1  Activity栈概述	75
    3.8.2  Activity启动模式定义方法	76
    3.8.3  standard启动模式	77
    3.8.4  singleTop启动模式	79
    3.8.5  singleTask启动模式	80
  3.9  有多个界面的单机版图书管理系统	83
第4章  数据存储    /108
  4.1  Preference存储方式	108
    4.1.1  SharedPreferences	109
    4.1.2  PreferenceActivity	110
    4.1.3  XML解析	114
  4.2  文件的存储	117
    4.2.1  内部存储	117
    4.2.2  外部存储	118
  4.3  SQLite数据库	119
    4.3.1  SQLite简介	119
    4.3.2  SQLite数据库基本数据操作	122
    4.3.3  SQLiteOpenHelper类	124
    4.3.4  数据库文件存储位置(SD卡/手机内存)	126
  4.4  数据共享ContentProvider	127
    4.4.1  Android系统自带的ContentProvider	127
    4.4.2  自定义ContentProvider	128
  4.5  一个有本地数据库的单机版图书管理系统	129
第5章  网络编程    /138
  5.1  什么是网络编程	138
    5.1.1  Socket通信	139
    5.1.2  HTTP通信	140
  5.2  客户/服务器模式	140
    5.2.1  控制台上的简单输入输出	141
    5.2.2  控制台上的循环输入输出	141
    5.2.3  一个客户端和一个服务器端一次通信	143
    5.2.4  一个客户端和一个服务器端多次通信	146
    5.2.5  多个客户端和一个服务器端串行通信	151
    5.2.6  多个客户端和一个服务器端并行通信	155
    5.2.7  客户端与服务器端HTTP通信	158
  5.3  通信协议	161
    5.3.1  什么是协议,为什么需要协议	161
    5.3.2  如何实现协议	161
  5.4  Handler机制	162
  5.5  联网的图书管理系统	162
    5.5.1  定义协议	163
    5.5.2  使用TCP Socket的图书管理系统	164
    5.5.3  使用TCP Socket的图书管理系统的服务器	175
    5.5.4  使用HTTP的图书管理系统	194
    5.5.5  使用HTTP的图书管理系统的服务器	195
第6章  多媒体    /197
  6.1  MediaPlayer	197
  6.2  音频播放	200
    6.2.1  从源文件播放音频	200
    6.2.2  从文件系统播放音频	201
    6.2.3  从流媒体播放音频	203
  6.3  视频播放	204
    6.3.1  从源文件播放视频	204
    6.3.2  从文件系统播放视频	204
    6.3.3  从流媒体播放视频	205
  6.4  为图书管理系统配上音乐	205
第7章  图书管理系统程序进阶    /209
  7.1  Service(服务)	209
    7.1.1  了解Service	209
    7.1.2  Service的启动与生命周期	209
  7.2  系统服务	216
    7.2.1  什么是系统服务	216
    7.2.2  获得系统服务	216
    7.2.3  重力感应	217
  7.3  广播	218
    7.3.1  什么是广播	218
    7.3.2  广播的接收与响应	219
    7.3.3  广播的发送	220
  7.4  Service实现新书上架通知	221
    7.4.1  客户端	221
    7.4.2  服务器	226
  7.5  带异步刷新功能的图书管理系统	233
    7.5.1  Tab标签的实现	235
    7.5.2  自定义的ListView与Adapter	237
    7.5.3  异步刷新实现	241
    7.5.4  其他部分实现	242
参考文献    /247