效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。未来发展
老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。 但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。
在我的理解中,对开发者来说,写J2SE的程序和J2ME的程序相比,最大的区别不是他们API或者是其他一些规则、限制等的不同,更多的是两者程序界面(或者说UI)方面的区别。
我们写任何一段程序,都是需要有UI的,因为我们的程序最终是给用户去用的,即使我们写了一个工具,没有任何显式IO,我们也还是需要暴露必要的方法来提供别人使用,在此情景下,这些方法似乎也可以看作是UI。
对J2SE来说,一般都不会需要GUI,因为我们很少去写SWING、SWT程序,即使Sun力推的JavaFX,好像涉及的也不多,而对于 J2ME来说,最大的困难可以就是那些GUI的实现,以及如何将程序的功能绑定到那些界面上,从界面中接收用户的输入,或者是用合适、合理的方式向界面输出,无论是通过文本,或是曲线、图形。
同理,如果有J2EE的经验,服务后台的代码往往是相对易读、易懂、系统并且内聚的,这些代码看起来是如此的和谐、整洁、干净。而如果涉及到界面,就会陡然复杂的多,即使各种各样的framework试图要解决View与Model、Control的协作问题,结果却让大家更加的迷惑于各种配置之间。总是有GUI的程序都会看起来有些凌乱同样,对于Android开发来说,用户界面的实现应该是比较重要的和复杂的一环。好消息是,到目前为止,"Google没有发现其他更好的用户界面实现方式,所以说如果有HTML设计经验,或者说有Swing,Flash等图形设计经验,那么理解Android的UI设计,会容易的多,甚至会有似曾相识的感觉。
AbsoluteLayout,绝对定位的布局方式,在它内部嵌套的元素必须指定具体的位置。
FrameLayout,帧布局方式,说帧不太容易理解,可以说成是层布局方式,也就是说,在它内部的元素,是一层一层的叠加在一起的。如果用过Photoshop,或者 Flash,这里面的层的概念是和他们一致的。如果最上层的元素是不透明的,并且比下面的元素尺寸要大,那么将看不到下面的元素,只能看到顶层元素。这些层的顺序是:最新声明的放到最前面。可以这样理解,Android按文件的书写顺序来组织这个布局,先声明的放在第一层,再声明的放到第二层,...,最后声明的放在最顶层。
LinearLayout,线性布局方式(真不知道这该怎么翻译,其实很多技术名词还是不翻译的好),这种布局比较常用,也比较简单,就是每个元素占一行,当然也可能声明为横向排放,也就是每个元素占一列。
RelativeLayout,相对定位的布局方式,这个比较好玩,在元素的位置的时候,使用相对位置,可以相对其他元素,也可以相对这个布局,就像我说:我现在站在pawa和 tempest的中间;或者说,我站在队伍的中间。前者就是相对其他元素来定义位置,后者是相对整个布局来定义位置。
1.3.3Java技术简介
到今年6月,全世界已经有大约1亿部Java手机在使用,除中国大陆外共有53个移动运行商正式推出了基于Java技术的无线数据增值服务。中国移动通信集团已经建立了无线Java增值服务体系,并推出了"百宝箱"等服务品牌,包括游戏百宝箱、娱乐百宝箱、商务百宝箱、生活百宝箱等,已经于2003年7月10日开始正式商用。
世界各大移动通讯设备制造商都推出了自己基于Java的移动通讯设备,Nokia、Motorola、Sony Ericsson、Samsung、LG、NEC、HTC等等都有自己的Java认证手机在市面上流通,这是的Java在很大范围上有了发展。
中国联通公司也正在其CDMA 1X网络上建立无线Java增值服务体系,目前系统正在建设过程中,并且2003年9月26日中国联通、北京振戎融通公司和Sun公司在人民大会堂宣布联合发起成立"UniJava技术联盟",三方将在联通CDMA 1X网络上的Java增值服务方面全面合作。
J2ME现称为JavaME(JavaPlatform,MicroEdition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的JavaAPI。它和JavaSE、JavaEE一起构成Java技术的三大版本,并且同样是通过JCP(JavaCommunityProcess)制订的。目前阶段,JavaME最流行的应用是游戏软件。因为与需要昂贵的专用设备和开发工具的竞争对手(如索尼和任天堂)相比,JavaME程序可以在PC机上开发和仿真运行,然后很容易地部署到目标机上,从而使其开发、测试和发布的变得容易
(1)Java程序的基本结构:
Java程序的基本结构有:类、类的属性、对象、方法、组成,其中公共类名必须与Java源程序名相同,其命名规则为每个单词首字母大写,不能以数字开头。必须声明类属性的数据类型。
java要求文件名与类名相同,将多个类放在一起时,要保证类名不能重复。当声明的类很多时,类名就有可能冲突,这就需要一种机制来管理类名,这就是包。
在源程序中可以声明类所在的包,就像保存文件时要说明文件保存在哪个文件夹中一样。同一个包中类名不能重复,不同包中可以有相同的类名。
当源程序中没有声明类所在的包时,Java将类放在默认包中,即运行编译器的当前文件夹中。这时,不能出现重复的类名。
Java下的包都是用来解决类的重名问题的,一般的命名方式都是采用域名倒置的方法,例如package com.baidu;
在Java源程序的头部第一个语句用关键字package声明包,指明该源文件定义的类所在的包。包声明格式如下:package 包名;这个语句的作用范围是整个源文件,而且同一个package声明可以放到多个源文件中,所有定义在这些源文件中的类和接口的.class文件都属于这个包。包名由"."来分隔。
我们一般都是使用Sun公司已经写好的包,例如一个源程序创建的时候,系统自动默认导入java.lang包,进而进行控制台的输出,如果要进行程序的控制台输入。则必须导入java.util.Scanner包等等。
(2)Java中的接口:
所谓接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java语言中不支持多重继承的问题。
接口可以供其他的类来实现,如果一个类要实现一个接口,就必须实现这个接口
上一篇:
基于Android的推箱子游戏的设计——毕业论文(word文档)
下一篇:
面向android系统的测试工具_毕业论文