科技>计算机>编程语言
大话企业级Android应用开发实战

大话企业级Android应用开发实战"

作者:王家林
ISBN:9787121140174
定价:¥89.0
字数:1241千字
页数:780
出版时间:2011-08
开本:16(185*260)
版次:01-01
装帧:
出版社:电子工业出版社
简介

这是一本能够让你学出幸福感并在还没有学完时就能够胜任Android应用软件工程师工作的书。 本书所有的内容都是基于企业内部的Android实际开发需要和问题而著。 本书模拟真实的学习场景,主人公是小安和大致,小安是一位有编程基础并想从事Android软件工程师工作的求知者,大致是一位博士、Android开发高手和不知疲倦的布道者,全书以小安在大致的带领下从Android入门到成为Android应用程序编程高手的过程中生动地展开叙述,妙趣横生,让人欲罢不能。     读者对象:本书适合从事Android软件开发的工程师和热爱Android软件开发的人们。

前言

为何说Android是你不可不学的平台? Android是个什么东西? 可能有人会告诉你: 是当下流行的智能手机; 是当下流行的手机操作系统; 是当下流行的一个可爱的小绿人(Android的Logo); 是当下流行的3G手机。 Android究竟是个什么玩意? 如果你是一个程序员,那么我会告诉你Android是一个魅力十足的开发平台,你可以通过Java语言开发相应的应用程序,发布在Android Market上,根据销量获取相应的酬劳。 如果你是一个手机玩家,那么我会告诉你Android是一个酷炫的手机系统,装载Android平台的手机会给你带来前所未有的用户体验,当然前提是你有足够的“银子”。 如果你是一个上网达人,那么我会告诉你Android是3G时代智能手机的典范,你可以通过它获得前所未有的网络体验。 如果你还是对Android充满疑问,你可以翻看一下“手机开放联盟”的超过50家龙头企业列表(见附录A),也许你就会有更多的感触。它是一个集大成者,我们并不能给它一个很精准的定义。随着它的飞速发展,已经不能再单单从Google的一个开放的手机操作系统的层面来理解它。 Android已经广泛应用于智能手机、平板计算机、智能电视、智能汽车和众多的智能上网设备上。 Android将智能终端的广泛性、开源软件的生命活力以及开放手机联盟的集体支持完美结合在一起,最终的结果就是成为了一个你不得不学的移动平台。 国士工作室是一支专注于Android平台的企业级应用开发的技术团队,致力于做中国最佳的Android应用程序开发机构,提供最佳的Android企业级应用开发培训服务。 我又能从书中得到什么? 下图是Android平台框架,后面我们会进行详细介绍。如果你是一名Java程序员,如果你对Android感兴趣,那么本书将会非常适合你。本书旨在向有一定编程基础的程序员从易到难地教授Android应用程序的相关知识。也许在你看书之前还是一个和小安(本书的主人公)一样刚刚接触Android,希望你能随着小安的成长也不断积累自己的知识与经验。当看完本书时,你也能像大致博士一样成为一个Android布道者。毕竟Android不仅仅是个谋取利益的工具,更代表着一个“开放的”精神(虽然它并不是完全的开源)。本书的源代码均可在华信资源教育网免费注册后下载使用(www.hxedu.com.cn)。 故事主人公 小安:大四学生,计算机专业,有一定编程基础。不久前对Android系统产生了浓厚的兴趣,决定通过对Android进一步的学习,来从事Android开发工作。 大致:博士,Android开发程序员,一个布道者。永远不知疲倦地解决小安提出的各种问题,同样代表着伟大的开源精神。 小安通过网络认识了大致博士,并开始了他们亦师亦友的Android学习过程。 前言 如何成为Android高手 2007年年底,Google宣布举办总奖金高达1 000万美元的开发者大奖赛,鼓励程序开发者在Android平台上写出实用而又具有创意的应用程序。 2009年5月27日,在Google的I/O开发者聚会上,Google发布了总奖金接近2 000万美元的第二次大奖赛的消息,开发者们开始了新一轮的较量。 2010年Android就业岗位的需求增长超过700%,Android市场增长率高达1100%。 来自IHS公司的数据显示:2010年Android市场应用程序的收入增长了861.5%。 Android已经超越苹果成为美国智能手机用户的首选平台,而且在所有的智能手机销售市场中增长速度最快。 CNET科技资讯网2011年2月1日国际报道:Canalys研究公司宣布,2010年第四季度,Google Android超越诺基亚Symbian,成为全球第一大智能手机平台。 美国移动广告网络公司Millennial Media报告称,Google Android操作系统于2011年4月继续在全球智能手机市场上占据主导地位,所占份额为53%。 Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android一出生就被打上了“富二代”的胎记,不仅仅是因为诞生于当今的网络霸主Google,更重要的是还有一个空前强大和壮观的开放手机联盟OHA(Open Handset Alliance)去提供全力的支持。OHA是什么?OHA涵盖了中国移动、T-Mobile、Sprint等移动运营商,包括HTC、Motolora、三星等手机制造商,有以Google为代表的手机软件商,还有以Inter、Nvidia为标志的底层硬件厂商和Astonishing Tribe等商业运作公司。该组织声称,组织的所有成员都会基于Android来开发新的手机业务。 成为Android高手一般分为六个阶段。 第一阶段:熟练掌握Java SE,尤其是对其内部类、线程、并发、网络编程等需要深入研究;熟练掌握基于HTTP协议的编程,清楚POST和GET等请求方式的流程和细节;能够进行基本的Java Web编程,如果能够使用Java EE则更好。 第二阶段:精通Android的核心API的使用,如四大组件所涉及的API、Context等,精通核心界面的编程,如ListView的编程;到达这个阶段已经能够开发大部分基本的应用了。 第三阶段:精通应用框架的原理,尤其是对IoC的理解及其在Android应用框架中的应用,精通基本的23种设计模式在Android中的应用。 第四阶段:精通JNI,熟练进行Android类库中C/C++组件的开发,并能够使用JNI机制把现有的C/C++组件移植成为应用框架的核心组件;具备修改和编写自己的应用框架的能力。 第五阶段:做出自己的Android系统,无论是对底层还是上层都能够了如指掌;能够根据实际需要设计和实现比较大的Android系统,如带领规模比较大的团队做出自己的Android手机产品等。 第六阶段:势。一切的思考均进入“势”的思考,一切都是思路问题,判断和预测Android的形势,引领市场,通往自由的天堂。 “天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”想成为Android高手?这可不是想象中写几行代码那么容易的事情,但也不是不可实现的。 如 何 做 1.学会懒惰!奇怪吧?但是,你一定也听说过这句话:“这个世界某种程度上是由懒人推动的,生命在于懒惰,懒人创造世界”。当然,懒惰也不是真的傻傻地呆在那里什么都不做,而是说要善于想出做事情的更好的方式,这样就可以节约大量的时间,也就有更多的机会懒惰了,同时也懒出了境界。 2.精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)。这一点难吗?“学之,则难者亦易矣;不学,则易者亦难矣。” 3.编写可重用、可扩展、可维护、灵活性高的代码。Android应用程序的开发使用纯粹面向对象的Java作为开发语言,自然也就继承了关于Java关于面向对象的优秀思想。 4.高效地编写高效的代码。高效地编写代码和编写高效的代码好像天生就是死敌。似乎开发速度上去了,程序的执行效率就下去了;程序的执行效率上去了,开发速度就下去了。 5.学会至少一门服务器端开发技术。没搞错吧,成为Android高手还需要学习服务端开发技术?对,需要! 蜀之鄙,有二僧:其一贫,其一富。贫者语于富者曰:“吾欲之南海,何如?”富者曰:“子何恃而往?”曰:“吾一瓶一钵足矣。”富者曰:“吾数年来欲买舟而下,犹未能也。子何恃而往!”越明年,贫者自南海还,以告富者,富者有惭色。西蜀之去南海,不知几千里也,僧富者不能至,而贫者至之,人之立志,顾不如蜀鄙之僧哉。 若立志成为Android高手,如有耐心,“一瓶一钵足矣”。 现在,就让我们进入Android的世界。

