上篇 Android应用程序设计基础 2
第1章 Android基本概念 2
1.1 Android简介 2
1.2 Android平台特性 3
1.3 Android系统架构 4
1.3.1 Linux内核(Linux Kernel) 5
1.3.2 Android核心库(Libraries) 5
1.3.3 Android运行时环境(Android Runtime) 5
1.3.4 Android应用程序框架(Application Framework) 6
1.3.5 Android应用程序 6
1.4 Android开发框架 6
1.4.1 应用方面 7
1.4.2 数据存储 8
1.4.3 网络访问方面 9
1.4.4 开发流程 9
1.5 OMS简介 10
1.5.1 OPhone介绍 10
1.5.2 Widget介绍 11
1.6 本章小结 12
第2章 Android开发环境搭建 13
2.1 Android开发环境的安装与配置 13
2.1.1 安装JDK和配置Java开发环境 13
2.1.2 Eclipse的安装 14
2.1.3 SDK和ADT的安装和配置 14
2.2 创建第一个Android应用 16
2.3 在模拟器上运行程序 18
2.4 在手机上运行程序 19
2.5 本章小结 20
第3章 程序设计基础 22
3.1 Android程序框架 22
3.1.1 Android项目目录结构 22
3.1.2 Android应用解析 27
3.2 Android程序UI设计 32
3.3 Java语言在Android程序中的使用 33
3.3.1 Interface的使用 33
3.3.2 abstract class的使用 34
3.3.3 Interface与abstract class的区别 35
3.3.4 for循环的使用 36
3.3.5 Map类的使用 36
3.3.6 Integer与String之间的转换 38
3.3.7 synchronized同步关键字 38
3.3.8 new的使用 39
3.4 本章小结 40
第4章 Android生命周期 42
4.1 程序生命周期 42
4.2 Android组件 44
4.3 Activity生命周期 45
4.3.1 全生命周期 47
4.3.2 可视生命周期 48
4.3.3 活动生命周期 48
4.4 Activity启动模式 49
4.4.1 standard标准模式 54
4.4.2 singleTop 55
4.4.3 singleTask 56
4.4.4 singleInstance 57
4.5 程序调试 59
4.5.1 LogCat命令行工具 59
4.5.2 DevTools开发调试工具 61
4.6 本章小结 65
第5章 用户界面开发 66
5.1 用户界面基础 66
5.2 界面布局 69
5.2.1 线性布局(LinearLayout) 70
5.2.2 框架布局(FrameLayout) 73
5.2.3 表格布局(TableLayout) 76
5.2.4 相对布局(RelativeLayout) 79
5.2.5 绝对布局(AbsoluteLayout) 81
5.3 界面控件 83
5.3.1 TextView和EditText 84
5.3.2 Button和ImageButton 85
5.3.3 CheckBox和RadioButton 87
5.3.4 Spinner 89
5.3.5 ListView 91
5.3.6 TabHost 94
5.4 菜单 96
5.4.1 选项菜单 96
5.4.2 子菜单 99
5.4.3 上下文菜单(Context Menu) 100
5.5 界面事件 103
5.5.1 按键事件 104
5.5.2 触摸事件 106
5.6 自定义样式和主题 110
5.7 9Patch 112
5.8 本章小结 113
第6章 组件间通信 115
6.1 Intent对象及其属性 115
6.1.1 Intent的action属性 116
6.1.2 Intent的data属性 116
6.1.3 Intent的type属性 117
6.1.4 Intent的category属性 117
6.1.5 Intent的extras属性 117
6.1.6 Intent的ComponentName属性 118
6.2 系统标准ActivityAction应用 118
6.2.1 启动Activity 118
6.2.2 获取Activity返回值 124
6.3 Intent过滤器 129
6.3.1 注册Intent过滤器 129
6.3.2 Intent解析 130
6.4 广播消息 131
6.5 本章小结 134
第7章 数据存储与访问 135
7.1 简单存储 135
7.1.1 SharedPreferences 135
7.1.2 示例 137
7.2 文件存储 140
7.2.1 内部存储 140
7.2.2 外部存储 143
7.2.3 资源文件 147
7.3 数据库存储 150
7.3.1 SQLite简介 150
7.3.2 手动建立数据库 151
7.3.3 代码建库(SQLiteOpenHelper) 156
7.3.4 数据操作(SQLiteDatabase) 159
7.4 数据共享(ContentProyiders) 164
7.4.1 创建ContentProvider 166
7.4.2 使用数据提供者 169
7.5 本章小结 171
第8章 多媒体开发 173
8.1 Android系统提供内置的媒体格式 173
8.2 在窗体布局上——VideoView 174
8.3 音频及视频播放——MediaPlayer 175
8.2.1 从源文件中播放 176
8.3.2 从文件系统中播放 177
8.3.3 从网络中播放 179
8.3.4 音频播放示例 181
8.3.5 视频播放示例 183
8.4 音/视频的录制 187
8.5 Camera照相 192
8.6 本章小结 196
第9章 定位与地图 197
9.1 位置服务 197
9.1.1 Android LocationAPI 197
9.1.2 GPS定位步骤 198
9.2 Google地图应用 202
9.2.1 申请地图密钥 203
9.2.2 使用Google地图 206
9.2.3 使用Overlay 209
9.3 本章小结 212
第10章 Android中的图形图像 213
10.1 在Android中访问图片 213
10.1.1 使用图片文件创建Drawable对象 213
10.1.2 使用XML文件定义Drawable属性 215
10.1.3 Bitmap和BitmapFactory 216
10.2 Android中的动画 217
10.2.1 Tween动画 217
10.2.2 Frame动画 227
10.3 动态图形绘制 230
10.3.1 动态图形绘制类简介 230
10.3.2 动态图形绘制的基本思路 232
10.3.3 绘制几何图形 234
10.4 图形特效 238
10.4.1 使用Matrix实现旋转、缩放和平移 238
10.4.2 使用Shader类渲染图形 242
10.5 本章小结 245
第11章 Android NDK开发 247
11.1 Android NDK简介 247
11.2 NDK编译环境 248
11.3 NDK开发示例 252
11.4 本章小结 255
第12章 Android特色开发 257
12.1 App Widget 257
12.1.1 App Widget的生命周期 259
12.1.2 建立Android App Widget 260
12.2 传感器 266
12.2.1 Android中的传感器分类 267
12.2.2 Android中的传感器功能 267
12.3 本章小结 270
第13章 Android网络编程 271
13.1 Android网络通信基础 271
13.1.1 标准Java接口 272
13.1.2 Apache接口 272
13.1.3 Android网络接口 273
13.2 HTTP通信 274
13.2.1 HttpURLConnection接口 274
13.2.2 HttpClient接口 278
13.3 Socket通信 281
13.3.1 Socket传输模式 281
13.3.2 Socket编程原理 281
13.3.3 Socket编程实例 283
13.3.4 Socket与HTTP通信的区别 287
13.4 本章小结 287
第14章 Android应用开发流程 289
14.1 应用规划及架构设计 289
14.1.1 客户端功能点概述 290
14.1.2 服务器端功能点概述 291
14.2 实现UI 291
14.3 数据操作和存储 292
14.4 实现多页面跳转 293
14.5 实现各个模块逻辑处理 294
14.5.1 登录注册模块的实现 294
14.5.2 个人中心模块的实现 297
14.5.3 发布约会模块的实现 299
14.5.4 查看好友模块的实现 301
14.6 完善应用细节 303
14.7 应用测试和发布 303
14.8 本章小结 305
下篇 Android应用程序UI设计 308
第15章 Android交互式界面设计概述 308
15.1 交互设计概念 308
15.1.1 交互设计的科学范畴及定义 308
15.1.2 交互设计的特征 309
15.2 用户图形界面设计概念 309
15.2.1 图形界面的分类 310
15.2.2 图形界面设计原则简述 311
15.2.3 界面是用户的唯一感知通道 312
15.2.4 交互设计与图形界面设计 313
15.3 交互式图形界面设计新趋势 314
15.3.1 手持移动设备的产品特点 314
15.3.2 注重界面设计中的情感因素 315
15.3.3 以用户为中心的界面设计 315
15.4 交互式界面设计过程 316
15.4.1 人机交互工程师的必备素质 316
15.4.2 交互设计流程 317
15.5 本章小结 319
第16章 Android用户界面设计原则 320
16.1 Android UI设计特点 320
16.1.1 特点一:慎用常驻通知栏 320
16.1.2 特点二:界面无须返回按钮 321
16.1.3 特点三:分享机制更加优越 321
16.1.4 特点四:处理缓存文件 321
16.1.5 特点五:退出无须确认 321
16.1.6 特点六:默认检查更新 322
16.1.7 特点七:关注焦点状态 322
16.1.8 特点八:提示转存到存储卡 322
16.2 Android UI设计原则及相关事项 322
16.2.1 Android UI设计思想 323
16.2.2 UI设计关键事项 324
16.2.3 UI元素管理 325
16.3 UI设计中资源的使用 328
16.4 本章小结 330
第17章 Android UI设计过程与哲学 331
17.1 Android用户界面基础 331
17.2 Android界面设计过程要点 333
17.2.1 布局(Layout) 334
17.2.2 组件(Widget) 334
17.2.3 菜单(Menu) 334
17.2.4 界面事件 334
17.2.5 高级UI设计简述 335
17.3 Android UI设计的四个要点 336
17.3.1 开放源码和UI的一致性 336
17.3.2 支持多种互动模式 336
17.3.3 公告管理 337
17.3.4 支持无缝的互动 337
17.4 Android优秀界面设计哲学准则简述 338
17.4.1 关注用户群体特点 338
17.4.2 显示用户关注的内容 338
17.4.3 适当的用户反馈 338
17.4.4 符合逻辑的行为模式 339
17.4.5 容错性 339
17.5 本章小结 339
第18章 必须了解的Android UI框架特性 340
18.1 Android布局常用的公共属性 340
18.2 Android UI中的六大布局对象 341
18.2.1 框架布局 341
18.2.2 线性布局 342
18.2.3 表格布局 346
18.2.4 绝对布局 348
18.2.5 相对布局 349
18.2.6 网格布局 351
18.3 9-Patch图片格式 353
18.4 本章小结 354
第19章 Android Widget常用控件设计 355
19.1 控件基础 355
19.1.1 创建Widget控件实例 355
19.1.2 控件事件处理 356
19.2 常用控件介绍 363
19.2.1 文本框(TextView) 363
19.2.2 按钮(Button) 364
19.2.3 编辑框(EditText) 366
19.2.4 单项选择(RadioGroup) 367
19.2.5 多项选择(CheckBox) 369
19.2.6 下拉列表(Spinner) 371
19.2.7 自动完成文本 373
19.2.8 日期时间选择器 373
19.2.9 进度条(ProgressBar) 376
19.2.10 拖动条 377
19.3 菜单 378
19.3.1 选项菜单 378
19.3.2 子菜单 381
19.3.3 快捷菜单 382
19.4 视图(ImageView) 385
19.4.1 图片视图 385
19.4.2 网络视图 386
19.4.3 卷轴视图 388
19.5 本章小结 389
第20章 Android UI设计模式 390
20.1 UI设计模式基础 390
20.1.1 移动设备界面设计趋势 390
20.1.2 UI设计模式概述 391
20.2 Android UI设计模式组件 392
20.2.1 Dashboard仪表板 392
20.2.2 Action Bar操作杆 394
20.3 Android UI设计技巧 400
20.3.1 使用include标签包含共享UI设计 400
20.3.2 自定义样式和主题 401
20.3.3 渐变效果实现 403
20.3.4 自定义按钮使用效果 403
20.4 本章小结 404
第21章 Android软件图标 405
21.1 PC平台下的软件图标 405
21.1.1 PNG格式 405
21.1.2 ICO格式 406
21.1.3 BMP格式 407
21.1.4 TIFF格式 408
21.1.5 GIF格式 408
21.1.6 JPEG格式 409
21.1.7 SVG格式 409
21.2 Android平台下的软件图标 412
21.2.1 图标要具有可识别性 413
21.2.2 图标要与环境相协调 414
21.2.3 图标要体现差异性 415
21.2.4 图标要有统一的风格 416
21.3 本章小结 417
第22章 Android UI图标设计 418
22.1 Android图标类型 418
22.1.1 启动图标 418
22.1.2 菜单图标 422
22.1.3 状态栏 424
22.1.4 对话图标 425
22.1.5 标签图标 426
22.1.6 列表视图图标 429
22.2 屏幕密度概述 430
22.3 Android图标设计风格 431
22.3.1 交互性 432
22.3.2 现代性 433
22.3.3 标志性 433
22.3.4 触感与质感 433
22.4 本章小结 433
第23章 Android平板电脑应用程序的设计 434
23.1 平板电脑概述 434
23.2 Android平板电脑与iPad 435
23.2.1 两者差异 435
23.2.2 相同之处 443
23.3 设计模式 445
23.4 平板电脑布局策略 449
23.4.1 使用碎片和多窗格视图 449
23.4.2 方向策略 450
23.5 关于动画 450
23.5.1 XML中定义动画 450
23.5.2 Java Code中定义动画 453
23.6 从例子中学习 454
23.7 在线资源 458
23.8 本章小结 459
附录A 知识点测评答案 460