第1章 千呼万唤始出来——Android的前世今生
1.1 Android的诞生
1.2 Android的优点
1.2.1 开放性
1.2.2 应用程序平等
1.2.3 应用程序间无界限
1.2.4 快速方便的应用程序开发
1.3 Android系统架构
1.3.1 应用程序
1.3.2 应用程序框架
1.3.3 Android运行时
1.3.4 系统库
1.3.5 Linux内核
1.4 Android与移动因特网
1.4.1 诺基亚的“四大支柱”
1.4.2 苹果公司的“大超市”
1.4.3 Google的“云”
1.5 Android的发展
1.5.1 Android开源应用
1.5.2 Android设备
1.5.3 Android平台
1.6 小结
第2章 而今迈步从头越——构建Android开发环境
2.1 系统需求
2.2 安装软件
2.2.1 安装JDK
2.2.2 安装Android SDK
2.2.3 安装Eclipse以及ADT
2.2.4 创建AVD
2.3 Android SDK 1.5初体验
2.4 构建第一个Android程序
2.5 解析Hello Android
2.5.1 应用程序构成
2.5.2 代码分析
2.6 调试程序
2.7 小结
第3章 一片冰心在玉壶——剖析Android应用程序核心
3.1 应用程序的基本组件
3.1.1 Activity简介
3.1.2 Service简介
3.1.3 BroadcastReceiver简介
3.1.4 ContentProvider简介
3.1.5 Intent——连接组件的纽带
3.2 应用程序的生命周期
3.3 近看Activity及其生命周期
3.3.1 创建Activity
3.3.2 Activity的生命周期
3.4 资源
3.4.1 创建、管理资源
3.4.2 使用资源
3.5 AndroidManifest.xml文件
3.5.1 AndroidManifest.xml文件的结构
3.5.2 在AndroidManifest.xml中声明权限
3.6 小结
第4章 淡汝浓抹总相宜——创建用户界面
4.1 Android用户界面初体验
4.1.1 View与ViewGroup
4.1.2 可视化控件
4.1.3 布局
4.1.4 音乐播放器用户界面(1)
4.2 菜单和对话框
4.2.1 菜单
4.2.2 对话框
4.2.3 音乐播放器用户界面(2)
4.3 进阶
4.3.1 响应用户界面的事件
4.3.2 用户界面的数据绑定
4.3.3 更改控件外观
4.3.4 音乐播放器用户界面(3)
4.4 小结
第5章 青鸟殷勤为探看——电话与短信应用
5.1 什么是Intent
5.2 解析Intent
5.2.1 显式Intent和隐式Intent
5.2.2 IntentFilter
5.3 用Intent激活电话拨号程序
5.3.1 拨号程序雏形
5.3.2 可输入电话号码的拨号程序
5.3.3 使用IntentFilter的拨号程序
5.4 用Intent实现一个简单的短信程序
5.4.1 创建TinySMS界面
5.4.2 设置权限
5.4.3 发送短信
5.5 Android中电话和短信服务的包
5.6 小结
第6章 仙乐风飘处处闻——构建你的音乐播放器
6.1 Service简介
6.2 使用BroadcastReceiver
6.3 让TinyPlayer播放音乐
6.3.1 Service部分
6.3.2 Activity部分
6.4 小结
第7章 乱花渐欲迷人眼——使用外部数据和服务
7.1 实例1:通过URL获取网络资源
7.2 实例2:用HTTP POST提交表单
7.3 实例3:用SAX解析XML文件
7.4 实例4:利用Google API完成天气预报
7.4.1 用户界面设计与实现
7.4.2 解析天气信息
7.5 实例5:用DOM解析XML文件——构建实时地震信息列表
7.5.1 XML解析器:DOM和SAX
7.5.2 通过DOM构建实时地震信息列表
7.5.3 使用DOM解析
7.6 小结
第8章 日暮乡关何处是——使用位置服务和地图API
8.1 位置服务
8.1.1 获取位置信息
8.1.2 构造LocationProvider查询条件
8.1.3 跟踪位置变化
8.2 基于地图的应用
8.2.1 获取Map API密钥
8.2.2 使用MapView下载显示地图
8.2.3 在地图上标记当前位置
8.3 用地图显示地震信息
8.4 小结
第9章 为有源头活水来——使用SQLite、ContentProvider与Preferences处理数据
9.1 文件I/O
9.2 SQLite数据库
9.2.1 SQLite数据库介绍
9.2.2 创建/打开SQLite数据库
9.2.3 利用SQLiteDatabase对象操作数据库
9.2.4 Cursor的使用
9.3 ContentProvider
9.3.1 定义ContentProvider
9.3.2 使用ContentResolver查询、更改数据
9.4 使用Preferences存储应用程序数据
9.5 让TinyPlayer播放本地音乐文件
9.6 小结
第10章 珠箔银屏迤逦开——桌面组件的开发
10.1 桌面组件简介
10.2 快捷方式
10.2.1 在应用程序中添加快捷方式
10.2.2 在Launcher添加应用程序的快捷方式
10.3 实时文件夹
10.3.1 定义创建实时文件夹的Activity
10.3.2 定义支持实时文件夹的ContentProvider
10.4 桌面部件
10.5 小结
第11章 欲书花叶寄朝云——虚拟软键盘与输入法
11.1 软键盘输入法简介
11.2 创建软键盘输入法
11.2.1 软键盘输入法的AndroidManifest.xml
11.2.2 输入法和软键盘的核心类
11.2.3 输入法
11.2.4 根据目标输入类型调整输入法布局
11.2.5 获取输入内容
11.2.6 截获硬键盘按键事件
11.2.7 输入候选View
11.3 小结
第12章 试借君王玉马鞭——准备发布应用程序
12.1 Android应用程序发布概览
12.2 最终用户许可协议
12.3 应用程序签名
12.3.1 概述
12.3.2 签名策略
12.3.3 为应用程序签名
12.4 应用程序版本
12.4.1 版本管理
12.4.2 应用程序升级
12.5 小结
第13章 书中自有黄金屋——销售Android应用程序
13.1 Sun开发人员的苹果App Store传奇
13.2 Android Market简介
13.2.1 Android Market是什么
13.2.2 Android Market的优势
13.2.3 在Android Market上发布应用程序
13.3 发布Android应用程序的其他途径
13.4 小结
附录A 常用的Android常量
附录B ADB的使用
附录C 在模拟器中虚拟SD卡