目录

第1话 大话Android 1 1 智能手机与3G 2 2 智能手机平台 3 3 智能手机与手机厂商 4 4 Android详解 5 5 Android的盈利方式 7 6 Android学习之道 10 第2话 Android开发之道 11 7 搭建开发环境 12 7.1 准备所需软件 12 7.1.1 Android开发需要的工具 12 7.2 安装所需的软件 13 7.2.1 安装JDK6 13 7.2.2 安装Eclipse 15 7.2.3 安装Eclipse插件(ADT) 15 7.2.4 安装Android SDK 18 7.3 模拟手机介绍 20 7.3.1 创建AVD 20 7.3.2 启动模拟器 22 7.3.3 模拟器相关内容介绍 23 7.3.4 模拟器不能完成的功能 27 7.3.5 模拟器出现“无信号”故障的处理方式 28 8 Android开发流程 29 8.1 创建Android Project(Hello World项目) 29 8.2 运行Android项目 32 8.3 查看安装过程信息 34 8.4 卸载模拟器上的应用 35 9 项目管理 36 9.1 打开项目 37 9.2 删除项目 39 9.3 导入项目 40 9.4 把程序打包成APK 42 10 Android项目的目录结构 44 10.1 目录结构概述 44 10.2 Resource目录及其下文件详解 46 10.2.1 “gen/”目录下的R.java文件详解 50 10.2.2 组件标识符 52 10.2.3 AndroidManifest.xml介绍 53 10.2.4 如何在文档中查找权限信息 58 10.3 Android程序的执行流程分析 60 10.4 修改Hello World项目的图标 61 11 Android程序设计的骨架——MVC 62 11.1 MVC如何工作 62 11.2 为什么要使用 MVC 63 11.3 Android与MVC 65 12 电话拨号器和短信发送器示例 67 12.1 电话拨号器 67 12.2 短信发送器 74 13 单元测试与日志输出 80 13.1 单元测试步骤 81 13.2 单元测试示例 81 13.3 日志输出 85 14 揪出程序中的臭虫——程序调试示例 88 第3话 Android之UI(用户界面)开发 101 15 用户界面(User Interface) 102 15.1 UI概述 102 15.2 布局(Layout) 104 15.2.1 线性布局(LinearLayout) 104 15.2.2 RelativeLayout(相对布局) 107 15.2.3 线性布局与相对布局嵌套使用 108 15.2.4 表格布局(TableLayout) 108 15.2.5 帧布局(FrameLayout) 110 15.3 菜单(Menu) 113 15.4 常用UI控件(Widgets) 116 15.4.1 单选框(RadioButton) 117 15.4.2 多选框(CheckBox) 118 15.4.3 列表显示(ListView) 119 15.4.4 下拉列表框(Spinner) 124 15.4.5 进度条(ProgressBar) 125 15.4.6 拖动条(SeekBar) 127 15.5 常用的几种通知 131 15.5.1 状态栏通知 133 15.5.2 警告对话框 136 15.6 UI综合应用——用户注册 141 15.7 硬编码生成界面 150 15.8 国际化 152 15.9 程序界面自动适应屏幕分辨率 157 15.10 Android样式和主题(style&theme) 160 15.10.1 为Hello World应用指定样式 161 15.10.2 为应用指定主题 163 第4话 “机器人”的核心组件 165 16 “机器人”的管理员——Activity 166 16.1 Activity生命周期 168 16.2 为应用添加新的Activity 174 16.2.1 利用Activity实现页面转换 174 16.2.2 添加Activity 176 16.2.3 得到新打开的Activity关闭后返回的数据 180 16.2.4 请求码的作用 183 16.2.5 结果码的作用 184 17 “机器人”的邮递员——Intent 185 17.1 Intent简介 185 17.1.1 不同Activity之间的数据传输 186 17.1.2 另一种传递数据的方式 188 17.1.3 动作测试(Action test) 189 17.1.4 类别测试(Category test) 190 17.1.5 数据测试(Data test) 190 17.2 意图测试 190 18 “机器人”的隐形管理员——Service 194 18.1 bindService()和startService()区别 198 19 “机器人”的接收员——BroadcastReceiver 201 19.1 短信窃听器 202 第5话 数据,数据 207 20 文件:普通文件的I/O 208 20.1 文件存储数据 208 20.2 SD Card数据存取 220 20.3 SharedPreferences(共享参数) 225 20.3.1 SharedPreferences简介 225 20.3.2 设计思路 226 20.3.3 界面设计 226 20.3.4 代码处理 229 21 数据管家——SQLite数据库 232 21.1 SQLite数据库简介 233 21.1.1 SQLite的特点 233 21.1.2 SQLite可以解析的SQL语句 234 21.2 使用SQLiteOpenHelper抽象类建立数据库 234 21.2.1 测试建立数据库 237 21.2.2 解读源码 239 21.3 常用的数据库添、删、改、查操作 241 21.3.1 实现添、删、改、查操作 241 21.3.2 测试业务 245 21.4 另一种实现添、删、改、查的方法 250 21.4.1 实现添、删、改、查操作 250 21.4.2 测试业务 253 21.5 事务 255 21.6 使用ListView显示表中的数据 256 21.7 使用SimpleCursorAdapter绑定数据 265 22 内容提供者(ContentProvider) 268 22.1 开发一个ContentProvider 269 22.1.1 配置PersonProvider 270 22.2 Uri介绍 271 22.2.1 UriMatcher类使用介绍 271 22.3 ContentProvider类主要方法的作用 272 22.4 ContentUris类使用介绍 272 22.5 按照业务需求共享数据 273 22.6 操作db应用中的共享数据 277 22.6.1 使用ContentResolver操作ContentProvider中的数据 278 22.6.2 测试业务 279 22.7 操作联系人 283 23 订阅你感兴趣的信息——XML应用 288 23.1 SAX解析器 290 23.1.1 SAX解析XML 292 23.2 DOM(文档对象模型) 299 23.2.1 示例一:DOM解析XML 301 23.3 Pull解析器 303 23.3.1 示例二:Pull解析XML 304 23.4 SAX、DOM、Pull的选择 306 23.5 XML文件的生成 307 23.6 综合示例:RSS_Pull 309 第6话 Android与网络 319 24 Android网络通信简介 320 24.1 Android客户端 320 24.1.1 客户端概述 320 24.1.2 客户端的应用 322 24.2 网络的互连互通 324 24.2.1 HTTP协议概述 324 24.2.2 HTTP协议实例解析 326 25 Android文件下载 330 25.1 Android文件单线程下载 330 25.1.1 J2SE文件单线程下载 331 25.1.2 Android客户端单线程下载 339 25.2 Android文件多线程下载 351 25.2.1 J2SE文件多线程下载 353 25.2.2 Android客户端断点、多线程下载 361 26 Android文件上传 392 26.1 Android客户端上传初体验 393 26.1.1 知识回顾 393 26.1.2 Android客户端直通CRM系统 403 26.2 Android客户端实现请求参数数据上传 412 26.2.1 知识回顾 412 26.2.2 Android客户端之请求数据包装 417 26.2.3 Android客户端之请求参数优化 423 26.2.4 Android客户端之发送内容实体 430 26.2.5 Android客户端发送数据参数到服务器 433 26.3 Android客户端实现文件上传 441 26.3.1 知识回顾 442 26.3.2 Android客户端之文件上传 445 27 Socket编程 458 27.1 TCP/IP协议与Socket通信 458 27.2 Socket与ServerSocket类介绍 460 27.2.1 服务器端ServerSocket 460 27.2.2 客户端Socket 460 27.2.3 Socket通信的一般过程 461 27.3 Socket编程实战——Android聊天室实例 462 27.3.1 编写PC端工程代码 462 27.3.2 编写手机客户端工程代码 474 27.3.3 执行程序 481 28 WebView的介绍及应用 483 28.1 WebView简介 484 28.2 WebView浏览网页简单示例 485 28.3 WebView浏览网页复杂示例 489 28.4 WebView使用HTML替代Layout做界面 497 第7话 Android之娱乐多媒体开发 507 29 音乐播放器的开发 508 29.1 创建应用 508 29.2 创建界面 509 29.3 业务代码 510 29.4 测试运行 512 30 音乐在线播放的开发 513 30.1 创建应用 513 30.2 界面 514 30.3 流媒体类 515 30.4 业务代码 520 30.5 运行结果 522 31 视频播放器的开发 523 31.1 创建应用 523 31.2 创建界面 523 31.3 业务代码 525 31.4 运行结果 527 31.5 转换版本 527 32 手机拍照的开发 529 32.1 创建应用 529 32.2 创建界面 529 32.3 业务代码 530 32.4 运行结果 536 33 手机录音的开发 536 33.1 创建应用 536 33.2 创建界面 537 33.3 业务代码 538 33.4 运行结果 542 34 手机闹钟的开发 542 34.1 创建应用 542 34.2 创建界面 543 34.3 业务代码 544 34.4 运行结果 547 35 手势识别的开发 548 35.1 手势介绍 548 35.2 Android手势识别 548 35.2.1 创建手势 548 35.2.2 创建应用 550 35.2.3 手势应用 551 36 图片浏览的开发 552 36.1 图片介绍 552 36.1.1 图片列表 553 36.1.2 单击事件 555 36.1.3 加入手势 556 36.1.4 手势应用 559 第8话 Android之硬件操作 561 37 “机器人”的第六感——传感器 562 38 “机器人”通信的核心——SIM卡 566 39 让数据在空中传递——蓝牙 569 40 安装外部程序 573 第9话 Android之GPS开发 579 41 Android与Google Map整合 580 41.1 Google Map概述 580 41.2 申请Google Map服务 581 41.2.1 Google Maps API金钥 581 41.2.2 下载Google API 583 41.2.3 坐标解析 585 41.3 感受多彩的Google Map 587 41.3.1 直击地图(MapView) 587 41.3.2 风景区展示实例 588 41.4 Google Map卫星导航——出行好帮手 608 41.4.1 GPS知识汇总 609 41.4.2 GPS旅游导航仪实例 610 第10话 Android之图形图像处理 639 42 2D图形 640 42.1 几个基础类介绍 640 42.2 如何创建Drawable 641 42.3 绘制几何图形 642 42.4 Matrix类介绍——对图片进行变幻 645 42.5 动画特效之Tween动画 649 42.6 动画特效之Frame动画 660 43 OpenGL/OpenGL ES开发 667 43.1 OpenGL概述 667 43.1.1 OpenGL的发展历程 668 43.2 OpenGL ES的概述 670 43.3 Android对OpenGL ES的支持 670 43.3.1 三维知识回顾 670 43.3.2 应用测试 670 43.3.3 代码详解 671 43.3.4 正方形测试 673 43.3.5 颜色测试 674 43.3.6 旋转测试 676 43.3.7 正方体测试 677 43.3.8 纹理映射测试 680 43.3.9 光照测试 685 第11话 Android之优化之道 691 44 性能优化 692 44.1 Java性能优化概述 692 44.1.1 性能优化的基本知识 692 44.1.2 Java编程规范 695 44.2 Java性能优化策略 699 44.2.1 初级优化 699 44.2.2 高级优化 706 44.3 Android优化的具体方法 710 44.3.1 编写高效的Android代码 710 44.3.2 Android UI 优化 716 44.3.3 图片优化 721 第12话 Android之项目开发 723 45 巧用GPS找回丢失的手机 724 46 网络视频播放器 728 46.1 项目概述 729 46.2 项目实现流程 729 46.2.1 服务器端 729 46.2.2 UI页面设计 731 46.2.3 XML解析 734 46.2.4 视频文件下载 736 46.2.5 下载文件播放 750 附录A 759

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=TP140170

www.luweidong.cn

下一个