第1章 揭开神秘面纱——Android系统简介 1
1.1 认识Android系统 2
1.1.1 Android成长历程 2
1.1.2 发行版本 3
1.1.3 得到大家的认可——Android系统的市场份额 3
1.2 Android架构解析 4
1.2.1 Android系统架构图 4
1.2.2 应用程序(Applications) 5
1.2.3 应用程序框架层(Framework) 6
1.2.4 系统运行库(Libraries) 7
1.2.5 Linux内核 11
1.3 小结 11
第2章 工欲善其事,必先利其器——Android开发初识 12
2.1 开发准备工作 13
2.2 开发环境搭建 13
2.3 创建第一个Android项目 16
2.3.1 创建新项目 16
2.3.2 程序工程架构图 18
2.3.3 HelloWorld程序架构解析 19
2.4 Android开发工具 22
2.4.1 Android开发工具Adb 22
2.4.2 Android开发工具DDMS 23
2.5 小结 25
第3章 亲密接触——Android入门程序开发 26
3.1 水果的营养成分分析器 27
3.2 手把手教你开发项目 27
3.2.1 手动创建Activity 28
3.2.2 创建和加载布局 28
3.2.3 在Activity中使用Toast 32
3.2.4 在Activity中加入菜单(Menu) 32
3.2.5 在Activity中使用Dialog 35
3.2.6 Spinner控件的使用 35
3.2.7 界面切换 38
3.3 Intent的使用 40
3.3.1 使用显式Intent 40
3.3.2 使用隐式Intent 41
3.3.3 隐式Intent的多种用法 42
3.3.4 向Activity传递数据 44
3.3.5 返回数据给Activity 46
3.4 Android日志 48
3.4.1 添加LogCat到 Eclipse 48
3.4.2 使用Android的日志工具Log 48
3.5 小结 51
第4章 美丽由我掌控——UI的开发 52
4.1 常用控件 53
4.1.1 EditText 53
4.1.2 TextSwitcher 55
4.1.3 ImageView 56
4.1.4 ImageSwitcher 57
4.1.5 ListView的使用 58
4.1.6 提升ListView的运行效率 60
4.1.7 RecyclerView 63
4.1.8 ViewStub 69
4.2 Android七种常见布局 72
4.2.1 LinearLayout 72
4.2.2 elativeLayout 75
4.2.3 FrameLayout 77
4.2.4 TableLayout 78
4.2.5 GridLayout 79
4.2.6 AbsoluteLayout 81
4.2.7 CardView 82
4.3 自定义控件 86
4.3.1 加载布局 87
4.3.2 自定义控件 89
4.4 Android View详解 90
4.5 Android Surface详解 93
4.6 小结 98
第5章 组件之一——活动(Activity) 99
5.1 活动的生命周期 100
5.2 活动的启动模式详解 105
5.2.1 standard模式 106
5.2.2 singleTop模式 107
5.2.3 singleTask模式 109
5.2.4 singleInstance模式 110
5.3 平板手机都兼顾——碎片(Fragments) 112
5.3.1 概述 112
5.3.2 设计思想 112
5.3.3 Activity添加Fragment界面 113
5.3.4 动态替换Fragment 115
5.3.5 Fragment生命周期 117
5.3.6 一个简单的阅读器 120
5.4 Android中的多线程 127
5.4.1 Android Handler 129
5.4.2 使用AsyncTask 131
5.5 小结 134
第6章 默默无闻的后台——服务(Service) 135
6.1 Java层服务 136
6.2 服务的生命周期 137
6.3 服务的启动 140
6.3.1 startService()启动Service 140
6.3.2 bindService()启动Service 144
6.4 Android AIDL 148
6.4.1 创建一个AIDL文件 150
6.4.2 实现接口 150
6.4.3 使用parcelables进行参数的值传递 152
6.4.4 客户端获取接口 153
6.4.5 IInterface接口类 156
6.5 提高手机电池续航能力——JobScheduler技术 157
6.6 小结 162
第7章 广播机制——Android广播接收器 163
7.1 静态注册监听广播 164
7.2 动态注册接收Broadcast广播 166
7.3 本地广播 167
7.4 小结 169
第8章 数据仓库——Android数据存储 170
8.1 轻量级存储类——SharedPreferences 171
8.1.1 使用SharedPreferences存取数据 171
8.1.2 存取复杂(图像、音频)类型的数据 173
8.2 PreferenceActivity的使用 174
8.2.1 PreferenceActivity实现 174
8.2.2 PreferenceFragement实现 177
8.3 SQLite Databases 178
8.3.1 SQLite在Windows系统中的使用 179
8.3.2 SQLite基本操作 180
8.3.3 SQLite事务 180
8.4 Android中使用SQLite数据库 180
8.4.1 SQLite常用的操作方法 181
8.4.2 SQLiteOpenHelper类 182
8.4.3 在SQLite中执行查询 185
8.4.4 在Activity中显示和操作SQLite数据库 187
8.5 Android文件的使用 189
8.5.1 将数据保存到文件 189
8.5.2 存取SD卡中的文件 190
8.5.3 读取XML文件 192
8.6 小结 194
第9章 跨程序共享数据——内容提供器(ContentProvider) 195
9.1 获取用于通信录的电话及电话内容 197
9.1.1 从通信录中获取好友数据 197
9.1.2 通信录中添加好友 198
9.2 创建共享数据 199
9.2.1 创建共享数据 200
9.2.2 外部应用访问 204
9.3 小结 206
第10章 美图秀秀——开发2D绘图 207
10.1 屏幕绘图基础 208
10.1.1 Canvas类 208
10.1.2 Paint类 210
10.1.3 Color类 212
10.1.4 Path类 213
10.1.5 Drawable类 216
10.2 使用文字 217
10.3 使用位图 219
10.4 Frame动画 222
10.5 Tween动画 224
10.6 小结 227
第11章 多媒体开发 228
11.1 音频播放 229
11.1.1 支持的音频格式 229
11.1.2 MediaPlayer播放MP3文件 230
11.1.3 AudioTrack播放原始音频文件 230
11.1.4 SoundPool播放音频文件 231
11.2 视频播放 232
11.2.1 SurfaceView播放视频 232
11.2.2 VideoView视频播放器 234
11.3 多媒体存储 235
11.4 小结 237
第12章 Android手机特色开发 238
12.1 使用手机Camera 239
12.1.1 调用摄像头拍照 239
12.1.2 使用摄像头拍照 240
12.2 使用百度地图 242
12.2.1 申请API Key 243
12.2.2 显示百度地图 245
12.2.3 标注覆盖物 247
12.3 定位服务 248
12.3.1 LocationManager的基本用法 249
12.3.2 确定自己的位置 250
12.4 使用手机中的Sensor 252
12.5 使用手机录音 255
12.5.1 AudioManager 256
12.5.2 音频处理 259
12.6 手机Wifi的使用 261
12.7 小结 267
第13章 三维游戏的基础——OpenGLES 3.0 268
13.1 OpenGL常识普及 269
13.2 GLSurfaceView的使用 272
13.3 绘图概念 274
13.4 平面图形 277
13.5 三维图形 279
13.6 平面纹理 286
13.7 三维纹理 289
13.8 小结 294
第14章 C++的魅力——Android本地编程 295
14.1 Android NDK简介 296
14.2 使用命令行编译Native部分 296
14.3 C++(HelloWorld)项目 297
14.4 Eclipse编译C++(HelloWorld)项目 299
14.5 HelloJNI实例解析 301
14.6 Android.mk文件语法规范 304
14.7 Application.mk文件语法规范 308
14.8 Android JNI简介 309
14.9 AndroidNativeActivity 312
14.9.1 NativeActivity 313
14.9.2 Android Native生命周期 314
14.10 使用C/C++编写OpenGLES程序入门 315
14.10.1 初始化OpenGL 316
14.10.2 创建自己的Renderer 316
14.11 小结 318
第15章 Android网络编程 319
15.1 WebView控件用法 320
15.2 使用HTTP协议访问资源 321
15.2.1 HttpURLConnection的使用 321
15.2.2 HttpClient的使用 324
15.3 Android Socket 325
15.3.1 Android TCP通信 326
15.3.2 Android UDP通信 330
15.3.3 Native TCP/UDP通信 334
15.4 小结 338
第16章 Android的灵魂——底层服务 339
16.1 Android进程间通信 340
16.2 Android IPCbinders 344
16.2.1 Binders概述 344
16.2.2 面向对象的Binder IPC 345
16.2.3 Binder通信模型 345
16.3 Binder的Native实现(1ibbinder) 347
16.4 Android Native Service 349
16.4.1 Native Service接口介绍 351
16.4.2 简单的Native Service项目 354
16.5 Android Parcel 364
16.6 小结 367
第17章 综合实例解析——音乐播放器 368
17.1 音乐播放器 369
17.2 设计原则 369
17.3 框架分析 370
17.4 Application 371
17.5 程序主界面 372
17.6 音乐播放界面 374
17.7 Music Service的编写 385
17.8 FavroiteActivity的编写 394
17.9 MusicOnlineActivity的编写 394
17.10 发布App 397
17.10.1 生成正是签名的APK文件 397
17.10.2 申请Google Play账号 399
17.10.3 上传和发布应用程序 401
17.11 小结 404