Android平台上的计算器设计方案.doc_第1页
Android平台上的计算器设计方案.doc_第2页
Android平台上的计算器设计方案.doc_第3页
Android平台上的计算器设计方案.doc_第4页
Android平台上的计算器设计方案.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android平台上的计算器设计方案1.1 课题背景及意义1.1.1 课题背景随着21世纪的到来,我们已经步入了信息化时代,这个时代的最重要的标志就是信息技术的广泛应用。而手机正是信息技术的一个重要体现。如今社会上手机的应用已经达到了非常普及的程度,基本随处都可以见到手机的身影。我们也熟悉了在社会各处遇见它们,家里,办公室里,学校,马路上,基本可以说是有人的地方就用手机的存在。手机发展到今天,已经和最初的手机有了天差地别。智能手机2具有独立的操作系统,像个人电脑一样支持用户自行安装软件、游戏等第三方服务商提供的程序,并通过此类程序不断对手机的功能进行扩充,同时可通过移动通讯网络来实现无线网络接入。智能手机同传统手机外观和操作方式类似,不仅包含触摸屏也包含非触摸屏、数字键盘手机和全尺寸键盘操作的手机。但是传统手机都使用的是生产厂商自行开发的封闭式操作系统,所能实现的功能非常有限,不具备智能手机的扩展性。从广义上讲,智能手机除了具备手机的通话功能外,还具备个人信息管理以及基于无线数据通信的浏览器、GPS(Global Positioning System)和电子邮件功能。智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供个广阔的舞台,很多增值业务可以就此展开,如:股票、新闻、天气、交通、商品、应用程序下载、音乐图片下载等等。结合3G通信网络的支持,智能手机的发展,势必将成为一个功能强大,集通话、短信、网络接入、影视娱乐为一体的综合性个人手持终端设备。第一代手机(1G)是指模拟的移动电话,也就是在我们小时候活跃在各种影视作品中的“大哥大”。最先研制出这种手机的是美国摩托罗拉公司的 Cooper博士。由于当时的电池、天线和集成电路的规模等等技术水平的制约,这种手机体积很大,只能称的上时可移动,严格来说都算不上便携。这种手机有多种制式,AMPS(北美蜂窝系统)、NMT(北欧移动电话)和TACS(全向通信系统)都是主要的模拟标准,但是无论是什么制式的工作方式基本上是频分复用,而且这种手机只能进行简单语音通信,通话的效果也不稳定,同时保密性也很不足,基本可以说是没有保密性。由于当时这种手机的通话频率是固定的,只需要使用双工的无线电台就能监听到用户通话的内容。另外这种手机对于无线带宽利用也是十分不充分的。第二代手机(2G)也是手机发展过程中最常见的手机。通常这些手机使用GSM或者CDMA这些成熟的标准制式,通过了一段时间的发展电池、天线和集成电路规模已经有了突破性的进展了,不会再成为第二代手机发展的制约,而手机也在这些技术的促进中发展的越来越快。通话质量和待机时间都得到了很大的发展。第二代手机为了适应用户对于数据通讯的需求,一些在现在普遍使用的技术也在手机上得到了发展,例如GPRS彩信业务和WAP上网业务,也是在这个时期各式各样的Java程序开始登上历史舞台,从此Java程序的拓展也成为了手机一个重要的部分。下面我们来说说我们现在常常会提起的3G吧。3G是英文3rdGeneration的缩写,即指第三代移动通信技术。相对第一代手机(1G)和第二代手机(2G),第三代手机更加强调的是网络的部分,利用3G技术,手机能够更好的进行数据业务。它能够随时随地的来处理图像、音乐、视频等等多媒体业务,服务的范围提供包括比第二代手机更加快速的网页浏览、视频通话、电子商务等等多种信息服务。而为了确保能够给用户提供以上这些服务,第三代手机就需要更高的数据传输速度,据本人了解,现在的3G手机在室内、室外和行车的环境中能够分别支持2Mbps、384kbps以及144kbps以上的传输速度。最后我们来说说现在国际上承认的3G手机的标准,现在国际上3G手机(3G handsets)有3种制式标准,这三种标准分别是欧洲的WCDMA标准、美国的CDMA2000标准和我国自主研发的TDSCDMA标准。手机发展到今天,科技水平已经越来越高,而3G手机也已经开始进入我们的生活了,手机应用的扩展更是从第二代手机开始就已经变得具有极其重要的意义了,而本文正是在这样的背景下开展研究的。1.1.2课题相关的技术知识近年来,随着手机使用的一些技术的迅速发展,基于J2ME编写的手机应用,因其具有易用性、通用性和良好的可扩展性等优点而发展迅速,正逐渐成为一种流行的热门技术。那么到底什么是JVAV?什么是J2ME呢?下面让我们先来介绍一下。随着通信技术的发展,3G从制定出到现在越来越被人们关注。“3 G”(英语3rd-generation)或“三代”是第三代移动通信技术的简称,是指支持高速数据传输的蜂窝移动通信技术4。目前3G存在四种标准:CDMA2000、WCDMATD-SCDMA、WiMAX。其中TD-SCDMA(全称Time Division-Synchronous CDMA)是由中国大陆独自制定的3G标准。为了推动我国的智能手机的发展,实现多功能的智能手机,方便人们丰富多彩而又快节奏的生活。本文正是基于Android平台开发的计算机器。论文主要阐述以面向对象的程序开发语言eclipse为开发工具, 基于智能手机Android之上设计一个计算器。本文的目标就是设计并实现基于Android的计算器,论文首先介绍了Android开发平台和环境以及Android 工程的重要部分,然后着重针对计算器的系统设计和系统设计的具体实现,最后实现计算器的各种功能并得到了很多好的验证。1.JAVA技术首先要说,Java是一门现在使用很普遍编程语言,但是也是一个平台,它基于Java虚拟机技术,并且借助虚拟机技术实现了跨平台的优势。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,再进一步则可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。由于Java技术本身的优势,现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序的优势就更加明显了,甚至可以做到只编译一次,就可以在各种系统中运行的地步。Java技术的重要性就不讲了,从我了解接触过的编程语言来看,接触的最多的编程语言分别是Java 、C 、VB、C+,我对于编程语言的接触程度虽然本身不能不说明什么,但至少在一定程度上可以反映出编程语言的使用率和普及率。总体的了解了Java技术以后我们来进一步的了解一下Java的语言。简单的说,如书上所说的概念一样,Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。在1995年SUN推出Java语言之后,全世界软件工程师的目光都被这个特别的语言所吸引。这种语言的优越性有此可见。我了解到的Java语言其实最早诞生于1991年,起初也并不叫做Java,而是被称为OAK语言,这种语言是SUN公司为一些消费性电子产品而设计的一个通用环境。她们最初的目的只是为了开发一种独立于平台的软件技术,在网络出现之前,OAK语言可以说是默默无闻。但是,随着网络的出现和发展,OAK语言的命运被完全的改变了。在Java出现以前,Internet上的信息内容都是千篇一律的使用HTML这种有点死板的文档。这让网络浏览者对于网络的兴趣有所下降,网络不能满足她们对于趣味性和互动性的要求。这些使用者希望能在网页中看到一些交互式的内容,而网站的开发人员也极希望能够在为网站开发应用程序的时候不用再去考虑用户的软硬件平台是否能够与程序兼容的这些问题,同时这些程序还能够提供足够安全保障。对于用户的这种要求,传统的那些编程语言都表现的无能为力。而SUN公司的工程师十分敏锐的察觉到了这些需求,从1994年起,她们开始将OAK技术应用于WEB上,并且于同年开发出了HotJava的第一个版本。而当SUN公司1995年正式以Java这个名字推出该语言的时候,几乎所有的WEB开发人员都发现Java这种语言能够完全的满足她们之前的需求,满足用户的需求。于是Java一夜之间成了炙手可热的一种编程语言。那么Java的主要特性又是什么呢?如上文中所说的,Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。下面我们就来详细的介绍一下这些特点。Java语言是简单的。由于Java语言的语法与C语言和C+语言很相近,这就使得大多数的程序员可以只通过很容易学习就能使用Java。另一方面,Java语言祛除了一些C+语言中令人迷惑或者难以理解的特性,比如操作符重载、多继承、自动的强制类型转换等等。另外,在Java语言种不使用指针,并提供了自动的废料收集的功能,从此使用Java的程序员再也不用为了内存管理而担忧了。Java语言是面向对象的。Java语言中提供了类、接口和继承等等,其中只支持类之间的单继承,想要进行多继承就要使用接口,支持类与接口之间的实现机制的关键字为implements。与C+ 语言只对虚函数使用动态绑定相比,Java语言全面支持动态绑定。总之,Java语言可以说是一个纯粹面向对象的程序设计语言。Java语言是分布式的。Java语言支持Internet应用的开发,所以在基本的Java应用编程接口中会有一个网络应用编程接口(java net),这个编程接口提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的远程方法激活机制也是开发分布式应用的一个重要手段。Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。而不再使用指针更是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java语言是安全的。由于Java通常被用在网络环境中,因此,Java特意提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类还具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用更加安全。Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种适应性使得Java的应用变的更加的广泛。Java语言是可移植的。由于Java语言的结构中立的特性,这种语言同时也具备了很强的可移植性,另外,Java语言中还规定了各个基本数据类型的长度。而Java系统的本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。Java语言是解释型的。Java程序在Java平台上被编译为一种特殊的字节码格式, 然后该程序就可以在任何系统中装有Java平台的实现运行。在运行时,Java平台中的Java解释器对这些特殊的字节码再进行解释,而在整个过程中所需要的类在联接阶段就会被载入到运行环境中。Java是高性能的。我了解到的Java语言与解释型的高级脚本语言相比Java的性能确实是占优势的。Java的运行速度更是随着JIT(Just-In-Time)编译器技术的发展变得越来越快了。Java语言是多线程的。Java语言支持多个线程在同一时间一同执行,并且专门的提供了多线程之间的同步机制(关键字为synchronized)。Java语言是动态的。在Java语言的设计之初就有要求语言能够适应于动态变化的环境这个目标。Java程序需要的类,既可以动态地被载入到运行环境,又可以通过网络来载入所需要的类。这样的设计有利于软件的升级。另外,我还了解到Java中的类存在一个运行时刻的表示,能进行运行时刻的类型检查。由于Java语言编写的Java应用具有很强的健壮性和可靠性,这样就能减少很多应用系统的维护费用。Java对面向对象的技术的全面支持和Java平台内嵌的API能极大的缩短应用系统的开发时间同时还能降低开发成本。Java的编译一次,可以在任意装有Java平台的系统运行的特性使得它成为能够直接在多个平台之间传递信息的简单便利的方式。有必要一说的是Java企业应用编程接口还为企业计算及电子商务应用系统提供了有关技术和丰富的类库。 Java编程语言最与众不同之处在于:Java程序既是编译型的又是解释型的。编译型是指,程序会转换为一种称为Java字节码的中间语言,解释型则是指,运行程序的时候JVM 会对字节码进行解析和运行。这个过程中,编译只进行一次,而解释在每次运行程序时都会进行。Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。下面就来着重介绍一下Java ME。2.Java MEJava ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME的目的是为了在移动设备或者嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME包括用户界面、安全模型、内置的网络协议以及对可以动态下载的应用程序的支持。由于Java ME使用的是基于Java平台的规范,所以使用Java ME开发的应用程序也只需编写一次,就可以用于许多设备,而且可以充分的利用每个设备的本机功能。 从近几年的发展趋势来看,Java ME流行的应用是手机应用软件。Java ME程序可以直接在电脑上开发并且可以在电脑端进行仿真运行,程序开发完成后又可以很容易的安装到手机上并且运行,这样的开发过程使得Java ME程序无论是开发、测试和发布的变得十分容易而且成本低廉。当然Java ME的用途和前景远比手机应用软件这方面要广泛得多。与J2SE和J2EE相比,J2ME的运行环境和平台更加多样化,但其中具体产品的用途却更为单一,而且对于的资源限制也更加严格。为了在能够达到标准化和兼容性的同时还可以尽量满足不同方面的需求,J2ME的架构分为Configuration、Profile和Optional Packages(可选包)。它们之间的不同组合形成了具体的运行环境。1.2 智能手机平台系统智能手机(Smartphone),是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称”。目前全球主要的只能手机操作系统依次是iPhone OS、Symbian、BlackBerry OS和Android,其中Android最年轻,市场份额正迅速增加。下面简单介绍Android以外的几款常用的智能手机系统。IPhone OS是苹果公司专门为iPhone开发的智能手机系统5。iPhone手机具有硬件与软件一一绑定的特性,Apple公司采用与运营商分成的策略。iPhone虽然开放了SDK,可是却不能在PC上使用,这对于中国的应用开发市场是个不晓得阻碍。但它将创新的移动电话、可触摸宽屏iPod以及具有桌面级电子邮件、网页浏览、搜索和地图功能的突破性因特网通信设备这三种产品完美的融合为一体的特性,也吸引了无数的用户。Symbian(中文名:塞班)6是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,虽然在智能型手机市场取得了无比的成功,并长期居于首位,但是Symbian S60、Symbian3,UIQ等(尤其是S60)系统近两年亦遭遇到显著的发展瓶颈。最近12个月欧洲手机公司诺基亚(Nokia)在智能手机市场市占率的滑落是不争的事实。需要注意的是,并不是所有的Symbian系统都是智能系统,比如S40系统,就不属于智能手机系统。BlackBerry OS7是RIM专用的智能手机操作系统。BlackBerry,在美国市场占有率相对较高,BlackBerry的比较具有个性的设计就是宽大的屏幕和便于输入的QWERTY全键盘,所以BlackBerry在移动电子邮件方面非常方便,由于我国手机用户发送短信对于发送邮件,所以BlackBerry系统的邮件优势在中国不存在,目前BlackBerry OS在智能手机操作系统的市场份额占据第三位i,BlackBerry手机市场主要在美国8。windows mobile是微软由于Pocket PC和Smartphone的软件平台9。windows mobile系统将大家熟悉的Windows桌面延伸到了移动设备中。windows mobile是Microsoft为手持设备推出的“Windows移动版”。受Android的冲击,目前Windows Mobile在智能手机操作系统的市场下降到4%左右。Linux凭借其开放源代码、免费的优势,经过来自全球程序员的努力,再加上google、IBM等计算机巨头的支持。Linux在手机操作系统市场中成为了衣服新生的力量,尤其是在许多知名厂商如摩托罗拉宣布支持Linux手机操作系统之后,Linux的市场份额有增加的趋势。目前基于Linux的智能手机占有7.3%的市场份额。Palm OS由Palm公司研发,是一种32位的嵌入式操作系统,它的操作界面采用触控式,几乎所有的控制选项都排列在屏幕上,使用触控笔进行所有操作。目前基于Palm OS的智能手机占有2.3%的市场份额12。1.3 课题来源计算器作为现在人们日常生活中常用的一种工具已经可以说是人们日常生活中必不可少的工具了。但是计算器的发展经历了漫长的过程,凝聚无数先人的智慧,甚至连计算机的发展都可以说是源于计算器的发展。计算器和计算机一样都能够实现数据的输入、处理、存储和输出这些基本的功能,但计算器区别于计算机的地方就是,它不能自动的进行计算,必须要求由人来操作完成计算;而计算机通过提前编写好的程序就能够自动的按照程序进行处理。所以计算器和计算机的一个显著的区别就在于是否需要人为地操作来完成运行。这二者还有另一个本质性的区别。计算器的处理数据的方法是生产时就已经固化在系统中了,所以计算器只能按照系统中规定的处理方法来处理用户要求的计算任务;而计算机由于可以自行安装操作系统和各种的相关软件和硬件,理论上计算机拥有的可扩展性是无穷的。所以简单的说,计算器和计算机的本质性区别就在于该系统是否存在可扩展性。在我所了解到的知识中,最早的计算工具可以追溯到中国古代一种叫做筹策(又叫算筹)的东西上。这种计算工具在计算的时候摆成纵式和横式两种数字,按照纵式相间的原则表示任何自然数,从而进行加、减、乘、除、开方以及其它的代数计算。负数出现后,算筹分为红和两种,红筹表示正数,黑筹表示负数。虽然我对于这种计算的原理不是很了解,但是不得不说,这种运算工具和运算方法确实是当时世界上独一无二的。直到今天仍有一些人在使用的珠算或者叫算盘,是中国古代计算工具中的另一项伟大发明,而从明朝开始使用的算盘就已经与现代的算盘几乎完全相同了。以上介绍完了中国关于计算工具的发展,下面我们来看看西方社会中计算工具的发展情况。我通过查询资料得知,17世纪初这个时期,西方国家的计算工具开始有了一个较大的发展,英国数学家纳皮尔发明的纳皮尔算筹,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺的功能不仅仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具的产生不单单是带动了计算器的发展,更是为现代计算器的发展奠定了一个坚实的基础。虽然当时的技术水平有限,这些工具使用的不是机械或者电子作为载体,但是这些计算工具却为了后世的计算器提供了一个良好的思路。1642年,伟大的法国科学家帕斯卡在年仅19岁的时候就利用了算盘的计算原理发明了世界上第一部机械式的计算器,在这个计算器中有一些互相咬合的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,靠这样来实现十进制的算法,人们可以转动齿轮,把想要输入的数据输入进去,计算结果就会出现在另一个窗口中,但是这个计算器只能做一些加减计算。1694年,莱布尼兹在德国将其改进,使这种计算器成为可以进行加减乘除计算的计算器。此后,一直要到20世纪50年代末才有电子计算器的出现。第二章 系统分析2.1 系统可行性分析手机计算器系统的功能定义为,为用户提供便捷的计算功能。即在使用方便的前提下为用户提供尽量多的计算以及相关功能。意旨将计算器和手机进行有机的结合,使计算器的使用变得更加简便。随着手机应用软件的不断发展,实用的手机计算器可以算是手机中必不可少的软件之一,使用手机计算器可以方便的对复杂的数据进行计算,为工作生活中带来了很多方便。1经济可行性分析本系统由个人开发,完全开源,在本系统开发的过程中考虑了用户可能需要的计算功能,对于基本计算的功能和记忆功能都有开发,还另行开发了一些其她的计算功能,功能基本比较完善,同时可以免费使用,很实惠,有很强的实用性。2技术可行性分析本系统从技术上来讲是完全可行的,利用J2ME可以相对容易的实现基于触屏的手机软件开发,同时利用了Java的特点,使系统能够在更多的不同操作系统中安装运行。现在手机本身的CPU和存储空间完全可以支持系统的运算以及记忆的储存等等所需要的速度和存储空间。2.2 系统的开发语言的选择本次开发的系统为基于触屏手机的手机计算器,手机计算器的实用性相当强,在手机上安装计算器既可以方便计算,又可以解决携带等等问题。需要使用基于触屏的开发模式是因为现在的触屏手机大行其道,基本新上市的主流手机都使用的触屏技术,为了能够使系统跟谁时代的脚步不会过早的被淘汰等等方面的考虑,本系统使用了基于触屏的开发模式。基于触屏的开发模式可以分为好几种,比如入前文提到的微软开发的WM系列,苹果的iOS系统,以及google开发的Android系统等等,那么为什么要选择J2ME作为开发语言呢?选择J2ME语言作为开发语言的原因很简单,因为这些系统基本每种触屏手机的操作系统都有自己的对应的软件格式,由于考虑到了Java的通用性,所以本系统使用了Java这种通用的技术进行开发,使用的是适合于移动平台J2ME语言编写。2.3 系统的开发工具简介本系统是采用Eclipse+EclipseMe+JDK+WTK作为开发平台,使用J2ME这种语言进行程序的编写的。上文中已经介绍了J2ME了,下面我们来介绍一下开发平台。2.3.1 JDKJDK(Java Development Kit)是Sun Microsystems针对Java语言程序开发的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心组件,其中包括了Java的运行环境,Java工具和Java基础的类库。可以说JDK是学好Java的第一步。从SUN的JDK5.0开始提供了泛型等等一些非常实用的功能,而且版本还在不断更新,到本论文写作时已经更新到了JDK6.0了。运行效率也随着版本的不断更新而得到了很大的提高。 2.3.2 WTKWTK 的全称是Sun J2ME Wireless Toolkit Sun的无线开发工具包。这一工具包的设计目的就是为了帮助开发人员简化Java ME程序的开发过程。使用其中的工具可以开发与Java Technology for the Wireless Industry (JTWI, JSR 185) 规范兼容的设备上运行的Java ME应用程序。并且在工具箱包含了完整的生成工具、实用程序以及设备仿真器,这就是上文中所提到的可以在电脑上进行仿真测试的关键工具包。每个版本都包括英语,日语,简体中文,繁体中文4个语种包。值得一提的是WTK默认是不支持触屏的,需要进行人为的修改以后才会支持触屏。2.3.3 EclipseEclipse是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。换句话说就是Eclipse只是提供了一个界面,所有的开发环境都要通过安装相关的插件来完成。不过Eclipse 附带了一个标准的插件集合,在这个集合中包括了Java的开发工具(Java Development Tools,JDT)。首先我们来介绍一下Eclipse历史和版本。Eclipse最初是由OTI和IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,在2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。2010年6月发布代号为Helios的3.6版。本系统开发使用的是3.6的版本。此外我们再来谈谈Eclips语言拓展能力。Eclipse基本已经成为世界最著名的跨平台自由集成开发环境(IDE)。最初主要用来Java语言开发,但是由于其开源的特性,也有人通过为其安装插件使其作为其她编程语言(比如C+和Python)的开发工具。如上文所说,Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有了其她功能固定的IDE软件很难拥有的灵活性。现在许多的软件开发商以Eclipse为框架开发出了自己的IDE。Eclipse由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前也是由IBM牵头,围绕着Eclipse已经发展成为了一个庞大的Eclipse联盟,这个联盟中已经有150多家软件公司参与到Eclipse项目中,其中不乏知名的厂商例如Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,其界面跟先前的Visual Age for Java差不多,但由于它是个开源的系统,任何人都可以免费得到其码源,并可以在此基础上开发各自的插件,正是因此,它越来越受人们关注。近几年更有包括Oracle在内的许多大公司也纷纷加入了该项目,这标志着Eclipse将来能会成为可进行任何语言开发的IDE大集合,使用者只需根据自己的需要下载各种语言的插件即可。接着说说Eclipse 插件开发环境。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此,如上文所说,Eclipse的最终目标是成为可以进行任何语言开发的IDE大集合。所以在Eclipse中还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要是针对希望扩展 Eclipse功能的软件开发人员,因为这个组件允许开发者构建与Eclipse环境无缝集成的工具。由于Eclipse中可以说是每样东西都是插件,所以说对于想给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境的开发人员来说,所有人都具有了一个同等的发挥机会。我在网上找到的基于Eclipse的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了IBM 关于Java开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse都有哪些的主要组成部分呢?Eclipse作为一个开放源代码的软件开发项目,目标是成为可进行任何语言开发的IDE大集合。它主要是由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,其中具体的又包括四个部分,分别是Eclipse Platform、JDT、CDT和PDE。JDT是支持Java开发的、CDT是支持C开发的、PDE是用来支持Eclipse插件开发的,Eclipse Platform则是一个开放的可扩展IDE,为使用者提供了一个通用的开发平台。Eclipse SDK(软件开发者包)是一个Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次性打包下载。这些部分一起提供了一个具有性能可靠,特性丰富的开发环境,在这个环境中允许开发者有效地建造可以无缝连接到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的使用许可协议。2.3.4 EclipseMeEclipseME是一个用来开发J2ME应用程序的Eclipse插件。EclipseME集成了Eclipse现有的java editor功能,可以提高代码的编写效率。第三章 基于Android平台计算器相关技术概述本章介绍了基于Android平台计算器相关技术。首先介绍了各种智能手机平台系统,并进行分析。重点介绍了Android平台系统,对Android体系结构及平台功能进行了介绍。同时还对本文界面开发实现要用的XML技术进行了简单的介绍,具体如下。3.1 Android手机平台3.1.1Android起源及优势Android平台自发布以来就一直吸引着广大开发者的目光,Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件14。Android平台具有以下优点:(1)平台的开放性允许任何厂商加入,使其拥有更多的开发者,新颖的应用功能及创意可以不断地出现。(2)脱离了运营商的束缚,让手机更加贴近互联网。(3)应用程序都是基于java开发的,java具有一次编写、到处运行的跨平台性。能够实现在所有的Android设备中运行,真正做到了硬件的无关性,降低了开发者的负担。(4)提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。3.1.2Android体系结构Android平台架构15从上至下包含五部分:应用程序(Application)、应用框架(Application Framework)、开发库(Libraries),运行时环境(Android Runtime)以及Linux内核,如图2-1所示.(1).应用程序Android同一系列核心应用程序包一起发布,该程序包包括email客户端、SMS短消息程序、日历、联系人管理程序等。所有的应用程序都是用Java语言编写的。(2).应用框架应用框架式进行Android开发的基础。应用程序框架层包含了视图系统、内容提供器、窗口管理器、活动管理器、通知管理器、资源管理器、电话管理器和包管管理器9大部分。图 3-1 Android架构图在Android中,任何一个应用程序都可以发布自身的功能块,而其她应用程序则可以使用已发布的功能块。基于这样的重用机制,用户就可以方便地替换平台自身的各种应用程序组件,这在Symbian和Windows Mobile平台中都是无法实现的。虽然Android本身已在框架中提供了许多软件组件,不过这并不表示所有的应用程序一定要调用Android本身已在框架中提供了许多软件组件,不过这并不表示所有的应用程序一定调用Android所提供的组件,开发人员在开发Android平台上的应用程序时,也可以开发新的软件组件,并将该软件组件放入Android的应用程序框架中。(3)开发库(Libraries)Android包含一套C/C+开发库,主要包括:libc、Media Framework、WebKit、SGL、OpenGL ES、FreeType、SQlite等。这些库被应用于Android系统的各种组件中,开发人员可以通过Android应用框架调用它们。(4)运行环境(Android Runtime)Android虽然采用Java程序语言来编写应用程序,但并不使用J2ME执行Java程序,而是用Android本身自带的Android运行时环境。Android运行时包括核心库和Dalvik虚拟机两部分,如图2-2所示,这两部分具体功能如下:核心库包含两部分内容:一部分为绝大多数Java程序语言所需要调用的功能函数,另外一部分为Android的核心库,如、android.os、android.media等。与标准Java语言不一样的是,每个Android应用程序都有一个自用的进程,即Android不是用一个Dalvik虚拟机来同时执行多个Android应用程序,而是每个Android应用程序都有一个自身的Dalvik虚拟机来执行。图 3-2 Android 运行时Dalvik是一种基于寄存器的Java虚拟机。Dalvik虚拟机是专门为移动设备而设计的,它在开发时就考虑到了用最少的内存资源来执行,以及支持前面提到的同时执行多个虚拟机的特性。Dalvik虚拟机有许多地方参考了Java虚拟机的设计,不过Dalvik虚拟机所执行的中间码并非是Java虚拟机所执行的Java字节码,但也不直接执行Java的类文件,而是依靠转换工具dx将Java字节码转换为dex格式。(5)Linux内核(Linux Kernel)Android的内核系统服务依赖于Linux2.6内核(如图2-3所示),如内存管理、进程管理、安全性、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层,这样应用程序开发人员就无需关心硬件实现细节。图 3-3 linux 内核整体架构上,Android相比其她平台显示出了自身的特点,例如集成了WebKit浏览器、Dalvik虚拟机等模块、提供了开源的代码、可重用和可替换组件的程序应用框架、SQLite结构化的数据存储的数据库等特点。3.1.3Android平台功能特征Android平台具有很多独特的功能特征,具体如下。应用程序架构:在应用程序架构内已经具备了多种不同的基础组件,在开发应用程序时,可以直接调用这些组件,极大地节省了程序开发人员的时间与精力。Dalvik虚拟机器:在Android平台上使用的java虚拟机,不是Sun公司的标准java虚拟机,而是Google自主开发的代码为Dalvik的虚拟机,它不但保证了JavaAPI的兼容性,同时针对移动手机进行了大幅优化,占用资源更少,运行效率更高。集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览殷勤为基础开发的。WebKit是一个开源浏览器网页排版引擎,目前使用了WebKit引擎的浏览器主要有:Safari,Midori,Epiphany等。配合Android手机的功能,可以再浏览网页时,达到更好的效果,例如:局部缩放网页上的咨讯、触控式的操作等效果。优化的绘图能力:在程序里可以用到的绘图功能分为2D和3D两个方面。在2D方面,Android提供了一套特有的类库(SQL);而在3D方面则是使用OpenGLES1.0(OpenGL for Embedded Systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。SQlite数据库:SQlite提供结构化的数据存取。SQlite16是一款轻型的数据库,它的书记目标是嵌入式的,目前已经有很多嵌入式产品使用了它,它占用的资源非常低。它能够支持windows、linux、unix等主流的操作系统,同时能够和很多程序语言相结合,比如PHP,Java等,还有ODBC接口,与Mysql,PostgreSQL相比,它的处理速度更快,无需安装和管理配置。它是一个储存在单一磁盘文件中的完整数据库,体积很小只有250KB,但所支持数据库大至ZTB。它虽然很小巧,但是支持的SQL语句毫不逊色于其她开源数据库。同时它还支持事务功能和并发处理等。SQlite也是一套开发性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。多媒体的支持能力:主要用于播放媒体文件。包括对音频(如播放MP3或其她音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式。GMS技术:Global System for Mobile Communications,即全球移动通讯系统,俗称“全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球17。GSM技术是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。蓝牙、EDGE、3G及Wi.Fi:蓝牙技术是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM Evolution),即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和8PSK调制技术18。由于8PSK可将现有GSM网络采用的8GMSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。Wi.Fi(WireleddFidelity),即无线保真技术,和蓝牙技术一样,都属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4GHz附近的频段,该频段目前尚属没用许可的而无线频段。其目前可使用的标准有两个,分别是IEEE802.11a和IEEE802.11b。这些通讯能力是属于手机硬件方面的展现,也是在开发android应用程序时可以突出的特点之一。GPS:Global Positioning System,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统19。这个系统可以保证在任意的时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。丰富的开发环境:在Android SDK提供相当完善的程序开发环境,其开发环境包括设备模拟器、调试工具、内存和性能检测等方面的评估功能,另外也可提供用于Eclipse IDE的开发插件界面。3.2 Android SDK介绍Android SDK是Android手机操作系统运行的平台支撑,它由开发文档、实例、编程API、开发工具集等组成20。Dosc包含了的Android开发文档,Samples包含了Notepad、APIDemos、Snake等示例程序,Tools包括全部开发、编译和调试工具。Emulator.exe:能启动Android模拟器。Android模拟器用来在虚拟的Android环境下,运行应用程序。Adb.exe(Android debugging bridge):是Android的一个调试工具,ddms是一个在adb基础上的一个图形化工具。Adb的工作方式比较特殊,采用监听TCP5554等端口的方式让IDE和Qemu通讯,默认情况下adb会监听daemon相关的网络端口,所以当运行Eclipse时adb进程就会自动运行。Android是一个操作系统平台,启动一个模拟器就启动了一个操作系统。可以使用Android adb连接到这个操作系统,并运行一些系统命令,就像平时大家用终端访问一个远程linux、unix服务器,可以使用adb shell。如下进行shell后进行ls命令,在该shell下可运行linux下一些常用的命令。注意:adb shell默认只启动一个模拟器(emulator),如果需要启动多个模拟器,则需要添加相应的参数。如刚才使用的adb devices命令返回了两个模拟器,如果要连续其中一个则加参数-s;使用加:adb 是emulator-5544 shell。3.3 XML技术XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记易于建立,虽然XML占用的空间比二进制数据所占用的空间多,但XML极其简单易于掌握和使用。XML作为一种广泛且被各大厂商接收的语言,具有自己的优点,其优点主要体现在以下几方面。(1)开放性XML成功的主要因素之一是它的基于规范和标准的开放性。XML技术根据标准规范,允许在任何平台上取得和处理数据。更重要的是XML允许通过HTTP和其她传输协议交换XML数据。(2)可扩展性可扩展性是指,使用XML可以按照自己的需要制定语言。XML继承了SGML的许多关键特性,首先是良好而可扩展性。XML允许使用者创建和使用自己的标记而不是HTML的有限词汇表,用户可以根据应用需要定义自己的标记语言,也可以建立一套特定行业标记语言,作为信息共享和数据交换的基础。使用XML作为表单的描述格式,可以满足用户对表单定制的需求。(3)XML文档的内容和结构完全分离XML的形式和内容是分离的,这样可以让数据的收集者专注于数据处理,相同的数据无需改动即可在不同的XSL(XML Style language)页面呈现不同的风格。同时,内容和形式的分离使XML文档在不同应用系统之间的转换变得非常简单,用户只需要将两个不同XML文档的DTD(Document Type Definition)或XML Schema进行映射。3.4 JNI技术JNI是Java Nati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论