【Android源码 栏目提醒】:以下是网学会员为您推荐的Android源码 -Android应用开发实战 文前 - 操作系统,希望本篇文章对您学习有所帮助。
Android 应用开发实战 李宁 著 这是一本实践与理论紧密结合的
Android 应用开发参考书。
实践部分以一个完整的大型案例( 功能完善的微博客户端 ) 贯穿始终, 以迭代的方式详细演示和讲解了该案例的开发全过程, 旨在帮助读者迅速理清
Android 应用开发的完整流程和实现细节, 同时, 对开发过程中所涉及的理论知识进行了详细的分析和讲解。
理论部分是对实践部分的升华, 对
Android 应用开发所需具备的高级知识和常用技巧进行了深入的阐述, 读者掌握这部分内容后,在迅速获得实际应用开发经验之后还能进一步提升自己的理论技术功底。
全书一共分为三个部分。
第一部分基础篇 :全面介绍了
Android 的系统架构、开发环境的搭建、
Android 应用程序的常用组件, 以及一个简单的微博客户端的实现方法, 为接下来动手实现本书中的完整案例(新浪微博客户端)奠定了基础;第二部分实例篇:介绍了微博客户端的概况以及新浪微博 API,然后根据微博客户端的功能划分详细地介绍了微博客户端各个功能模块的实现方法和细节, 包括界面展示、 代码分析, 还有对所运用的理论知识的重点讲解, 既便于读者动手实践, 又能帮助读者巩固已经掌握的理论知识 ; 第三部分高级篇 : 讲解了
Android 开发中的高级技术, 包括各种常用的
Android 资源、 通信功能的开发、数据库、 蓝牙与 Wi-Fi、 第三方程序库、2D 绘图技术、OpenGL ES 绘图技术、
Android 的编译,以及
Android 的性能优化方法和实践;最后,详细介绍了
Android 4.0 的新特征。
封底无防伪标均为盗版 版权所有,侵权必究 本书法律顾问 北京市展达律师事务所 图书在版编目(CIP)数据
Android 应用开发实战 / 李宁著 . —北京:机械工业出版社,2011.11 ISBN 978-7-111-36260-9 I. A… II. 李… III. 移动电话机 - 应用程序 - 程序设计 IV. TN929.53 中国版本图书馆 CIP 数据核字(2011)第 217326 号 机械工业出版社(北京市西城区百万庄大街 22 号 邮政编码 100037) 责任编辑:白 宇 印刷 2012 年 1 月第 1 版第 1 次印刷 186mm×240mm 27.75 印张 标准书号:ISBN 978-7-111-36260-9 定价:69.00 元 凡购本书,如有缺页、倒页、脱页,由本社发行部调换 客服热线: 010)88378991;88361066 ( 购书热线: 010)68326294;88379649;68995259 ( 投稿热线: 010)88379604 ( 读者信箱:hzjsjhzbook.com 前 言 为什么要写这本书 几年前开始接触
Android 时就被
Android 自由开发的精神所感染。
虽然
Android 在诞生之初曾在 iPhone 的阴影下沉寂了很长时间, 也受到很多的质疑,但随着加入
Android 阵营的手机厂商、 软件开发商、 电信运营商和个人开发者的增多,
Android 的势头也逐渐赶上并超过了 iPhone,成为占有率第一的移动操作系统。
由于
Android 发展迅速, 导致了就业市场对
Android 开发人员的需求量猛增。
然而, 很多企业需要的是拥有实践经验的开发人员。
刚毕业的大学生一般没有企业要求的实践经验,而培训机构的高昂培训费又令他们望而却步。
尽管可以通过很多
Android 书籍中的小例子积累一些经验, 但这些例子毕竟有限, 有的也不完整, 根本达不到企业所要求的水平。
笔者在参与公司的面试过程中多次遇到了这些问题。
为此, 笔者特意选择了一个完整的项目新浪微博客户端作为本书的核心来讲解, 其中涉及大部分的
Android 技术。
读者通过仔细研究这个项目的实现方法以及本书提供的源代码, 可以大大增加自己的实践经验。
为了使读者获得更多的
Android 知识, 本书还重点介绍了几项
Android SDK 中常用的技术, 为读者提供实践经验外的理论储备。
读者对象 想增加
Android 实践经验的
Android 初学者 想从事
Android 开发工作的在校或即将毕业的大学生 有 Java 基础,想进入移动领域的开发人员 想进一步提高技术和实践能力的开发人员 开设
Android 课程的大专院校和培训机构 所有对
Android 感兴趣的读者IV如何阅读本书 本书分为三大部分: 第一部分为基础篇, 介绍了
Android 开发的基础知识, 除此之外, 还介绍了如何使用新浪微博 SDK 开发客户端程序,并给出一个简单的例子供读者练习。
第二部分为实例篇, 通过一个新浪微博客户端程序介绍如何使用
Android 技术和新浪微博 SDK 开发一个完整的应用程序。
这部分相对独立, 如果你是一名有经验的
Android 开发人员, 能够理解和使用
Android 开发技术, 那么可以直接阅读这部分内容。
但如果你是一名
Android 初学者,请一定从第 1 章开始学习。
第三部分为高级篇, 重点介绍了
Android SDK 中一些常用的高级技术。
例如
Android 资源、 电话和短信的处理、 数据库、 蓝牙、2D 和 3D 绘图、 编译器在
Android 中的应用等。
读者可以通过这部分内容,进一步提高
Android 的理论和实践能力。
本书的大部分章节都提供了源代码( 由于篇幅有限, 书中只展示了核心代码, 完整的源代码可以在网上 下载 ) 建议读者先阅读本书的内容, 如果仍然不理解书中的理论和代码, ,可以将完整的源代码导入 Eclipse 中,运行并调试这些代码。
在下载本书的源代码后,可以按下面的方法将
Android 工程导入 Eclipse。
单击 Eclipse 的【File】→【Import】菜单项,打开【Import】对话框,选择【Existing Projectsinto Workspace】节点,如图 1 所示。
单击【Next】按钮进入下一个页面后,单击【Browse...】按钮选择要导入的
Android 工程,如图 2 所示。
最后单击【Finish】按钮即可导入
Android 工程。
图 1 选择【Existing Projects into Workspace】节点 图 2 选择要导入的工程 请先在华章公司网站 ( www.hzbook.com ) 上搜索到本书 , 在本书页面上即可找到相关源代码的下载链 接。
—编辑注 V勘误和支持 除封面署名外, 参加本书编写工作的还有赵华振、 李斌锋、 邓斌、 戚祥、 于伟、 皮文星、 陈育春、 陆正武、 虞晓东、 张恒汝、 高 喆、 刘威、 刘冉、 付志涛、 宗杰、 王大平、 李振捷、李波、张鹏、管西京、闫芳、王玉芹、王秀明、杨振珂。
由 于 作 者 的 水 平 有 限, 编 写 时 间 仓 促, 书 中 难 免 会 出 现 一 些 错 误 或 者 不 准 确 的地 方, 恳 请 读 者 批 评 指 正。
为 此, 笔 者 特 意 创 建 了 一 个 在 线 答 疑 和 发 布 勘 误 的 论坛 http://books.51happyblog.com, 读者可以将书中的错误、 建议、 技术问题发布在相关的版页, 同时也请关注本论坛发布的本书相关信息。
书中的全部源代码除可以从华章公司的网站下载外, 还可以从这个论坛下载。
如果你有更多的宝贵意见, 也欢迎发送邮件至邮箱techcast126.com。
期待得到你们的真挚反馈。
致谢 感谢所有在本书写作过程中给予我指导、 帮助和鼓励的朋友, 尤其是机械工业出版社华章公司的编辑杨福川和白宇, 他们不仅对本书提出了宝贵的写作建议, 而且还对本书进行了仔细的审阅。
感谢一直以来信任、鼓励、支持我的家人和朋友。
感谢 eoeAndroid、移动开发者社区的朋友对我技术上的帮助。
谨以此书献给我最亲爱的家人,以及众多热爱
Android 的朋友们! 李宁(银河使者) 2011 年 8 月于中国沈阳 目 录前 言第一部分 基础篇—
Android 开发基础第 1 章
Android 应用开发基础 / 2 1.1
Android 的系统构架 / 2 1.2
Android 开发环境搭建 / 3 1.2.1 安装 JDK 和配置 Java 开发环境 / 3 1.2.2 安装
Android SDK / 4 1.2.3 安装 Eclipse 插件 ADT / 6 1.3
Android 应用程序中的资源 / 7 1.4
Android 的应用程序组件 / 8 1.4.1 Activity(
Android 的窗体)/ 8 1.4.2 Service(服务)/ 9 1.4.3 Broadcast Receiver(广播接收器)/ 9 1.4.4 Content Provider(内容提供者)/ 10 1.5 小结 / 10第 2 章 开发前的准备工作 / 11 2.1 建立
Android 工程 / 11 2.2 引用新浪微博 SDK / 12 2.3 引用第三方类库 / 12 2.4 跨工程调试新浪微博 SDK / 12 VII 2.5 异步访问 API / 13 2.5.1 使用 SDK 本身的异步功能 / 14 2.5.2 为 SDK 自定义异步功能 / 15 2.6 小结 / 18第 3 章 实现一个简单的微博客户端 / 19 3.1 编写
Android 的服务 / 19 3.2 让任何拍照软件都成为微博客户端 / 19 3.2.1 可以监视目录文件的服务 / 20 3.2.2 发布带图像的微博 / 23 3.3 小结 / 25第二部分 实例篇— 微博客户端开发第 4 章 微博客户端概况 / 28 4.1 参考客户端 / 28 4.1.1 新浪微博官方
Android 客户端 / 28 4.1.2 网易微博官方
Android 客户端 / 30 4.1.3 腾讯微博官方
Android 客户端 / 30 4.2 功能模块展示 / 31 4.2.1 登录 / 31 4.2.2 账户管理 / 31 4.2.3 微博列表 / 32 4.2.4 私信列表 / 32 4.2.5 撰写微博 / 32 4.2.6 图像渲染 / 33 4.2.7 转发、评论与收藏微博 / 33 4.2.8 搜索微博和用户 / 33 4.3 小结 / 34第 5 章 新浪微博 API 详解 / 35 5.1 新浪微博 API 有哪些功能 / 35 5.2 使用新浪微博 API 开发前的准备工作 / 36 5.2.1 申请新浪微博应用程序 / 36VIII 5.2.2 访问和测试 API / 37 5.2.3 测试新浪微博 SDK / 40 5.3 身份认证 / 43 5.3.1 Basic 认证 / 43 5.3.2 OAuth 认证 / 44 5.4 利用新浪微博 SDK 获取微博消息 / 46 5.4.1 获取公共微博消息 / 46 5.4.2 获取登录用户首页的微博消息 / 48 5.4.3 获取当前用户发布的微博消息 / 50 5.4.4 获取 提到我的微博消息 / 50 5.4.5 获取当前用户的评论列表 / 51 5.4.6 获取指定微博的评论列表 / 52 5.4.7 获取微博的评论数和转发数 / 53 5.4.8 获取用户相关消息 / 53 5.5 更新微博及其相关内容 / 54 5.5.1 发布文字微博 / 54 5.5.2 发布图像微博 / 55 5.5.3 评论微博 / 56 5.5.4 回复评论 / 56 5.5.5 转发微博 / 58 5.6 新浪微博 API 的搜索功能 / 59 5.6.1 搜索用户 / 59 5.6.2 搜索微博 / 59 5.7 小结 / 60第 6 章 用户登录与用户注册 / 61 6.1 设计登录界面 / 61 6.1.1 登录界面的布局 / 61 6.1.2 登录界面的装载模式 / 63 6.2 事件处理机制 / 64 6.2.1 编写事件处理类 / 65 6.2.2 扩展微博事件处理 / 66 6.3 用户登录 / 69 6.3.1 响应用户登录事件 / 69 6.3.2 用户登录成功 / 70 IX 6.3.3 用户登录失败 / 71 6.4 用户注册 / 72 6.5 关注作者微博 / 72 6.6 小结 / 72第 7 章 首页微博列表 / 73 7.1 主界面设计 / 73 7.1.1 主界面布局 / 73 7.1.2 微博列表项布局 / 77 7.1.3 装载主界面 / 78 7.2 实现系统工具类 / 81 / 7.2.1 NotificationProcess 类(处理通知列表) 81 7.2.2 SystemDBService 类(操作数据库)/ 85 7.2.3 HappyBlogConfig 类(读写配置文件)/ 87 / 7.2.4 ProcessTasks 类(处理返回数据) 88 7.3 系统初始化 / 90 7.3.1 初始化 SystemDBService 对象 / 90 7.3.2 为每个账号创建 MyMicroBlogAsync 对象 / 92 7.3.3 初始化处理微博列表的对象 / 93 7.4 装载首页微博数据 / 94 7.4.1 显示微博数据 / 94 7.4.2 装载头像和微博图像 / 96 7.5 小结 / 99第 8 章 切换微博列表 / 100 8.1 显示公共微博列表 / 100 8.2 显示我的微博列表 / 104 8.3 显示 提到我的微博列表 / 105 8.4 刷新当前的微博列表 / 106 8.5 小结 / 106第 9 章 显示其他列表信息 / 107 9.1 显示我的所有评论列表 / 107 9.2 显示我发出的评论列表 / 109X 9.3 显示我的收藏列表 / 110 9.4 显示私信列表 / 111 9.5 小结 / 113第 10 章 账号管理 / 114 10.1 账号管理主界面 / 114 10.2 添加账号 / 116 10.3 删除账号 / 118 10.4 设置主账号 / 118 10.5 同步账号 / 119 10.6 注销 / 119 10.7 小结 / 121第 11 章 撰写和发布微博 / 122 11.1 发布文字微博 / 122 11.2 发布带图像的微博 / 124 11.2.1 手机拍照 / 125 11.2.2 从相册中获得图像 / 126 11.2.3 删除图像 / 127 11.2.4 发布图像微博 / 127 11.3 微博的辅助输入工具 / 127 11.3.1 语音录入 / 127 11.3.2 插入表情 / 129 11.3.3 插入话题 / 130 11.4 小结 / 131第 12 章 处理微博与评论 / 132 12.1 与微博相关的操作 / 132 12.1.1 评论微博 / 132 12.1.2 转发微博 / 135 12.1.3 删除微博 / 137 12.1.4 收藏微博 / 138 12.1.5 以大图方式浏览微博图像 / 139 12.1.6 图像另存为与图像分享 / 139 XI 12.2 查看微博的详细内容 / 146 12.3 显示与回复评论 / 148 12.4 小结 / 149第 13 章 图像特效 / 150 13.1 图像特效主界面 / 150 13.2 特效处理框架 / 150 13.2.1 处理图像的接口 / 151 13.2.2 如何处理图像 / 151 13.3 选择图像区域 / 153 13.4 图像特效详解 / 160 13.4.1 灰度 / 160 13.4.2 马赛克 / 165 13.4.3 截图 / 168 13.4.4 自由旋转 / 169 13.4.5 恢复原始图像 / 170 13.5 发布经过特效处理的图像微博 / 170 13.6 小结 / 171第 14 章 搜索微博与搜索用户 / 173 14.1 搜索界面布局 / 173 14.2 实现 JSON 格式的搜索 API / 174 14.3 搜索微博 / 177 14.4 搜索用户 / 178 14.5 小结 / 181第 15 章 个性化设置 / 182 15.1 设置主题 / 182 15.1.1 主题目录列表 / 182 15.1.2 主题图像 / 186 15.1.3 设置主题背景图 / 192 15.2 设置背景颜色和透明度 / 194 15.3 设置文字颜色 / 198 15.4 小结 / 204XII第 16 章 签名和发布微博客户端 / 205 16.1 签名应用程序 / 205 16.1.1 使用命令行方式进行签名 / 205 16.1.2 使用 ADT 插件进行签名 / 206 16.2 发布微博客户端 / 207 16.3 小结 / 208第三部分 高级篇—
Android SDK 高级技术第 17 章
Android 资源详解 / 210 17.1 创建资源 / 210 17.2 访问资源 / 211 17.2.1 生成资源类文件 / 212 17.2.2 从代码中访问资源 / 214 17.2.3 从 XML 文件中访问资源 / 214 17.3 在代码中存取资源 / 216 17.3.1 存取简单资源 / 216 17.3.2 存取对象资源 / 219 17.3.3 处理配置变化 / 221 17.4 本地化 / 222 17.4.1 建立本地化的资源目录 / 222 17.4.2 资源目录的命名规则 / 225 17.4.3 建立别名资源 / 225 17.4.4 资源目录的优先级 / 227 17.5 资源类型 / 227 17.5.1 字符串(String)资源 / 227 17.5.2 布局(Layout)资源 / 230 17.5.3 图像(Drawable)资源 / 232 17.5.4 菜单(Menu)资源 / 242 17.5.5 动画(Animation)资源 / 243 17.5.6 风格(Style)资源 / 247 17.5.7 其他资源 / 248 17.6 小结 / 250 XIII第 18 章 电话、短信与联系人 / 251 18.1 电话 / 251 18.1.1 显示拨号界面 / 251 18.1.2 直接拨打电话 / 251 18.1.3 控制呼叫转移 / 252 18.1.4 监听来 / 去电 / 254 18.1.5 用程序控制接听和挂断动作 / 257 18.1.6 获取通话记录 / 259 18.2 短信和彩信 / 261 18.2.1 通过系统程序发送短信 / 261 18.2.2 直接发送短信 / 261 18.2.3 保存短信发送记录 / 262 18.2.4 监听短信 / 264 18.2.5 发送彩信 / 265 18.2.6 监听彩信 / 266 18.2.7 显示视频缩略图 / 267 18.2.8 彩信内容与 SMIL 协议 / 270 18.3 联系人 / 280 18.3.1 查看联系人的内容 / 281 18.3.2 添加电话到联系人列表 / 282 18.3.3 修改联系人信息 / 283 18.3.4 删除联系人信息 / 284 18.4 小结 / 284第 19 章 数据库 / 285 19.1 SQLite 数据库 / 285 19.1.1 管理 SQLite 数据库 / 285 19.1.2 SQLite 数据库基本操作 / 286 19.1.3 事务 / 288 19.1.4 核心函数 / 289 19.1.5 日期和时间函数 / 294 19.1.6 聚合函数 / 297 19.2
Android 版的 SQLite 数据库 / 299 19.2.1 操作数据库 / 299XIV 19.2.2 升级数据库 / 300 19.2.3 数据绑定 / 302 19.3 持久化数据库引擎 db4o / 304 19.3.1 什么是 db4o / 304 19.3.2 下载和安装 db4o / 305 19.3.3 创建和打开数据库 / 305 19.3.4 操作 Java 对象 / 305 19.4 小结 / 308第 20 章 蓝牙与 Wi-Fi / 309 20.1 蓝牙编程 / 309 20.1.1 蓝牙简介 / 309 20.1.2 控制蓝牙设备 / 310 20.1.3 使蓝牙设备可被搜索到 / 311 20.1.4 搜索蓝牙设备 / 313 20.1.5 蓝牙设备之间的数据传输 / 316 20.2 Wi-Fi 编程 / 320 20.2.1 控制 Wi-Fi 设备 / 320 20.2.2 获取 Wi-Fi 信息 / 321 20.2.3 客户端 Socket / 323 20.2.4 服务端 Socket / 324 20.2.5 移动版的 Web 服务器实例 / 324 20.2.6 在手机客户端访问 Web 服务器 / 329 20.3 小结 / 330第 21 章 第三方程序库 / 331 21.1 GTalk 客户端 / 331 21.1.1 XMPP 协议简介 / 331 21.1.2 下载并安装 asmack / 331 21.1.3 登录 GTalk 服务器 / 332 21.1.4 获取联系人信息 / 333 21.1.5 监听联系人是否在线 / 335 21.1.6 发送聊天消息 / 336 21.1.7 接收聊天消息 / 337 XV 21.2 FTP 客户端 / 337 21.2.1 连接与断开.