标题：Android经典应用程序开发
基本信息
作者： 韩超    
出版社：电子工业出版社  [1]ISBN：9787121155864
上架时间：2012-1-9
出版日期：2012 年2月
开本：16开
页码：1
版次：1-1
所属分类： 计算机
编辑推荐
具有清晰的主线，知识点全面，内容简洁实用
理论，文档和代码三者结合，以通用理念指引Android开发
内容简介
《android经典应用程序开发》内容理论联系实际，系统化组织。全书由8章组成，涵盖了android经典应用程序开发的各个方面，知识量巨大，技术要点清晰，结构紧凑而精炼。拥有本书后，结合android公开的参考文档和示例代码，读者将可以基本掌握在android经典应用层开发领域的所有方面。
《android经典应用程序开发》要求读者具有一定的java语言基础，具有c/c++ 基础和其他gui设计经验的工程师也可以阅读本书。初级读者可以通过本书逐步学习android应用程序开发的各个方面；高级读者可以关注技巧和细节，并扫除理论上的盲区，提高开发质量。
作者简介
韩超：中国大陆资深Linux和移动开发工程师，长期从事一线开发工作，兼具开发实践经验和完备的教育思维模式。韩超是中国大陆较早开发Android系统开发的人员，曾从事系统框架、芯片移植适配和移动产品等开发领域；也曾经引领各种技术人员进入Android领域，并组织参与技术交流。主要作品《Android系统级深入开发——移植与调试》、《Android系统原理及开发要点》，2本畅销单品均输出繁体版权。
前  言
Android经典应用程序开发是Android开发的一个主要方面，本书在Android系统基本成熟的时刻推出，目标是为了引导和促进Android应用程序开发实现系统化、结构化，让尽量多的开发者少走弯路，尽快夯实基础，创造出更多、更好的Android程序。同时，本书内容尽量利用Android系统现有的资源，帮助大中华地区的读者跨越中-英文的鸿沟，让读者学会高效地使用英文文档的同时，又能继续发挥东方民族思维缜密严谨、结构性强的优势。
本书特点本书紧紧抓住了Android经典应用程序开发。所谓经典应用程序开发，就是基于Android的标准API在SDK的环境下进行应用程序包（APK）的开发。这种开发模式下的开发成果可以作为Android系统的第三方的应用程序包，也可以作为Android产品中的应用程序。这是一种最基本、适用面最广的Android应用程序开发模式。
随着Android系统的发展，经历了1.0、1.1版本的初露锋芒阶段，1.5版本里程碑式的程序阶段，1.6版本的升级，2.0版本的重要阶段，2.1、2.2版本的升级，获得了Android 2.3版本。目前，Android 3.x版本为更适合平板电脑的系统，且开源策略与从前相比有所变化。因此Android 2.3版本为用于移动系统的相对稳定而高级的版本。Android 4.0作为Android系统最新的开源版本，其开发的技术方面依然和Android 2.3非常相似。Android 2.3中的开发方式和理念可以在Android 4.0开发中使用。
本书作者参与了Android系统三年多发展过程中的系统开发和产品开发，对Android整体架构和发展理念有着深刻的认识。随着Android系统趋于稳定，本书作者也获得了一个将成熟的Android系统的经典应用开发结构清晰完整地展示给读者的契机。
本书具有以下特点：
有一条清晰的主线，从UI相关和UI无关两大方面进行把握；
将Android应用开发的细节方面有侧重点地展示给读者；
涵盖内容多，简练讲解其精华部分；
采用理论知识、API参考文档和示例代码三者结合的方式；
按照使用者需求角度介绍程序开发的各个方面，而不受限于Android系统自身；
把通用GUI设计理念引入Android的应用开发中，便于具有其他系统基础的人员进入Android系统学习；
重视Android不同级别API层次，区分核心API和拓展API，让读者对程序的兼容性有深刻认识。
本书在风格上与本书作者的其他偏重介绍底层的作品具有明显的不同：本书以实用性为主，不过分探寻原理性的内容。这种风格的选择和应用程序层开发的特点密切相关，作为应用程序的开发者，目的不是研究别人的系统如何实现，而是基于别人的系统开发自己的成果——Android应用程序包。
本书内容本书分成8章，各章的内容如下表所示。
章    次
主 要 内 容
主 要 目 标
第1章Android应用开发基础
应用程序的开发模式，IDE开发环境的构建，Android应用程序的结构，API参考文档的使用
学会构建IDE环境，了解基本程序结构，学会使用参考文档
第2章UI程序的结构
基本UI程序的结构、活动组件和其内容视图的结合、控件的事件响应，设备事件的响应，屏幕间跳转，样式
深入了解UI部分的程序主体结构及编程方法
第3章 控件和布局
控件类的层次结构，自定义控件，视图组的结构，UI界面的布局方式，自适应视图的使用，标签组织多界面
学会控件的使用和界面组织
第4章 图形接口
2D图形系统结构和绘制，3D图形系统的结构和绘制，可绘制内容，动画
学会使用比较底层自由图形绘制
第5章 非UI组件和结构
活动、广播接收器、内容提供者三种非UI的组件，工程文件、资源资产
深入了解非UI部分的程序主体架构及相关编程
第6章Android应用开发的细节
全局介绍Android所有接口，安全性和权限，数据存储，硬件相关接口的适应性，程序通知方法
学会主体架构之外的几个重要的程序要点
第7章Android应用的设计思想 
程序的组件设计，程序的通信，UI设计，进程线程设计，程序结构性设计
从通用GUI的设计实现角度学习Android的系统
第8章Android的应用层插件
在Android应用程序层的多种标准化插件的构建方法
学会Android特定的集成架构
在知识层次方面，第1章为基础部分，第2章～第6章为主体部分，第7章和第8章为提高部分。
在知识结构方面，第1章提供基本方法，第2章～第4章为UI相关的主干部分，第5章为UI不相关的主干部分，第6章是根据Android特点对前5章内容的补充，最后两章则站在通用的程序设计的角度来介绍Android应用层程序的开发。本书读者本书要求读者具有一定的Java语言基础的工程师，具有C/C++ 基础和其他GUI设计经验的工程师也可以学习本书。
Android第三方应用程序的开发者，开放应用方面的Android系统开发者，有利于构建一个完整的知识Android应用开发的知识结构。
对于基础较浅的读者，可能感觉本书的内容偏多，此时应采取的阅读方法是，根据目录、小标题把握主干，首先掌握宏观内容。相信本书可以快速地帮助这类读者快速熟悉Android应用程序的开发。
对于有一定Android开发经验的读者，可能感觉本书的目录较简单。作者的目的正是为了通过有条理的目录结构，将清晰的开发结构展现给读者，而不是故弄玄虚地制造晦涩的内容。在这些看似简单的目录背后，在每一章节的正文中，具有很多技巧、细节和注意点，这些微观的方面对有经验的读者提升技能也是有一定帮助的。
为了使本书在理论上尽量覆盖全面，本书的编写风格大都为列出理论纲要，再列出实例。对于希望先具有感性认识的读者，可以先学习实例，再回过头阅读前面的理论，最后再探索细节。
本书需要使用Android的应用程序开发环境和部分典型的示例代码，建议读者使用Android官方提供的版本。随着版本的升级，内容可能略有不同。建议读者参考如下网站。本书作者本书的编写工作由中国大陆兼具产品和理论经验的工程师韩超领衔，内容来源于开发团队在不同领域的开发经验的总结和归纳。韩超完成了本书内容的主要部分，参与本书编写的还有来自Android开发领域的梁泉、崔海斌、马若劼、于仕林等，机锋网的张宇、张超、赵家维、黄亮、沈桢、徐威特等、国软时代的孙丽娜，以及杨钰、曹道刚等。广大社区开发者也对本书的成稿作出了贡献。
本书的核心作者团队大都来自开发一线，在工作之余完成本书。为了使本书尽早和读者见面，编写过程略显仓促。虽然经过审校，可能依然存在一些错误，敬请读者谅解。
目  录
《android经典应用程序开发》 
第1章 android应用开发基础 1 
1.1 android应用开发基础概述 1 
1.1.1 android应用开发的结构 1 
1.1.2 android应用程序 开发的目的 2 
1.2 基于android sdk的ide开发环境 2 
1.2.1 android ide开发环境的 组成和结构 2 
1.2.2 windows中的android sdk 开发环境安装 3 
1.2.3 linux环境中的android sdk 开发环境安装 10 
1.2.4 android中运行仿真器 环境 11 
1.2.5 android中建立工程 13 
1.2.6 在ide中使用各种android 工具 20 
1.2.7 其他android工具 26 
.1.3 android应用程序的结构 27 
1.3.1 android应用程序的代码 组成 27 
1.3.2 android应用示例 28 
1.3.3 应用程序生成运行过程 31 
1.4 android 应用开发的方法 33 
1.4.1 api参考文档的使用 33 
1.4.2 android应用开发模式 37 
第2章 ui程序的结构 39 
2.1 android中的界面组成 39 
2.1.1 屏幕（活动activity） 40 
2.1.2 屏幕中的内容 （视图view） 41 
2.1.3 二者的结合 41 
2.2 屏幕中内容的控制和响应 42 
2.2.1 基本响应方法 43 
2.2.2 变化的响应方法 45 
2.2.3 控件响应方法比较 47 
2.3 设备事件的响应 48 
2.3.1 键盘事件的响应 48 
2.3.2 运动事件的处理 51 
2.4 屏幕切换 56 
2.4.1 启动活动的方法 57 
2.4.2 带有返回结果的启动活动 58 
2.5 菜单、对话框和标题栏 61 
2.5.1 菜单的使用 61 
2.5.2 对话框的使用 65 
2.5.3 标题栏的使用 73 
2.6 样式和主题的使用 74 
2.6.1 控件中的样式 75 
2.6.2 全局性质的主题 75 
第3章 控件和布局 81 
3.1 控件 81 
3.1.1 android中的控件 81 
3.1.2 文本类控件 84 
3.1.3 图像类控件 88 
3.1.4 进度条类控件 91 
3.1.5 继承view实现自定义控件 96 
3.1.6 继承控件实现自定义控件 101 
3.2 视图组和屏幕的布局 104 
3.2.1 android中的视图组 104 
3.2.2 独立使用的视图组 108 
3.2.3 作为简单容器使用的视图组 113 
3.2.4 几种布局类的使用 116 
3.2.5 自适应视图adapterview 131 
3.2.6 tab的使用 147 
第4章 图形接口 158 
4.1 2d图形接口的使用 158 
4.1.1 使用2d图形接口的程序结构 158 
4.1.2 画布和画笔结合的基本绘制 159 
4.1.3 路径（path） 164 
4.1.4 文本（text） 166 
4.1.5 位图（bitmap） 171 
4.1.6 颜色效果 174 
4.1.7 画布状态和区域操作 177 
4.1.8 记录 182 
4.2 opengl 3d图形接口的使用 184 
4.2.1 使用opengl图形接口的程序结构 184 
4.2.2 单纯实现的渲染器动画 185 
4.2.3 具有交互的opengl绘制程序 189 
4.2.4 背景和透明效果 192 
4.2.5 另一种opengl的接口方式 196 
4.3 可绘制内容 198 
4.3.1 可绘制内容的概念 198 
4.3.2 使用xml文件表示基本的可绘制内容 199 
4.3.3 使用xml文件表示扩展的可绘制内容 202 
4.3.4 使用代码构建的可绘制内容 207 
4.4 动画 210 
4.4.1 动画的概念和分类 210 
4.4.2 补间动画 210 
4.4.3 帧动画 215 
4.4.4 屏幕切换的动画 216 
第5章 非ui组件和结构 219 
5.1 服务 219 
5.1.1 服务综述 219 
5.1.2 本地服务的调用者 222 
5.1.3 远程服务的使用 228 
5.1.4 服务的应用场景 236 
5.2 广播接收器 238 
5.2.1 广播接收器综述 238 
5.2.2 不同形态的广播接收器 239 
5.2.3 结合pendingintent使用广播接收器 241 
5.3 内容提供者 244 
5.3.1 内容提供者综述 244 
5.3.2 简单内容提供者的实现 248 
5.3.3 uri的处理 251 
5.3.4 内容提供者的打开文件功能 252 
5.4 工程描述文件、资源和资产 255 
5.4.1 android中的工程描述文件 255 
5.4.2 android中的资源 259 
5.4.3 android中的资产 265 
第6章 android应用开发的细节 268 
6.1 android api层次结构 268 
6.1.1 android api层次结构 268 
6.1.2 android的api级别 268 
6.1.3 android 的各个基本的核心包 270 
6.1.4 android 1.5增加的内容 274 
6.1.5 android 1.6增加的内容 275 
6.1.6 android 2.0-2.1增加的内容 276 
6.1.7 android 2.2增加的内容 277 
6.1.8 android 2.3.x增加的内容 278 
6.2 安全性和权限 280 
6.2.1 进程的用户id级别的权限 280 
6.2.2 许可 281 
6.3 数据存储 283 
6.3.1 android数据存储的方式 283 
6.3.2 文件和网络 284 
6.3.3 数据库的使用 285 
6.3.4 参数选项的使用 292 
6.4 硬件相关的程序 300 
6.4.1 硬件相关的类 301 
6.4.2 硬件相关的特性 301 
6.4.3 电源管理器 303 
6.4.4 警报器的使用 304 
6.4.5 音频系统的使用 304 
6.4.6 定位系统的使用 305 
6.4.7 电话系统的使用 307 
6.4.8 传感器的使用 310 
6.4.9 振动器的使用 312 
6.4.10 无线局域网的使用 313 
6.4.11 蓝牙的使用 314 
6.4.12 照相机的使用 316 
6.4.13 电池和电源信息的获取 318 
6.5 用户通知方法 318 
6.5.1 toast通知 318 
6.5.2 status bar通知 321 
第7章 android应用的设计思想 325 
7.1 程序的组件模式 325 
7.2 系统的脉络：intent 327 
7.2.1 intent的作用 327 
7.2.2 代码中intent的使用 328 
7.3 远程调用：binder和aidl 332 
7.3.1 应用层ipc的实现方式 332 
7.3.2 aidl文件的使用 333 
7.4 进程、线程和任务 334 
7.4.1 进程 335 
7.4.2 线程 337 
7.4.3 android中的任务 342 
7.5 ui设计 348 
7.5.1 布局的组合 348 
7.5.2 组合型控件 352 
7.5.3 布局的动态使用 355 
7.5.4 不同屏幕的适应性 357 
7.6 android的应用程序设计实现理念 359 
7.6.1 android程序的设计和实现的通用方法 359 
7.6.2 android程序的要点 361 
7.6.3 android中几种典型的程序结构 363 
第8章 android应用程序层插件 366 
8.1 android应用层插件的功能与作用 366 
8.1.1 应用层插件的特点 366 
8.1.2 应用层插件的结构 367 
8.1.3 主要应用层插件 368 
8.2 快捷方式（shortcut） 368 
8.2.1 shortcut的概念和用途 368 
8.2.2 shortcut的程序组成 369 
8.2.3 shortcut的实现 370 
8.3 活动目录（livefolder） 372 
8.3.1 livefolder的概念和用途 372 
8.3.2 livefolder的程序组成 373 
8.3.3 livefolder的实现 374 
8.4 应用小部件（app widget） 377 
8.4.1 app widget的概念和用途 377 
8.4.2 app widget程序的组成 378 
8.4.3 app widget的实现 380 
8.5 输入法（inputmethod） 383 
8.5.1 inputmethod的概念和用途 383 
8.5.2 inputmethod的程序组成 384 
8.5.3 inputmethod的实现 388 
8.6 活动墙纸（live wallpaper） 393 
8.6.1 live wallpaper的概念和用途 393 
8.6.2 live wallpaper的程序组成 393 
8.6.3 live wallpaper的实现 395 
8.7 可搜索程序（searchable） 397 
8.7.1 searchable的概念和用途 397 
8.7.2 searchable的程序组成 399 
8.7.3 searchable的实现 400 
8.8 账户和同步（account和sync） 405 
8.8.1 account和sync的概念和用途 405 
8.8.2 account和sync的程序组成 405 
8.8.3 account和sync的实现 408 
8.9 语音识别器（speechrecognizer） 412 
8.9.1 speechrecognizer的概念和用途 412 
8.9.2 speechrecognizer的程序组成 413 
8.9.3 语音识别器实现 414