一、目录介绍
第一部分 Android平台概览
第1章 Android简介
1.1 移动软件开发简史
1.1.1 遥想当年
1.1.2 “砖头”
1.1.3 无线应用协议(WAP)
1.1.4 专用移动平台
1.2 开放手机联盟(OHA)
1.2.1 无线Google
1.2.2 成立开放手机联盟
1.2.3 制造商:设计Android手机
1.2.4 移动运营商:传播Android体验
1.2.5 应用程序推动的设备销售:开发Android应用程序
1.2.6 充分发挥Android的优势
1.2.7 Android市场:我们的定位
1.3 Android平台的不同之处
1.3.1 Android:下一代平台
1.3.2 免费开放源代码
1.3.3 熟悉和廉价的开发工具
1.3.4 合理的开发人员学习曲线
1.3.5 强大的应用程序开发支持
1.3.6 丰富、安全的应用集成
1.3.7 无障碍发布
1.3.8 为应用程序提供的“自由市场”
1.3.9 新生并逐渐成长的平台
1.4 Android平台
1.4.1 Android的基本体系结构
1.4.2 安全与许可权限
1.4.3 开发Android应用程序
小结
参考资料和更多信息
第2章 搭建你的Android开发环境
2.1 配置你的开发环境
2.1.1 配置操作系统以适应设备调试
2.1.2 配置Android硬件以供调试
2.1.3 升级Android SDK
2.1.4 Android软件开发包的问题
2.2 探索Android SDK
2.2.1 理解Android SDK许可协议
2.2.2 阅读Android SDK文档
2.2.3 探索Android应用程序核心框架
2.2.4 了解Android核心工具
2.2.5 探索Android示例应用程序
小结
参考资料和更多信息
第3章 编写第一个Android应用程序
3.1 测试你的开发环境
3.1.1 在Eclipse工程中导入Snake应用程序
3.1.2 为Snake工程创建Android虚拟设备(AVD)
3.1.3 为Snake工程创建运行配置参数
3.1.4 在Android模拟器中运行Snake应用程序
3.2 构建你的第一个Android应用程序
3.2.1 创建和配置新的Android工程
3.2.2 Android应用程序的核心文件和目录
3.2.3 为新工程创建Android虚拟设备
3.2.4 为工程配置运行参数
3.2.5 在模拟器中运行Android应用程序
3.2.6 在模拟器中调试Android应用程序
3.2.7 为Android应用程序添加日志记录
3.2.8 为应用程序添加媒体支持
3.2.9 为应用程序添加位置服务(LBS)
3.2.10 在硬件上调试应用程序
小结
参考资料和更多信息
第4章 掌握Android开发工具
4.1 使用Android文档
4.2 使用Android模拟器
4.3 使用LogCat查看应用程序日志数据
4.4 使用DDMS调试应用程序
4.5 使用Android调试桥(ADB)
4.6 使用资源编辑器和UI设计器
4.7 使用Android层级浏览器
4.7.1 运行层级浏览器
4.7.2 使用布局浏览模式
4.7.3 优化用户界面
4.7.4 使用精细像素模式
4.8 使用九格拉伸图像
4.9 使用其他Android工具
小结
参考资料和更多信息
第二部分 Android应用程序设计基础
第5章 剖析Android应用程序
5.1 掌握重要的Android术语
5.2 使用应用程序Context
5.2.1 获取应用程序Context
5.2.2 使用应用程序Context
5.2.3 获取应用程序资源
5.2.4 访问应用程序首选项
5.2.5 访问应用程序文件和目录
5.2.6 获取应用程序组件
5.3 使用Activity执行应用程序任务
5.3.1 Android Activity的生命周期
5.3.2 使用Activity回调管理应用程序状态和资源
5.4 使用Fragment组织Activity组件
5.5 使用Intent管理Activity跳转
5.5.1 使用Intent实现Activity之间的跳转
5.5.2 使用Activity和Intent组织应用程序导航
5.6 使用服务
5.7 接收和广播Intent
小结
参考资料和更多信息
第6章 使用Android Manifest文件定义应用程序
6.1 使用Android Manifest文件配置Android应用程序
6.2 管理你的应用程序标识
6.2.1 为你的应用程序指定版本
6.2.2 给你的应用程序加上名称和图标
6.3 强制指定应用程序的系统需求
6.3.1 针对特定SDK版本
6.3.2 强制指定应用程序平台需求
6.3.3 使用外部库
6.3.4 其他应用程序配置及筛选器
6.4 在Android Manifest文件中注册Activity
6.4.1 使用Intent过滤器为应用程序指派主入口点Activity
6.4.2 配置其他Intent过滤器
6.4.3 注册其他应用程序组件
6.5 使用许可权限
6.5.1 注册应用程序所需的许可权限
6.5.2 注册应用程序强制要求的许可权限
6.6 探索Manifest文件的其他设置
小结
参考资料和更多信息
第7章 管理应用程序资源
7.1 什么是资源
7.1.1 存储应用程序资源
7.1.2 资源的类型
7.1.3 使用程序访问资源
7.2 使用Eclipse设置简单资源
7.3 使用不同种类的资源
7.3.1 使用String(字符串)资源
7.3.2 使用格式化的字符串资源
7.3.3 使用字符串数组
7.3.4 使用Boolean(布尔)资源
7.3.5 使用Integer(整型)资源
7.3.6 使用颜色
7.3.7 使用尺寸
7.3.8 使用简单Drawable资源
7.3.9 使用图像
7.3.10 使用动画
7.3.11 使用菜单
7.3.12 使用XML文件
7.3.13 使用原始文件
7.3.14 资源引用
7.3.15 使用布局(Layout)
7.4 引用系统资源
小结
参考资料和更多信息
第三部分 Android用户界面设计精髓
第8章 探索用户界面屏幕元素
8.1 Android视图和布局简介
8.1.1 Android视图简介
8.1.2 Android控件简介
8.1.3 Android布局简介
8.2 使用TextView显示文本
8.2.1 配置布局和尺寸
8.2.2 在文本中创建上下文链接
8.3 使用EditText获取用户数据
8.3.1 使用EditText控件获取用户输入文本
8.3.2 使用输入过滤器约束用户输入
8.4 使用自动补全辅助用户
8.5 使用Spinner控件为用户提供可选输入
8.6 使用按钮、多选框和单选组完成简单的用户选择
8.6.1 使用基本按钮
8.6.2 使用BheckBox和ToggleButton控件
8.6.3 使用RadioGroup和Radio Button
8.7 获取用户输入的日期和时间
8.8 使用指示器向用户显示数据
8.8.1 使用ProgressBar指示进度
8.8.2 使用SeekBar调整进度
8.8.3 使用RatingBar显示评分数据
8.8.4 使用Chronometer显示时间推移
8.8.5 显示时间
小结
参考资料和更多信息
第9章 使用布局设计用户界面
9.1 创建Android用户界面
9.1.1 使用XML资源创建布局
9.1.2 使用代码创建布局
9.2 组织用户界面
9.2.1 为布局设计使用ViewGroup子类
9.2.2 将ViewGroup子类作为视图容器
9.3 使用内建的布局类
9.3.1 使用FrameLayout
9.3.2 使用LinearLayout
9.3.3 使用RelativeLayout
9.3.4 使用TableLayout
9.3.5 使用GridLayout
9.3.6 在屏幕上使用多布局
9.4 使用容器控件类
9.4.1 使用数据驱动容器
9.4.2 使用标签组织视图
9.4.3 添加滚动支持
9.4.4 探索其他视图容器
小结
参考资料和更多信息
第10章 使用Fragment
10.1 理解Fragment
10.1.1 理解Fragment生命周期
10.1.2 使用特化的Fragment
10.1.3 设计基于Fragment的应用程序
10.2 使用Android支持包
10.2.1 为旧版应用程序添加Android Fragment支持
10.2.2 在新应用程序中针对旧版平台使用Fragment
10.2.3 在项目中链接Android支持包
小结
参考资料和更多信息
第11章 使用对话框
11.1 选择一种方式实现对话框
11.2 探索不同类型的对话框
11.3 使用对话框:以前的方法
11.4 使用对话框:Fragment方法
小结
参考资料和更多信息
第四部分 Android应用程序设计精髓
第12章 使用Android首选项
12.1 使用应用程序首选项
12.1.1 正确地使用首选项
12.1.2 存储不同类型的首选项值
12.1.3 创建私有和共享首选项
12.1.4 创建可供多个Activity使用的共享首选项
12.1.5 搜索和读取首选项
12.1.6 新增、修改和删除首选项
12.1.7 处理首选项变更
12.1.8 使用Android文件系统查找首选项数据
12.2 创建可管理的用户首选项
12.2.1 创建首选项资源文件
12.2.2 使用PreferenceActivity类
小结
参考资料和更多信息
第13章 使用文件和目录
13.1 使用设备应用程序数据
13.2 练习良好的文件管理
13.3 理解Android文件许可权限
13.4 使用文件和目录
13.4.1 探索Android应用程序目录
13.4.2 使用Android文件系统操作其他目录和文件
小结
参考资料和更多信息
第14章 使用内容提供器
14.1 探索Android内容提供器
14.1.1 使用MediaStore内容提供器
14.1.2 使用CallLog内容提供器
14.1.3 使用浏览器(Browser)内容提供器
14.1.4 使用CalenderContract内容提供器
14.1.5 使用UserDictionary(用户词典)内容提供器
14.1.6 使用VoicemailContract内容提供器
14.1.7 使用Settings内容提供器
14.1.8 使用联系簿(Contacts)内容提供器
14.2 修改内容提供器的数据
14.2.1 添加记录
14.2.2 修改记录
14.2.3 删除记录
14.3 使用第三方内容提供器
小结
参考资料和更多信息
第15章 设计高兼容性应用程序
15.1 最大化应用程序兼容性
15.2 为兼容性设计用户界面
15.2.1 使用Fragment
15.2.2 使用Android支持包
15.2.3 支持特定屏幕类型
15.2.4 使用九格拉伸图像
15.2.5 使用Working Square原理
15.3 提供应用程序替代资源
15.3.1 理解资源的解析(Resolve)方式
15.3.2 使用替代资源标识符
15.3.3 提供用于不同屏幕方向的资源
15.3.4 在程序中使用替代资源
15.3.5 高效地组织应用程序资源
15.4 面向平板电脑、电视和其他新设备
15.4.1 面向平板设备
15.4.2 面向Google电视设备
小结
参考资料和更多信息
第五部分 对外发布你的Android应用程序
第16章 移动软件开发过程
16.1 移动开发过程概览
16.2 选择一种软件开发方法
16.2.1 理解“瀑布模型”的危险
16.2.2 认识迭代式开发的价值
16.3 整合应用程序需求
16.3.1 确定工程需求
16.3.2 为移动应用程序开发用例
16.3.3 吸纳第三方需求
16.3.4 管理设备数据库
16.4 项目风险评估
16.4.1 确定目标设备
16.4.2 获取目标设备
16.4.3 确定应用程序需求的可行性
16.4.4 理解质量保障的风险
16.5 编写基本项目文档
16.5.1 为质量保障制定测试计划
16.5.2 提供第三方所需的文档
16.5.3 提供维护和移植所需的文档
16.6 使用配置管理系统
16.6.1 选择一个源代码控制系统
16.6.2 实现一个可用的版本管理系统
16.7 设计移动应用程序
16.7.1 认识移动设备的局限
16.7.2 移动应用程序体系结构探索
16.7.3 可扩展和维护设计
16.7.4 应用程序交互设计
16.8 开发移动应用程序
16.9 测试移动应用程序
16.1 发布移动应用程序
16.11 支持和维护移动应用程序
16.11.1 跟踪和定位用户产生的“崩溃”报告
16.11.2 测试固件升级
16.11.3 维护适当的应用程序文档
16.11.4 管理服务器的动态更改
16.11.5 确定低风险移植机会
小结
参考资料和更多信息
第17章 设计和开发“防弹”Android应用程序
17.1 “防弹”移动应用程序设计最佳实践
17.1.1 满足移动用户的需求
17.1.2 为移动设备设计用户界面
17.1.3 设计稳定、灵敏的移动应用程序
17.1.4 设计安全的移动应用程序
17.1.5 在设计移动应用程序时考虑利益的最大化
17.1.6 在Android应用程序设计时使用第三方标准
17.1.7 设计便于维护和升级的移动应用程序
17.1.8 在应用程序设计中使用Andriod工具
17.1.9 避免设计时的愚蠢错误
17.2 “防弹”移动应用程序开发最佳实践
17.2.1 设计有效的移动开发过程
17.2.2 提早和经常地测试应用程序可行性
17.2.3 使用代码标准、代码检查和单元测试以提高代码质量
17.2.4 处理某单一设备的缺陷
17.2.5 在应用程序开发中使用Android工具
17.2.6 避免开发时的愚蠢错误
小结
参考资料和更多信息
第18章 测试Android应用程序
18.1 设计一个应用程序漏洞跟踪系统
18.2 管理测试环境
18.3 尽量全面地进行测试
18.4 在应用程序测试中使用Android工具
18.5 避免测试时的愚蠢错误
小结
参考资料和更多信息
第19章 发布你的Android应用程序
19.1 选择合适的发布模式
19.1.1 保护你的知识产权
19.1.2 向用户收费
19.2 为发布而打包你的应用程序
19.2.1 准备封装你的代码
19.2.2 为你的应用程序打包并签名
19.2.3 测试软件包的发布版本
19.2.4 发布你的应用程序
19.3 在Android Market上发布你的应用程序
19.3.1 在Android Market上注册一个开发人员账号
19.3.2 将你的应用程序上传至Android Market
19.3.3 上传应用程序市场资源
19.3.4 配置应用程序详情页面
19.3.5 配置应用程序发布选项
19.3.6 配置应用程序联系信息和知情通知
19.3.7 将你的应用程序发布至Android Market
19.3.8 在Android Market上管理你的应用程序
19.4 通过其他途径发布应用程序
19.5 通过自主渠道发布应用程序
小结
参考资料和更多信息
第六部分 附录
附录A Android模拟器快速入门
A.1 模拟器的目的:虚拟现实
A.2 使用Android虚拟设备(AVD)
A.2.1 使用Android SDK和AVD管理器
A.2.2 创建AVD
A.3 使用指定AVD启动模拟器
A.3.1 维持模拟器高效运行
A.3.2 配置模拟器启动项
A.3.3 启动模拟器运行应用程序
A.3.4 从Android SDK和AVD管理器中启动模拟器
A.4 配置模拟器的GPS位置信息
A.5 在两个模拟器实例之间拨打电话
A.6 在两个模拟器实例之间发送消息
A.7 通过控制台与模拟器交互
A.7.1 使用控制台模拟来电
A.7.2 使用控制台模拟短消息
A.7.3 使用控制台发送GPS坐标
A.7.4 使用控制台监视网络状态
A.7.5 使用控制台操作电源设置
A.7.6 使用其他控制台命令
A.8 享受模拟器
A.9 认识模拟器的局限
参考资料和更多信息
附录B Android DDMS快速入门
B.1 独立或结合Eclipse使用DDMS
B.2 熟悉DDMS的关键特性
B.3 使用进程、线程和堆
B.3.1 向Android应用程序关联调试器
B.3.2 终止Android进程
B.3.3 监视Android应用程序的线程活动
B.3.4 监视堆活动
B.3.5 触发垃圾回收(GC)
B.3.6 创建和使用HPROF文件
B.4 使用内存分配(allocation)跟踪器
B.5 使用文件浏览器
B.5.1 浏览模拟器或设备上的文件系统
B.5.2 从模拟器或设备上复制文件
B.5.3 向模拟器或设备复制文件
B.5.4 删除模拟器或设备上的文件
B.6 使用模拟器控制
B.6.1 模拟语音来电
B.6.2 模拟短消息接收
B.6.3 发送位置坐标
B.7 在模拟器或目标设备上截屏
B.8 使用应用程序日志
附录C Eclipse技巧和诀窍
C.1 构建你的Eclipse工作空间
C.1.1 集成源代码管理服务
C.1.2 调整视图中的标签面板
C.1.3 最大化窗口
C.1.4 最小化窗口
C.1.5 显示并排窗口
C.1.6 显示同一文件的两个部分
C.1.7 关掉不需要的标签面板
C.1.8 保持对窗口的控制
C.1.9 定制日志过滤器
C.1.10 在项目中搜索
C.1.11 组织Eclipse任务
C.2 编写Java代码
C.2.1 善用自动补全(Autocomplete)
C.2.2 创建类和方法
C.2.3 组织导入
C.2.4 格式化代码
C.2.5 重命名
C.2.6 重构代码
C.2.7 整理代码
C.2.8 使用QuickFix
C.2.9 提供Javadoc风格的文件
C.2.10 解决诡异的构建错误
��