




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
iPhone/Andriod应用程序开发平台介绍当今的人们可以无处不在,无时无刻地享受互联网所带来的便利。承载这些便利的智能化手机平台也日趋成熟。在这个竞争激烈,硝烟四起的领域,iPhone一直以简单实用来又酷劲十足的特点来吸引消费者,从而占据一席之地。而Android作为一个年纪轻轻而前途未卜的新兴平台,却已经向世人展示了它非凡的潜力和巨大的生命力。 他们共同的特点各自都有一个强大的软件商店,上面有来自全世界的开发者为iPhone和Android开发的数万种乃至十万种软件,甚至可以说iPhone和Android已经成为一个新兴的软件出版和流通平台。近期太平洋企业频道将对其上较有代表性的一些软件和开发者的故事逐一介绍,敬请关注。本文先对iPhone和Android的开发平台和开发环境作一个铺垫性的介绍。iPhone OSiPhone OS平台的建立使用了与创建Mac OS X操作系统一样的技术,很多开发工具和技术都是来源于Mac OS X的。但是尽管这些工具与Mac OS X极为相似,但是iPhone OS的应用程序开发者并不需要具备Mac OS X的开发经验。iPhone软件开发工具包(SDK)将会为开发者提供其所需要的一切。下面将会一一介绍。iPhone OS是一个在iPhone和iPod触屏设备上运行的操作系统。该操作系统在管理设备硬件的同时,也提供在移动电话上实现本机应用程序的基本技术。根据是安装在iPhone还是iPod Touch上,这个操作系统会相应地植入一些特定的服务应用程序,如电话,邮件,Safari浏览器等,来为用户提供标准的系统服务。iPhone OS是iPhone手机和iPod触屏设备的核心1.iPhone OS的体系结构iPhone OS体系结构与Mac OS X的基础架构极其类似。在iPhone OS体系的上层,它充当了iPhone和iPod Touch硬件设备同在电话屏幕上显示的应用程序之间的媒介,如下图所示。开发者自己创建的应用程序不会直接与硬件进行交互,而是与相对应的驱动器进行连接。这样的做法可以消除开发者应用程序在不经意间改变了底层的硬件设备的危险。iPhone OS上的应用分层iPhone OS使用一个极其直观的软件栈。在这个堆栈的底层是Mach内核和一些硬件驱动器,以此来管理所有程序的执行。凌驾于这一层之上其他层则是包括开发者用于开发所必须的核心技术和接口。尽管iPhone OS在内核和驱动级没有任何接口,但是它在软件栈的更上层却为开发者设置了许多技术接口。2.iPhone OS软件栈iPhone OS技术的实现过程可以划分为多个层次,如下图所示。这个系统的底层是所有应用程序的支柱基础服务。上层则包含了很多精密的服务和技术。iPhone OS软件栈当开发者在编写他们自己的代码时,必须尽可能地使用上层框架而不是底层框架。上层框架为底层结构提供面向对象的抽象。这种抽象通常能简化代码的编写工作。它可以大大地减少代码的编写量以及压缩一些潜在的复杂性能,比如插口和线程。但是,尽管上层框架把底层技术都抽象化了,并不是表示这些技术将会被隐藏起来。底层框架依然还是适用于那些需要涉及那些不存在于上层框架中的模块的开发者的。1)Cocoa Touch层Cocoa Touch是iPhone OS最重要的一层。它为开发者提供了实现应用程序所必须的基础设施的关键框架。在Cocoa Touch层,很多技术都是使用Objective-C语言实现的。这一层的框架为开发者的应用程序提供基础设施。这些基础框架主要是提供面向对象的支持,如文件管理,网络操作等。Uikit框架为应用程序提供可视化的基础设施,其中包括窗口类,视图类和控制类以及管理这些对象的控制器。除此之外,这一层的其他框架(如Push Notification服务,地址簿用户界面,App Email,Map Kit等)帮助开发者访问用户联系人信息,图片信息以及加速器和设备其他硬件的特性。2)Media层Media层是由多种图表,音频,视频技术连接而成的,为移动设备营造最好的多媒体用户体验。更重要的是,这些技术都是针对降低开发者创建应用程序的工作量而设计的。iPhone OS的这一层框架令优质图表的创建变得更加简单,同时也加快了动画制作的进程。这一层所包含的技术能够支持2D和3D绘图,音频模式和视频模式,涵盖了以C语言为基础的技术(OpenGL ES, Quartz和Core Audio)。同时还具有Core Animation一项先进的用Objective-C实现的动画引擎。3)Core Service层Core Service为所有应用程序提供基本的系统服务。也许开发者并不需要直接使用这些服务,但是系统的许多模块都是在其之上建立起来的。这一层包含了iPhone OS的基本接口,主要用于文件访问,底层数据类型的设定,Bonjour服务,网络接口等。这些接口大部分是基于C语言实现的Core Foundation, SQLite和XML支持等。4)Core OS层Core OS层包含了内核环境,驱动器和底层UNIX接口。其中,内核是基于Mach操作系统的,负责操作系统的所有作业。它管理虚拟内存系统,网络和进程间的通信。驱动器则为可用的硬件设备和系统框架提供接口。这些接口也与Core Service层一样,都是用C语言来实现的。3.iPhone SDKiPhone SDK包含了开发,安装和运行客户机本机应用程序的所有工具以及界面。本机应用程序是使用iPhone OS系统架构和Objective-C程序语言设计的,它们可以在iPhone OS上直接运行。不像Web应用程序,本机应用程序是直接安装于设备上。因此,它的运行并不需要依赖于网络连接。它们与系统的其他应用程序毗邻而居。而且这些应用程序和所有的用户数据都可以通过iTunes与用户的计算机保持同步。Apple将大部分的系统接口都收集在一个叫做框架(framework)的程序包中。一个framework包含了一个动态共享库以及支持该库的一些资源(如头文件,图片,帮助程序等)。使用framework,应用程序开发人员可以将它内联到开发工程内,从而使其得以访问framework的特性,并指导开发工具去哪里查找头文件和framework的其他资源。除了framework,Apple还在它的标准共享库(Standard Shared Libraries)中提供其他技术。因为iPhone OS是基于UNIX的,所以构成操作系统的底层架构的技术都属于开源代码技术。这些技术的接口就储存在标准库以及接口目录中。iPhone SDK用户在iPhone设备上可以运行两种客户端应用程序:网络应用程序和本机应用程序。网络应用程序使用HTML,CSS和Javascript代码来实现与网络服务器的交互,并在互联网上进行传输,在Safari网络浏览器上进行显示。本机应用程序,换句话说死直接安装在设备上的,它们的运行并不需要网络的链接。iPhone SDK只支持创建那些显示在设备主屏幕上的本机前端应用程序。它不能创建驱动程序,后端应用程序,框架和动态库。如果开发人员想在自己的应用程序中整合进框架或者动态库,则必须在创建工程时,将这些代码静态地与应用程序的可执行文件相互连接。4.开发工具为iPhone OS设计应用程序,开发人员需要一台Mac OS X计算机来运行Xcode工具。Xcode是Apple提供的一款设计工具,可以进行工程管理,代码编辑,建立可执行文件,源代码级调试,源代码库管理,性能调整等一系列操作。在这套开发工具中,Xcode应用程序是核心,它提供了基本的源代码开发环境。但是它却不是唯一的工具,下面将对开发iPhone OS软件所需用到的关键应用程序做一介绍。1)XcodeXcode是最关键,最基本的开发工具。它是一个集成开发环境(IDE),为开发者创建和管理iPhone工程和源文件提供所需的工具,并能够生成可执行文件,可在iPhone模拟器或者正式设备上运行和调试。Xcode的工程窗口设计一个新的iPhone应用程序时,必须现在Xcode上创建一个新的工程。工程是用来管理与应用程序相关的所有信息,包括源文件,生成设置和将所有组建集成起来的方法。每一个Xcode工程最主要的是工程窗口,如下图所示。这个窗口提供为该工程里所有关键组件提供快速访问操作。在组列表和文件列表中,开发者可以管理工程所需的文件(源文件和目标文件)。工具条则罗列了一些常用的工具和命令符。详细信息窗口方便开发者在设计的过程中随时改变配置信息。工程窗口的其他部分则为开发者提供了设计工程的背景资料。在Xcode中运行工程2)界面生成器(Interface Builder)界面生成器是开发者用来为应用程序组装用户可视化界面的工具。使用界面生成器,开发者可以向应用程序窗口拖放预先配置好的组件。这些组件包括了基本的系统控制单元,如开关,文本和按钮等,并用自定义视图来代替应用程序提供的视图。在开发者将组件拖入窗口后,可以拖动它们,随意改变它们的位置,配置它们的属性,并为这些对象和应用程序代码间创建映射关系。如果界面设计的工作完成了,可以将其保存为一个nib文件(一种自定义资源文件模式)。使用Interface Builder设计用户可视化界面这个nib文件保存了UIKit在应用程序运行时重新创建对象所需要的所有信息。UIKit会先将nib文件载入,并为其所保存的所有对象创建一个可执行的版本,按照在Interface Builder中配置的方式配置它们。它同样会依照开发者在应用程序中指定的新对象与原有对象之间相互连接的方式进行两者间的互联。这种连接不但为代码提供了指向nib文件中对象的指针,而且还提供了用户操作与应用程序之间相互通讯的信息。总的来说,使用Interface Builder可以为用户界面的创建节省很多时间。由于Interface Builder是一个可视化的编辑器,开发者可以在运行时查看用户界面的情况,所以消除了创建用户界面的代码编写,配置和布局的工作,直观方便。3)Instruments and Shark一个具有世界水平的iPhone应用程序必须提供一流的用户体验。这需要有最佳的用户界面和最好的性能。iPhone提供的开发工具中还包括了强大的优化和分析工具Instruments and Shark来帮助开发者追踪iPhone应用程序的性能瓶颈。Instruments在iPhone与计算机远程连接时,实时地收集诸如磁盘,内存和CPU使用情况等信息。这些信息会随着追踪时间的推移,形成一个可视化的图表。方便开发者定位故障区域,深入定位到出错的代码行。当需要最快运行速度时,Shark使开发者可以在极小的时间间隔中对数据进行抽样。这些工具能够保证开发者设计出来的应用程序具有最华丽的用户界面,同时也令他们得到最满意的用户体验。Instruments and Shark介绍了这么多iPhone开发的内容,现在可以转入Android的介绍了。AndroidAndroid 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。1.Android平台随着Android功能广度的加深,很容易将Android与桌面操作系统相混淆。Android是一个建立于Linux内核之上的分层环境,并且它包含了非常丰富的功能。其用户界面子系统包括了:窗口,视图和编辑框、列表、下拉列表等的显示部件。Android包括了一个建立在WebKit上面的嵌入式浏览器,与iPhone移动Safari浏览器相同的开源浏览器引擎。Android拥有一系列健全的连接选项,如WiFi,蓝牙和与GPRS,EDGE和3G等的无线连接。Android应用程序一项广受欢迎的技术是它能与Google地图连接,在一个特定的应用程序中直接显示地址。支持基于位置的服务(像GPS)和照相功能。移动应用程序的设计在图表/多媒体以及数据存储方式这两大块领域上一直都在努力追逐着桌面应用程序的步伐。Android战胜了内置支持2D和3D图像的挑战。而在数据存储方面,也相应地减轻了负担。因为Adroid平台集成了流行的开源SQLite数据库。下图简单地显示了Android的软件层。Android软件层2.Android应用程序的体系架构如前面所提及的,Android是在Linux内核上运行的。所以Android应用程序使用Java语言编写,并在一台虚拟机上运作。值得注意的是,这台虚拟机不是Java虚拟机,而是Dalvik虚拟机一种开源技术。每个Android应用程序都是Dalvik虚拟机的一个实例,反过来驻留在Linux内核管理进程中,如下图所示。Dalvik虚拟机一个Android应用程序一般会包括下面一个或者多个分类:1)活动(Activities)一个带有可视化用户界面的应用程序通常都是通过一个活动来实现的。当用户在主屏幕或者应用程序启动器上选择了一个应用程序,那么一个活动就被激活。2)服务(Services)服务是指那些需要长期运行的应用程序,如网络监控或者更新检测应用程序。3)内容提供者(Content Providers)可以将Content Providers想象成为一个数据库服务器。一个Content Providers的工作室管理数据的存储,比如一个SQLite数据库。如果应用程序很简单,那么开发者也许就不需要开设一个Content Providers。但是如果应用程序很巨大或者其功能是使数据可用于多线程活动或者应用,那么一个Content Providers就是访问数据的工具。4)广播接收机(Broadcast Receivers)一个Android应用程序也许会被用来处理进程中的数据元素,或者相应一个事件,比如文本消息的接收。一个Android应用程序通常会连同一个名为AndroidManifest.xml的文件一起被配置进一个设备中。这个AndroidManifest.xml文件包含了正确安装该应用程序的所有配置信息。具体内容有类名和应用程序能够处理的事件的类型以及应用程序运行时所需的权限。打个比方,如果一个应用程序需要连接网络来下载个文件,这个操作的权限必须明确记载在清单文件中。这种声明性的安全措施有助于减少恶性软件对用户设备的伤害。3.Android SDK和开发工具开发Android应用程序最简单的方法就是下载Android软件开发工具包(SDK)和Eclipse IDE。Android应用程序可以在Microsoft Windows,Mac OS X或者Linux应用程序上进行开发。Android应用程序是使用Java程序语言进行编写的,但却在一台非Java虚拟机Dalvik虚拟机上进行编译和执行。在Eclipse中编写Java语言是非常直观的。Eclipse提供了一个丰富的Java环境,包括上下文帮助和代码提示。一旦应用程序编译通过,Android开发工具就能确保无误地对该应用程序进行打包,包括AndroidManifest.xml文件。Android SDK是以压缩包的形式存放在开发者的硬盘驱动上的。其包括:1)android.jarJava归档文件包括了开发应用程序所需的Android SDK的所有类。2)documention.html和docs目录SDK文档大部分都是JavaDocs形式,这样可以令用户更加容易导航SDK中的程序包。该文件还含有一份高级开发指南和与Android社区的连接。3)样本目录(Samples directory)样本子目录中包含了各种各样常用应用程序完整的源代码,譬如ApiDemo,演示了很多APIs。实例应用程序大大地减轻开发者的工作量。4)工具目录(Tools directory)包含了构建Android应用程序所需的全部命令行工具。最常用以及最有用的工具是adb utility(Andriod调试桥,Android Debug Bridge)。adb utility支持多种可选的命令行参数,提供强大的功能,如从设备中复制文件。Shell命令行参数令开发者可以直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丑奴儿词境探微
- 粮食储存加工仓库租赁与粮食贸易代理协议
- 离婚协议:财产分割与子女抚养、监护权明确协议
- 高净值离婚协议书编制及执行指导
- 离婚协议书模板(子女抚养费及探望权安排)
- 冷库租赁合同模板(含仓储、冷链配送、包装、保险)
- 亲子主题乐园场地租赁与儿童游乐服务合同
- 学校教师防疫培训
- 康复评定技术大专期末试题及答案
- 文化旅游项目2025年资金申请政策环境与风险规避报告
- 医院保洁中央运输服务项目管理制度
- 阿里巴巴与四十大盗的故事
- 《CT检查技术》课件-CT检查原理
- 新能源汽车功率电子基础 习题答案汇总(程夕明) 习题集1-6
- 《前列腺增生手术》课件
- 安全出口和疏散指示
- 岐黄天使中医西学中专项128学时试题答案
- 肥料、农药采购服务方案(技术方案)
- 员工安全环保履职能力评估
- 计量管理测试题试题
- 园本特色幼儿园环境创设(幼儿园环境创设课件)
评论
0/150
提交评论