Android移动开发一本就够出版时间:2011年版内容简介 《Android移动开发一本就够》涵盖了Android开发从概念、技术到市场推广应用的全部话题,内容包括:Android概览、Android应用程序设计精髓、Android用户界面设计精髓、常用Android API、更多Android应用程序设计原则、对外发布你的Android应用程序和附录7个部分。附录还包含了Android开发常用工具(如模拟器、DDMS、调试桥、Eclipse和SQLite等)的使用指南。 《Android移动开发一本就够》不仅适合Android应用程序开发人员阅读,还能为QA测试人员提供指导。另外《Android移动开发一本就够》还可以帮助项目经理更好地管理项目进程和项目团队,帮助市场推广人员更好地把握市场,创造令人瞩目的销售业绩。目录第一部分 Android概览第1章 Android简介1.1 移动软件开发简史1.1.1 遥想当年1.1.2 “砖头”1.1.3 无线应用协议(WAP)1.1.4 专用移动平台1.2 开放手机联盟(OHA)1.2.1 无线Google1.2.2 成立开放手机联盟1.2.3 制造商:设计Android手机1.2.4 移动运营商:传播Android体验1.2.5 内容提供商:开发Android应用程序1.2.6 充分发挥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 SDK2.1.4 Android软件开发包的问题2.2 探索Android SDK2.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 在硬件上调试应用程序小结 参考资料和更多信息 第二部分 Android应用程序设计精髓第4章 剖析Android应用程序4.1 掌握重要的Android术语4.2 使用应用程序Context4.3 使用Activity执行应用程序任务4.3.1 Android Activity的生命周期4.3.2 使用Intent管理Activity跳转4.4 使用服务4.5 接收和广播Intent小结 参考资料和更多信息 第5章 使用Android Manifest文件定义应用程序5.1 配置Android Manifest文件5.2 管理你的应用程序标识5.2.1 为你的应用程序指定版本5.2.2 给你的应用程序加上名称和图标5.3 强制指定应用程序的系统需求5.3.1 针对特定SDK版本5.3.2 强制指定应用程序平台需求5.3.3 使用外部库5.4 注册Activity和其他应用程序组件5.4.1 使用Intent过滤器为应用程序指派主入口点Activity5.4.2 配置其他Intent过滤器5.5 使用许可权限5.5.1 注册应用程序所需的许可权限5.5.2 注册应用程序授予其他应用程序的许可权限5.6 探索Manifest文件的其他参数小结 参考资料和更多信息 第6章 管理应用程序资源6.1 什么是资源6.1.1 存储应用程序资源6.1.2 理解资源目录的层级结构6.1.3 资源的类型6.1.4 存储不同的资源类型6.1.5 使用程序访问资源6.2 使用Eclipse设置简单资源6.3 使用资源6.3.1 使用String(字符串)资源6.3.2 使用格式化的字符串资源6.3.3 使用字符串数组6.3.4 使用Boolean(布尔)资源6.3.5 使用Integer(整型)资源6.3.6 使用颜色6.3.7 使用尺寸6.3.8 使用简单Drawable资源6.3.9 使用图像6.3.10 使用动画6.3.11 使用菜单6.3.12 使用XML文件6.3.13 使用原始文件6.3.14 资源引用6.3.15 使用布局(Layout)6.3.16 使用样式(Style)6.3.17 使用主题(Theme)6.4 引用系统资源小结 参考资料和更多信息 第三部分 Android用户界面设计精髓第7章 探索用户界面屏幕元素7.1 Android视图和布局简介7.2 使用TextView显示文本7.2.1 配置布局和尺寸7.2.2 在文本中创建上下文链接7.3 获取用户数据7.3.1 使用EditText控件获取用户输入文本7.3.2 使用Spinner控件为用户提供可选输入7.4 使用按钮、多选框和单选组7.4.1 使用基本按钮7.4.2 使用多选框和开关(Toggle)按钮7.4.3 使用RadioGroup和RadioButton7.5 获取用户输入的日期和时间7.6 使用指示器向用户显示数据7.7 使用SeekBar调整进度7.7.1 使用RatingBar显示评分数据7.7.2 使用Chronometer显示时间推移7.7.3 显示时间7.8 为用户提供选项和上下文菜单7.8.1 使用选项菜单7.8.2 使用ContextMenu7.9 处理用户事件7.9.1 监听触摸模式状态改变7.9.2 监听全屏幕上的事件7.9.3 监听长时单击7.9.4 监听焦点改变7.1 使用对话框7.10.1 探索不同类型的对话框7.10.2 跟踪对话框的生命周期7.10.3 使用自定义对话框7.11 使用样式7.12 使用主题小结 第8章 使用布局设计用户界面8.1 创建Android用户界面8.1.1 使用XML资源创建布局8.1.2 使用代码创建布局8.2 组织用户界面8.3 使用内建的布局类8.3.1 使用FrameLayout8.3.2 使用LinearLayout8.3.3 使用RelativeLayout8.3.4 使用TableLayout8.3.5 在屏幕上使用多布局8.4 使用内建的View容器类8.4.1 使用数据驱动容器8.4.2 使用标签组织视图8.4.3 添加滚动支持8.4.4 探索其他视图容器小结 第9章 绘图与动画9.1 屏幕绘图9.2 使用文字9.2.1 使用默认字体9.2.2 使用自定义字体9.2.3 测量文字所需的屏幕尺寸9.3 使用位图9.4 使用图形9.4.1 用XML资源定义图形9.4.2 使用程序定义图形9.4.3 绘制各种图形9.5 使用动画9.5.1 使用逐帧动画9.5.2 使用补间动画小结 第四部分 使用常用Android API第10章 使用Android数据和存储API10.1 使用应用程序首选项10.1.1 创建私有和共享首选项10.1.2 搜索和读取首选项10.1.3 新增、修改和删除首选项10.1.4 使用Android文件系统查找首选项数据10.2 使用文件和目录10.2.1 探索Android应用程序目录10.2.2 使用Android文件系统操作其他目录和文件10.3 使用SQLite数据库存储结构化数据10.3.1 创建SQLite数据库10.3.2 创建、修改和删除数据库记录10.3.3 在SQLite数据库中执行查询10.3.4 关闭和删除SQLite数据库10.3.5 设计持久数据库10.3.6 向应用程序界面绑定数据小结 参考资料和更多信息 第11章 使用内容提供器在应用程序间共享数据11.1 探索Android内容提供器11.1.1 使用MediaStore内容提供器11.1.2 使用CallLog内容提供器11.1.3 使用浏览器(Browser)内容提供器11.1.4 使用联系簿(Contacts)内容提供器11.1.5 使用UserDictionary(用户词典)内容提供器11.1.6 使用Settings内容提供器11.2 修改内容提供器的数据11.2.1 添加记录11.2.2 修改记录11.2.3 删除记录11.3 使用内容提供器增强你的应用程序11.4 实现内容提供器11.4.1 实现内容提供器接口11.4.2 定义数据URI11.4.3 定义数据列11.4.4 实现重要的内容提供器方法11.4.5 更新Manifest文件11.5 使用动态文件夹(Live Folder)小结 参考资料和更多信息 第12章 使用Android网络API12.1 移动网络基础12.2 访问因特网(HTTP)12.2.1 从Web读取数据12.2.2 使用HttpURLConnection12.2.3 解析从网络获取的XML12.2.4 异步操作12.2.5 使用AsyncTask12.2.6 使用线程进行网络访问12.2.7 显示从网络资源获取的图像12.2.8 获取Android网络状态小结 227参考资料和更多信息 第13章 使用Android Web API13.1 使用WebView浏览Web13.1.1 设计带有WebView控件的布局13.1.2 向WebView控件载入内容13.1.3 为WebView控件添加功能13.2 使用WebKit延伸Web应用13.2.1 浏览WebKit API13.2.2 扩展Android Web应用程序的功能13.3 使用Flash13.3.1 使用Flash应用程序13.3.2 构建AIR应用程序小结 参考资料和更多信息 第14章 使用位置服务API14.1 使用全球定位服务(GPS)14.1.1 在你的应用程序中使用GPS功能 14.1.2 查找你的位置14.1.3 定位你的模拟器14.2 位置地理编码14.3 在地图上标注位置14.3.1 地图标注内容14.3.2 地图标注视图14.3.3 获得调试API Key14.3.4 拖曳地图视图14.3.5 缩放地图视图14.3.6 标记点14.4 位置服务扩展应用小结 参考资料和更多信息 第15章 使用Android多媒体API15.1 使用多媒体15.2 使用静态图像15.2.1 使用摄像头捕捉静态图像15.2.2 配置摄像头模式15.2.3 分享图像15.2.4 将图像指定为壁纸15.3 使用视频15.3.1 录制视频15.3.2 播放视频15.4 使用音频15.4.1 录制音频15.4.2 播放音频15.4.3 共享音频15.4.4 搜索多媒体15.4.5 使用铃音小结 参考资料和更多信息 第16章 使用Android电话API16.1 使用电话功能16.1.1 为获取手机状态信息取得许可权限16.1.2 获取通话状态16.1.3 请求获取服务信息16.1.4 监控信号强度和数据连接速度16.1.5 使用电话号码16.2 使用短消息16.2.1 获得发送和接收短消息的许可权限16.2.2 发送短消息16.2.3 接收短消息16.3 拨打和接听电话小结 参考资料和更多信息 第17章 通过OpenGL ES使用Android 3D图形17.1 使用OpenGL ES17.1.1 在Android中使用OpenGL ES17.1.2 保证设备兼容性17.2 在Android SDK中使用OpenGL ES API17.3 手工处理OpenGL ES任务17.3.1 创建SurfaceView17.3.2 启动OpenGL ES线程17.3.3 初始化EGL17.3.4 初始化GL17.3.5 屏幕绘制17.4 绘制3D物体17.4.1 绘制顶点(Vertices)17.4.2 为顶点着色17.4.3 绘制更多复杂物体17.4.4 照亮你的场景17.4.5 为对象赋予材质17.5 同Android视图和事件进行交互17.5.1 允许OpenGL线程向应用程序线程发送信息17.5.2 允许应用程序线程向OpenGL线程发送信息17.6 清理OpenGL ES17.7 使用GLSurfaceView17.8 使用OpenGL ES 2.017.8.1 为OpenGL ES 2.0配置应用程序17.8.2 获取OpenGL ES 2.0平面小结 参考资料和更多信息 第18章 使用Android NDK18.1 何时使用Android NDK18.2 安装Android NDK18.3 探索Android NDK18.4 创建自己的NDK工程18.4.1 使用Java调用原生代码18.4.2 处理参数和返回值18.4.3 在原生代码中使用异常18.5 提升图形处理性能小结 参考资料和更多信息 第19章 使用Android可选硬件API19.1 与设备硬件进行交互19.2 使用设备传感器19.2.1 使用不同的传感器19.2.2 获取对传感器的访问19.2.3 读取传感器数据19.2.4 校正传感器19.2.5 确定设备的方向19.2.6 指北19.3 使用Wi-Fi19.4 使用蓝牙19.4.1 检查可用的蓝牙硬件19.4.2 开启蓝牙19.4.3 查询配对设备19.4.4 搜索设备19.4.5 建立设备间连接19.5 监视电池小结 参考资料和更多信息 第五部分 更多Android应用程序设计原则第20章 使用通知20.1 向用户发出通知20.2 使用状态栏发布通知20.2.1 使用NotificationManager服务20.2.2 创建一个带有图标的简单文本通知20.2.3 使用通知队列20.2.4 更新通知20.2.5 清除通知20.3 让手机震动20.4 灯光闪烁20.5 发出声响20.6 自定义通知20.7 设计有用的通知小结 参考资料和更多信息 第21章 使用服务21.1 何时使用服务21.2 理解服务的生命周期21.3 创建服务21.4 控制服务21.5 实现远程接口21.6 实现可包装(Parcelable)类小结 参考资料和更多信息 第22章 扩展Android应用程序22.1 增强你的应用程序22.2 使用应用程序小插件22.2.1 创建应用程序小插件22.2.2 安装应用程序小插件22.2.3 成为小插件“宿主(Host)”22.3 使用动态壁纸(Live Wallpaper)22.3.1 创建动态壁纸22.3.2 安装动态壁纸22.4 成为内容类型处理器(Content Type Handler)22.5 确定Intent动作和MIME类型22.5.1 实现Activity处理Intent22.5.2 注册Intent过滤器22.6 让应用程序的内容可搜索22.6.1 在应用程序内启用搜索22.6.2 启用全局搜索22.7 使用动态文件夹22.7.1 创建动态文件夹22.7.2 安装动态文件夹小结 参考资料和更多信息 第23章 用户账户管理与数据同步23.1 使用账户管理器管理账户23.2 使用备份服务23.2.1 选择远程备份服务23.2.2 实现备份代理(Agent)23.2.3 备份和恢复应用程序数据小结 参考资料和更多信息 第24章 处理高级用户输入24.1 使用文本输入法24.1.1 使用软键盘24.1.2 使用文本预测和用户词典24.2 探索辅助功能(Accessibility)框架24.2.1 使用语音识别服务24.2.2 使用语音合成(TTS)服务24.3 使用手势24.4 处理普通单点触控手势24.4.1 处理普通多点触控手势24.4.2 让手势更自然24.5 使用轨迹球24.6 处理屏幕方向改变小结 参考资料和更多信息 第25章 面向不同设备配置和语言25.1 最大化应用程序兼容性25.2 为兼容性设计用户界面25.2.1 支持特定屏幕类型25.2.2 使用九格拉伸图像25.2.3 使用Working Square原理25.3 提供应用程序替代资源25.3.1 使用替代资源标识符25.3.2 提供用于不同屏幕方向的资源25.3.3 在程序中使用替代资源25.3.4 高效地组织应用程序资源25.4 应用程序国际化25.4.1 使用替代资源实现国际化25.4.2 在程序中实现本地化支持25.5 面向不同设备配置25.5.1 支持硬件配置25.5.2 面向不同Android SDK版本小结 参考资料和更多信息 第六部分 对外发布你的Android应用程序第26章 移动软件开发过程26.1 移动开发过程概览26.2 选择一种软件开发方法26.2.1 理解“瀑布模型”的危险26.2.2 认识迭代式开发的价值26.3 整合应用程序需求26.3.1 确定工程需求26.3.2 为移动应用程序开发用例26.3.3 吸纳第三方需求26.3.4 管理设备数据库26.4 项目风险评估26.4.1 确定目标设备26.4.2 获取目标设备26.4.3 确定应用程序需求的可行性26.4.4 理解质量保障的风险26.5 编写基本项目文档26.6 使用配置管理系统26.7 设计移动应用程序26.7.1 认识移动设备的局限26.7.2 移动应用程序体系结构探索26.7.3 可扩展和维护设计26.7.4 应用程序交互设计26.8 开发移动应用程序26.9 测试移动应用程序26.1 发布移动应用程序26.11 支持和维护移动应用程序小结 参考资料和更多信息 第27章 设计和开发“防弹”Android应用程序27.1 “防弹”移动应用程序设计最佳实践 27.1.1 满足移动用户的需求27.1.2 为移动设备设计用户界面27.1.3 设计稳定、灵敏的移动应用程序27.1.4 设计安全的移动应用程序27.1.5 在设计移动应用程序时考虑利益的最大化27.1.6 在Android应用程序设计时使用第三方标准27.1.7 设计便于维护和升级的移动应用程序27.1.8 在应用程序设计中使用Andriod工具27.1.9 避免设计时的愚蠢错误27.2 “防弹”移动应用程序开发最佳实践 27.2.1 设计有效的移动开发过程27.2.2 提早和经常地测试应用程序可行性27.2.3 使用代码标准、代码检查和单元测试以提高代码质量27.2.4 处理某单一设备的缺陷27.2.5 在应用程序开发中使用Android工具27.2.6 避免开发时的愚蠢错误小结 参考资料和更多信息 第28章 测试Android应用程序28.1 设计一个应用程序漏洞跟踪系统28.2 管理测试环境28.3 尽量全面地进行测试28.4 在应用程序测试中使用Android工具28.5 避免测试时的愚蠢错误28.6 外包测试的责任小结 参考资料和更多信息 第29章 销售你的Android应用程序29.1 选择合适的发布模式29.2 为发布而打包你的应用程序29.2.1 准备封装你的代码29.2.2 为你的应用程序打包并签名29.2.3 测试软件包的发布版本29.2.4 认证你的Android应用程序29.3 发布你的应用程序29.3.1 在Android Market上销售你的应用程序29.3.2 在自己的服务器上销售你的应用程序29.3.3 销售应用程序的其他途径29.3.4 保护你的知识产权29.3.5 让用户付费小结 455参考资料和更多信息 第七部分 附录附录A Android模拟器快速入门A.1 模拟器的目的:虚拟现实A.2 使用Android虚拟设备(AVD)A.2.1 使用Android SDK和AVD管理器A.2.2 创建AVDA.3 使用指定AVD启动模拟器A.3.1 配置模拟器启动项A.3.2 启动模拟器运行应用程序A.3.3 从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使用DDMSB.2 熟悉DDMS的关键特性B.3 使用进程B.3.1 向Android应用程序关联调试器B.3.2 监视Android应用程序的线程活动B.3.3 触发垃圾回收(GC)B.3.4 监视堆活动B.3.5 监视内存分配B.3.6 终止Android进程B.4 使用文件浏览器B.4.1 浏览模拟器或设备上的文件系统B.4.2 从模拟器或设备上拷贝文件B.4.3 向模拟器或设备拷贝文件B.4.4 删除模拟器或设备上的文件B.5 使用模拟器控制B.5.1 模拟语音来电B.5.2 模拟短消息接收B.5.3 发送位置坐标B.6 使用应用程序日志B.7 在模拟器或目标设备上截屏附录C Android调试桥快速入门C.1 列表显示连接的设备和模拟器C.2 针对特定设备使用ADB命令C.3 启动和停止ADB服务进程C.3.1 停止ADB服务进程C.3.2 启动和检测ADB服务进程C.4 发布Shell命令C.4.1 发布单条Shell命令C.4.2 使用Shell会话C.4.3 使用Shell启动和终止模拟器C.5 拷贝文件C.5.1 向设备或模拟器发送文件C.5.2 从设备提取文件C.6 安装和卸载Android应用程序C.6.1 安装应用程序C.6.2 重装应用程序C.6.3 卸载应用程序C.7 使用LogCat记录日志C.7.1 显示所有的日志信息C.7.2 在日志数据中包含日期和时间信息C.7.3 过滤日志信息C.7.4 清除日志C.7.5 将日志输出重定向至一个文件C.7.6 访问次级日志C.8 控制备份服务C.8.1 强制备份操作C.8.2 强制恢复操作C.8.3 将存档数据清空C.9 生成Bug报告C.10 使用Shell查看SQLite数据库C.10.1 在ADB Shell中进行应用程序压力测试C.10.2 通过Shell安装和使用自定义二进制文件C.11 其他ADB命令探索附录D Eclipse技巧和诀窍D.1 构建你的Eclipse工作空间D.1.1 集成源代码管理服务D.1.2 调整视图中的标签面板D.1.3 最大化窗口D.1.4 最小化窗口D.1.5 显示并排窗口D.1.6 显示同一文件的两个部分D.1.7 关掉不需要的标签面板D.1.8 保持对窗口的控制D.1.9 定制日志过滤器D.2 编写Java代码D.2.1 善用自动补全(Auto-Complete)D.2.2 格式化代码D.2.3 创建类D.2.4 创建方法存根(stub)D.2.5 组织导入D.2.6 重命名D.2.7 重构代码D.2.8 整理代码D.2.9 提供Javadoc风格的文件D.2.10 解决诡异的构建错误附录E SQLite快速入门E.1 探索SQLite的常见任务E.2 使用sqlite3命令行接口E.2.1 运行ADB ShellE.2.2 连接数据库E.2.3 探索你的数据库E.2.4 导入和导出数据库E.2.5 在命令行中执行SQL命令E.2.6 使用其他的sqlite3命令E.2.7 认识SQLite的局限E.3 通过实例学习:学生成绩数据库E.3.1 设计学生成绩数据库的模式E.3.2 结合AUTOINCREMENT创建简单表E.3.3 向表中插入数据E.3.4 使用SELECT查询表数据E.3.5 创建具有外键和复合主键的表E.3.6 修改和更新表数据E.3.7 使用JOIN进行多表查询E.3.8 使用计算列E.3.9 对计算列使用子查询E.3.10 删除表 上一篇: Android开发入门与实战体验 下一篇: 现代通信技术与业务