关闭

关闭

关闭

封号提示

内容

首页 Android开发秘籍.pdf

Android开发秘籍.pdf

Android开发秘籍.pdf

上传者: lxlneo 2011-09-19 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《Android开发秘籍pdf》,可适用于IT/计算机领域,主题内容包含内容提要作为Google开发的全新开源手机平台Android发展如火如荼。本书通过大量代码秘诀全面详尽地讲述了Android开发技术。从activi符等。

内容提要作为Google开发的全新开源手机平台Android发展如火如荼。本书通过大量代码秘诀全面详尽地讲述了Android开发技术。从activity和intent基础知识开始到线程、服务、broadcastreceiver以及alert警告框再到用户界面布局、界面事件、多媒体技术、硬件接口、网络通信、数据存储方法、基于位置的服务、Android高级开发技术和调试书中贯穿了经Android设备或者模拟器测试的可用范例将功能丰富、结构复杂的Android应用程序清晰完美地展现给开发人员。对于那些有志于Android应用开发的人员来说本书是难得的参考读物。图灵程序设计丛书著    美 JamesSteele NelsonTo译    李 青 王 瑜 赵丞兵 等责任编辑 朱 巍执行编辑 刘美英人民邮电出版社出版发行  北京市崇文区夕照寺街号邮编   电子邮件 ptpresscomcn网址 http:wwwptpresscomcn北京      印刷开本: 印张:字数:千字年月第版印数:册年月北京第次印刷著作权合同登记号图字:号Android开发秘籍ISBN定价:元读者服务热线:()转 印装质量热线:()反盗版热线:()前言Android是发展最为迅速的移动操作系统(OS)。以Android为核心的整个生态系统也在迅速成长仅去年一年就推出多种智能手机而平均每月新增万多个应用程序(APP)。其设备功能多样可供选择的移动运营商众多足以让所有人动心。上网本是安装Andorid的天然平台但Android的强劲发展势头使之进一步渗透到电视机甚至汽车工业。许多世界知名的大企业从银行到快餐连锁店和航空公司都拥有了自己的Android应用并提供兼容服务。Android开发人员获得了更多机会因为其应用程序可以接触到比以往任何时候都要多的用户增加了开发程序的回报。为什么要写本书Android操作系统简单易学而且谷歌提供了许多库方便大家实现功能丰富、结构复杂的应用程序。唯一美中不足的是缺少清晰详尽的文档Android开发者社区的许多人都提到了这一点。Android的开源意味着任何人都可以深入研究并对一些文件做逆向工程。许多开发者论坛都使用这种方法推出了优良的范例。但我们仍然需要一本书通过一致的体例来讨论操作系统的各个方面。一个清晰的可用范例比得上一万字的文档。开发人员在面对问题的时候通常喜欢采用类似极限编程的方法也就是说他们找到接近解决方案的可用代码范例经过修改或扩展来满足自己的需求。学习这些范例也是一种了解编码风格的有效方法开发者可按类似风格写出代码的其他部分。本书提供了许多完整的秘诀以满足读者此种需要。介绍每个秘诀的同时我们也逐一讲解Android操作系统的主要概念。目标读者编写Android应用程序的开发人员将是本书的最大获益者。我假设读者了解基本的Java和Eclipse开发环境但对于本书大部分内容这点并非必要。Java是一种模块化的语言大部分(甚至全部)的秘诀范例经过些许修改就可以整合到读者自己的Android工程中。我们编写每个主题时都考虑到可以将其作为Android课程的补充材料。秘籍此处的原文为cookbook(食谱)引申为秘籍的意思后文中的recipe是秘诀的意思。即这本秘籍由大量秘诀组成。译者注前言如何使用本书总体上本书中的代码秘诀内容丰富完整包含了在Android设备上运行应用程序所有必要的信息。第章和第章从整体上介绍了Android的使用当然你可以跳过这一部分从更重要的地方开始看起。这本书是作为参考书来写的书中主要通过范例讲述Android开发知识这些范例实现了有意思的秘诀会让你受益匪浅。秘诀中介绍的主要技术均在标题中体现。此外每个秘诀在必要时还介绍了其他相关技术。读完本书以后开发人员应该能够:‰从头开始编写Android应用程序‰编写适用于多个Android版本的程序‰使用Android提供的各种应用编程接口(API)‰博览大量代码迅速运用到自己的程序中‰学会在Android中用多种方法完成同样任务体会各种方法的优劣‰理解Android编程的独特魅力。本书结构第章将介绍Android开发的方方面面但不涉及代码层面。这是唯一不包括秘诀的一章但提供了有用的背景知识。第章概要介绍了个Android组件以及Android工程是如何组织的。本章着重介绍了作为应用程序主要构成的activity。第章介绍了线程、服务、接收器等后台服务以及作为这些后台任务的通知方法使用的alert警告框。第章涵盖了用户界面屏幕布局和视图。第章涉及用户触发的事件如触摸事件和手势。第章讲的是多媒体操作、录制以及音频和视频播放。第章介绍了Android设备的硬件API及其使用方法。第章讨论了Android设备和外界应用的交互包括SMS、网页浏览和社交网络。第章涵盖了Android中使用的各种数据存储技术包括SQLite。第章着重介绍了通过GPS等不同的方法获取位置信息以及使用诸如谷歌地图API的相关服务。第章介绍一些Android的高级技巧包括自定义视图、使用原生代码获得更快的处理速度以及使用Android备份管理器等。最后第章讲述了对整个开发周期都非常有用的测试和调试框架。补充参考资料网上有许多Android的在线参考信息。以下是一些必看的经典网站。‰Android源代码:http:sourceandroidcom‰Android开发者主页:http:developerandroidcom‰Android开发者论坛:http:wwwsvcAndroidcom‰开放源码目录:http:osdircom‰“栈溢出”论坛(StackOverflowDiscussionThreads):http:stackoverflowcom‰Android开发者讲坛(TalkAndroidDeveloperForums):http:wwwtalkandroidcomandroidforums目录第章Android概述Android演化史Android的两面性运行Android的设备HTC系列机型摩托罗拉系列机型三星系列机型平板电脑其他设备Android设备的硬件差异屏幕用户输入方式传感器Android的特点多进程和应用程序微件触摸、手势和多点触控硬键盘和软键盘Android开发如何使用本书中的秘诀好好设计应用程序保持向前兼容健壮性软件开发工具包安装与更新软件特性和API级别利用模拟器或真机调试程序使用Android调试桥签名和发布应用AndroidMarket最终用户许可协议提升应用程序的曝光率脱颖而出为应用程序收费管理评论和更新AndroidMarket的候补之选第章应用程序基础知识:activity和intentAndroid应用程序预览秘诀:创建工程并新建activity工程目录结构及自动生成内容Android包和Manifest清单文件重命名应用程序中的部分文件Activity的生命周期秘诀:使用其他的生命周期方法秘诀:强制执行单任务模式秘诀:强制屏幕方向秘诀:保存和恢复activity信息多个activity秘诀:使用按钮和文本框秘诀:通过事件启动另外一个activity秘诀:将语音转换成文本并启动activity显示结果秘诀:实现选择列表秘诀:使用隐式intent创建activity秘诀:在activity间传递基本数据类型目录第章线程、服务、receiver以及alert对话框线程秘诀:启动一个辅助线程秘诀:创建实现runnable接口的activity秘诀:设置线程优先级秘诀:取消线程秘诀:在两个应用程序之间共享线程线程之间的消息机制:handler秘诀:从主线程调度runnable任务秘诀:使用倒数计时器秘诀:处理耗时的初始化工作服务添加broadcastreceiver应用微件alert对话框秘诀:使用Toast在屏幕上显示简短消息秘诀:使用alert对话框秘诀:在状态栏中显示通知第章用户界面布局资源目录及其基本属性view和viewGroup秘诀:利用Eclipse编辑器生成布局秘诀:控制UI元素的宽度和高度秘诀:设置相对布局和布局ID秘诀:通过编程声明布局秘诀:使用独立线程更新布局文本操作秘诀:设置和更改文本属性秘诀:提供文本输入秘诀:创建表单其他控件:从按钮到拖动条秘诀:在表格布局中使用图像按钮秘诀:使用复选框和开关按钮秘诀:使用单选按钮秘诀:创建下拉菜单秘诀:使用进度条秘诀:使用拖动条第章用户界面事件事件处理器和事件监听器秘诀:截取物理按键事件秘诀:创建菜单秘诀:在XML文件中定义菜单秘诀:使用搜索键秘诀:响应触摸事件秘诀:监听滑动手势秘诀:使用多点触控高级用户界面库秘诀:使用手势秘诀:绘制D图像第章多媒体技术图像音频秘诀:选取和播放音频文件秘诀:录制音频文件秘诀:处理原始音频秘诀:有效使用音频资源秘诀:添加媒体资源并更新路径视频第章硬件接口照相机其他传感器秘诀:获取设备旋转姿态目录秘诀:使用温度传感器和光传感器电话秘诀:使用电话管理器秘诀:监听电话状态秘诀:拨打电话号码蓝牙秘诀:打开蓝牙秘诀:搜索蓝牙设备秘诀:与已绑定的蓝牙设备配对秘诀:打开蓝牙套接字秘诀:使用设备振动功能秘诀:访问无线网络第章网络通信使用短信息使用Web内容秘诀:定制Web浏览器秘诀:使用HTTPGET请求秘诀:使用HTTPPOST请求社交网络第章数据存储方法sharedpreferences秘诀:创建和检索sharedpreferences秘诀:使用preferences框架秘诀:基于StoredData改变用户界面秘诀:添加最终用户许可协议SQLite数据库秘诀:创建一个独立的数据库包秘诀:使用独立的数据库包秘诀:创建个人日记内容提供器保存和载入文件第章基于位置的服务位置服务入门秘诀:获取最新位置秘诀:在位置改变时更新信息秘诀:列出所有可用的提供器秘诀:将位置解析为地址(反向地理编码)秘诀:将地址解析为位置(地理编码)使用谷歌地图秘诀:在应用程序中添加谷歌地图秘诀:在地图上添加标记秘诀:在地图上添加视图秘诀:在地图上标记设备的当前位置秘诀:设置临近警告第章Android高级开发技术Android的自定义视图Android的原生组件Android的安全机制Android的进程间通信Android的备份管理器秘诀:备份运行时数据秘诀:备份文件到云端秘诀:触发备份与还原操作Android的动画功能第章调试Eclipse内置的调试工具秘诀:设置运行配置秘诀:使用DDMS目录秘诀:断点调试AndroidSDK中的调试工具秘诀:使用AndroidDebugBridge工具秘诀:使用LogCat工具秘诀:使用HierarchyViewer工具秘诀:使用TraceView工具Android系统调试工具Android演化史Android概述ndroid操作系统自年年末由开放手机联盟(OpenHandsetAlliance)发布以来已经取得了长足的进步。为嵌入式系统设计开源操作系统这一想法由来已久但谷歌的积极支持无疑推动了Android在短短数年时间就跻身业界前列。各国众多移动运营商在不同的通信协议下都推出了Android手机。Android操作系统还被应用在其他嵌入式设备中如平板电脑、上网本、电视机、机顶盒甚至汽车也开始使用它了。本章将介绍Android开发的各种一般性问题了解这些问题对于开发者非常有益。它是创建Android应用程序的基础知识并且为本书其余部分介绍的编程秘诀提供了背景知识。Android演化史谷歌公司看到互联网使用和移动设备搜索的巨大增长潜力于年收购了Android公司并主攻移动设备平台的开发。苹果公司于年推出了iPhone手机带来了多触点和开放的应用程序市场等一些具有开创性的想法。Android迅速跟进将这些功能囊括其中还提供一些特有的功能例如开发者对系统有更多控制能力实现多任务功能等。此外Android集成了企业级的需求如支持交流、远程擦除(wipe)和虚拟专用网(VPN)以谋求赢得企业市场。而目前在该领域中RIM公司凭借其黑莓机型发展得很好。对多种设备的支持和快速应变使得Android扩大了其用户规模但这给开发者带来了挑战。应用程序需要支持五花八门的屏幕尺寸、分辨率、键盘、硬件传感器、OS版本、无线数据传输速率和系统配置。每项处理不当都可能导致不可预知的诡异表现但又不可能在所有环境下都做应用程序测试。因此Android的设计力求在跨平台时可以获得一致的体验。通过将硬件差异抽象处理Android操作系统试图将应用和具体设备差异隔离开同时在需要时还可以灵活调整。应用程序要兼容未来的变化以适应新的硬件平台和操作系统这也是要事先考虑的。只有开发者意识到这种系统化的方法才能做到这一点。Android提供的通用API和如何确保设备和操作系统的兼容性是贯穿本书的讨论主题。和任何嵌入式平台相同我们必须进行全面的测试。谷歌通过Android开发工具(ADT该工具是Eclipse的插件也可作为独立的工具使用)向第三方开发者提供了各种形式的帮助包括A第章第章Android概述实时日志功能、可以运行原生ARM代码的仿真模拟器另外用户可以向AndroidMarket应用的开发者提交现场错误报告。Android的两面性Android有一些有趣的两面性。提前知晓这些内容有助于了解Android是什么及不是什么。Android是一个由Linux内核提供核心系统服务的嵌入式操作系统但它不是嵌入式的Linux。例如它不支持标准的Linux工具如XWindows和GNUC库。我们使用Java框架编写Android的应用程序但它不是Java语言并不支持Swing等标准Java库。其他Java库如Timer等也不支持它们已被Android自己的库替代这些库已针对资源有限的嵌入式环境进行了优化。Android的操作系统开放源代码这意味着开发人员可以查看和使用任何系统的源代码包括射频协议栈(radiostack)。这些源代码是大家了解Android代码运行原理的第一手资料在文档缺乏的情况下可以作为参考。这也意味着开发人员可以遵照系统核心程序那样的方式使用系统可以用他们自己的组件替换系统组件。不过Android设备也包含一些开发者无法访问的专有软件如全球定位系统导航。AndroidOS的最后一个两面性特点是谷歌还支持ChromeOS。AndroidOS专为嵌入式平台构建而ChromeOS基于云计算平台构建。然而哪个操作系统才是基于云端的嵌入式设备的最好选择?上网本填补了智能手机和笔记本电脑之间的空白两者都有可能会是其发展方向(实际上已经呈现了这样的趋势)。Android已经开始更多地利用云服务。这是否意味着ChromeOS的末路指日可待?谷歌同时也支持基于Web的市场因此ChromeOS目前享有和Android同等的开发者支持。这或许表明未来的融合早已在筹划之中。运行Android的设备市场上目前有十多个制造商提供四十余种Android手机。此外其他硬件也运行Android如平板电脑和电视机。软件可以通过androidosBuild类获得目标设备的信息例如:由于其操作系统的特质Android支持的硬件具有一些共同的特性。AndroidOS由以下image文件组成:‰Bootloader在设备启动时开始加载Bootimage‰BootimageKernel和RAMdisk‰SystemimageAndroid操作系统平台和应用程序‰Dataimage断电后保存的用户数据‰Recoveryimage重建或更新系统所用的文件‰Radioimage射频协议栈文件。这些image文件存储在非易失性闪存中因此在设备断电时仍然不会丢失。闪存使用起来相当于只读存储器(因此有人称之为ROM)但可以在需要时将其重写(例如Android操作系统无运行Android的设备线升级)。启动时微处理器执行Bootloader来加载内核和RAMdisk到RAM中以快速存取。然后微处理器执行所需的指令、系统页面和数据镜像到RAM。Radioimage由基带处理器处理后者直接连接到射频硬件。表比较了早期和近期推出的智能手机机型。结果表明不同设备的运算处理部分的硬件结构非常相似都包括微处理器单元(MPU)、同步动态随机存取记忆体(SDRAM或简称RAM)以及闪存(简称ROM)等。屏幕大小通过像素(pixel)来衡量但每英寸点数(dpi)不同的物理屏幕是不相同的。例如HTCMagic手机采用像素的英寸屏幕这相当于每英寸像素在Android手机中处于中等水平(平均水平为dpi)。所有的智能手机都配备了CMOS图像传感器的摄像头、蓝牙(BT)和WiFi()当然规格各异。表一些有代表性的Android智能手机。数据来源于http:enwikipediaorgwikiListofAndroiddevices和http:pdadbnet型号MPURAMROM屏幕其他特性HTCDreamG(年月)MHzQCOMMSMAMBMBTFTLCDmdpiGSMUMTS侧滑式键盘、轨迹球、AGPS蓝牙、bg、万像素摄像头三星Moment(年月)MHzARMJZFSMBMBAMOLEDmdpiCDMAxEVDO侧滑式键盘(带背光)、DPAD蓝牙、bg、万像素摄像头AGPS摩托罗拉MilestoneDroid(年月)MHzTIOMAPMBMBTFTLCDhdpiGSMUMTS或CDMAxEVDO侧滑式键盘、DPAD蓝牙、bg、万像素摄像头AGPSNexusOneHTCPassion(年月)GHzQCOMSnapdragonMBMBAMOLEDhdpiGSMUMTS轨迹球、双麦克风蓝牙、abgn、万像素摄像头AGPS、地理标记功能HTCDroidIncredible(年月)GHzQCOMSnapdragonMBMBAMOLEDhdpiCDMAxEVDO蓝牙、abgn、万像素摄像头AGPS、地理标记功能HTCEVOG(年月)GHzQCOMSnapdragonMBGBAMOLEDhdpiCDMAxEVDOe蓝牙、bg、万像素摄像头万像素前置摄像头、AGPS摩托罗拉DroidX(年月)GHzTIOMAPMBGBTFTLCDhdpiCDMAxEVDO、调频收音机蓝牙、bgn、万像素摄像头AGPS、地理标记功能索爱XperiaXa(年月)GHzQCOMSnapdragonMBGBTFTLCDhdpiGSMUMTS、调频收音机蓝牙、bg、万像素摄像头AGPS、地理标记功能三星GalaxySPro(年月)GHz三星HummingbirdMBGBAMOLEDhdpiCDMAxEVDO、、调频收音机侧滑式键盘蓝牙、bgn、万像素摄像头万像素前置摄像头、AGPS宏碁StreamLiquid(年月)GHzQCOMSnapdragonMBMBAMOLEDhdpiGSMUMTS、调频收音机蓝牙、bgn、万像素摄像头AGPS、地理标记功能第章Android概述除了在容量和性能上有所改善外较新型号的另一个主要特色是附加功能。有些设备提供了G网络有的添加了调频收音机有的具有侧滑式键盘还有的配备了前置摄像头。了解设备的这些差异有助于开发人员做出优秀的应用。除了那些内置硬件外每个Android设备都有安全数字(SD)卡插槽。SD卡可提供额外的存储空间用来存储多媒体等应用程序数据。然而在Andorid版以前应用程序本身只能存储在内部ROM中。HTC系列机型HTC(宏达)是一家成立于年的台湾公司。HTCDream(也称为GG指代谷歌)是第一个运行Android的商用硬件。该机型于年月发布。从那时开始到现在HTC已推出了十多款运行Android的手机包括谷歌公司的NexusOne。NexusOne是第一批使用GHz微处理器的Android设备这种微处理器是高通公司(Qualcomm)的Snapdragon平台。Snapdragon使用了高通自己的内核而非ARM内核它包含有p高清晰度视频解码电路。在此之后的大部分智能手机都采用了GHz的微处理器。NexusOne的特别之处还在于使用两个麦克风削减通话时的背景噪音以及配备了背光轨迹球可根据通知显示不同颜色的灯光。HTC还于年月发布了DroidIncreadible机型。如表所示它和NexusOne类似但基于CDMA而不是GSM射频硬件并具有更高像素的摄像头。在年月发布的HTCEVOG是第一款支持WiMAX(e-标准)的商用手机。摩托罗拉系列机型世纪年代摩托罗拉制造了第一部手机并在手机市场上取得多方面的成功。它的无线通信部门对于发展方向摇摆不定直到最近才把重点放在Android上。摩托罗拉Droid的CDMA版本(它的GSM版本就是闻名全球的Milestone)于年月发布很多人也确实认为这是Android发展的一个重要的里程碑。Droid手机的影响力很明显访问AndroidMarket的相当多的手机都是Droid手机。此外摩托罗拉已经推出了近十款其他Android手机。摩托罗拉DroidX手机具有和HTCDroidIncredible相似的功能包括高清视频拍摄功能。三星系列机型三星一直是移动市场的重要力量目前已经开始发展自己的Android设备。三星于年月推出了三星Moment手机但不具备多点触摸硬件功能不能升级到Android以上版本。在特定市场销售的配备了移动电视天线的定制版本可移动接收ATSC信号。三星GalaxyS是三星对于iPhone的回应。众所周知iPhoneG和GS使用了三星处理器三星为GalaxyS开发了具有ARMCortex核心的GHz的Hummingbird(蜂鸟)处理器。这也是第一批兼容蓝牙的手机。Milestone该款手机的上市名称中文意思为里程碑有双关之意。译者注Android设备的硬件差异平板电脑苹果公司推出iPad之后Andriod制造商也非常期望推出他们自己的平板电脑。平板电脑一般具有英寸或更大的屏幕带有WiFi连接。由于很多平板电脑使用G网络无线服务它们更像是大屏幕的智能手机。爱可视公司(Archos)是最早在年年底向市场推出Android平板电脑的厂商之一。这款平板电脑具有英寸的屏幕被称为Archos。爱可视在此之前已经推出了英寸机型Archos。这些机型配备了硬盘驱动器可以存储更多的数据。戴尔公司推出了英寸屏幕的Sreak平板电脑还计划推出配备英寸屏幕和英寸屏幕的机型。三星公司则推出了英寸屏幕的GalaxyTab平板电脑。这些平板电脑中的很多型号都有一个缺点就是无法访问AndroidMarket但情况应该很快就会改变。表比较了一些型号的平板电脑。表一些有代表性的Android平板电脑型号MPURAMdisk屏幕其他特性爱可视(年月)MHzTIOMAPMBGBTFTLCD英寸蓝牙、bgn、调频收音机爱可视(年月)MHzRockchipRKMBGBTFTLCD英寸bg戴尔Streak(年月)GHzQCOMSnapdragonMBMBTFTLCD英寸GSMUMTS、蓝牙、bg、万像素摄像头、万像素前置摄像头AGPS、地理标记功能三星GalaxyTabletGTP(年月)GHz三星HummingbirdMBGBTFTLCD英寸GSMUMTS蓝牙、、bgn、万像素摄像头其他设备Andr

用户评论(1)

0/200
  • 技术人生 2012-09-25 23:10:55

    感谢分享,但不全呢

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/10
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部