美最高院甲骨文诉谷歌案全景解析
文/邓超律师
稿源/IPRlearn
安卓公司成立于年10月,起初的目标是为数码相机开发操作系统,但其创始人后来意识到该市场不够大,于是致力于将安卓项目打造为与移动版Windows、塞班等并肩的移动设备操作系统。谷歌公司于年7月收购安卓公司时,该项目还鲜为人知。但目前安卓已经成为移动设备(智能手机、平板电脑)上最流行的操作系统。安卓其实是一个内核基于Linux的开源的操作系统,但大部分(国外的)安卓设备都预装有谷歌公司的专有软件——包含Chrome浏览器、谷歌商店(GooglePlay)、谷歌地图等的谷歌移动服务(GoogleMobileServices)。而国内智能手机的操作系统则几乎都是安卓的各种分叉(fork)。
Java语言是太阳公司(SunMicrosystems)于年5月开发的编程语言,名字取自印度尼西亚的爪哇(Java)咖啡。太阳公司宣传Java可以“一次编写,随处运行”(writeonce,runanywhere,WORA),意味着Java代码可以在所有支持的平台上运行,而无需重新编译。年1月,甲骨文公司完成了对太阳公司的收购,对价为74亿美元。目前,Java仍然是最受欢迎的编程语言之一,被世界各地的程序员广泛使用。
Java语言是安卓系统成功的关键因素,很多安卓app都是由Java语言编写的。除了因为Java语言受众广、简单易懂之外,Java的WORA特性也许是谷歌选择Java的最主要考量。一个众所周知的事实是,为一个硬件架构编译的程序无法直接在其他硬件架构下运行。例如,微软的SurfacePro系列笔记本/平板电脑具有不止一种CPU,ARM架构的SurfaceProX无法运行为x86架构(绝大多数个人电脑的架构)编写的可执行文件(扩展名为exe)。而安卓生态系统的硬件一直是碎片化的,不同厂商采用的CPU各不相同。为照顾到这一现状,安卓选择了具有跨平台特性的Java。
为了理解为何Java代码可以不受限制地在任意系统上运行,以下对Java技术(或Java平台)进行简单说明。
Java主要包括3个部分:Java语言、Java虚拟机以及Java类库。在我们谈起Java的时候,有时仅仅是指Java语言本身,有时则是指包括这3个部分的Java平台(Java平台标准版即JavaSE)。Java作为一种开源的编程语言并无太多特别之处,任何人都可以自由地使用该语言来编写软件代码。如下的HelloWorld的例子就是用Java语言编写的。
但Java的特殊之处在于其除了一套编程语言之外,还包括Java虚拟机(JavaVirtualMachine,JVM)和相应的库。虚拟机,顾名思义是一个虚拟的机器,其介于实际的硬件与应用程序之间,应用程序并非直接在实际的硬件上运行,而是在虚拟机上运行的。这样一来,Java程序就可以与实际的硬件架构无关地实现独立的跨平台运行。
库(library)则可以简单理解为能实现一些常用功能的代码集合。通过将可重复利用功能的代码作为库,程序员不必重复编写相同的代码,在使用到相应的功能时调用相应的库即可,从而可以节省资源并减少出错。但由于Java程序是在虚拟机上运行的,并不直接调用特定操作系统中内置的库,因此,Java平台提供了大量的标准库供开发者使用。
API则是应用程序编程接口(ApplicationProgrammingInterface)的缩写,它是一种定义程序或库如何进行交互的函数。例如,用户可以通过API向程序发送请求,并接收程序返回的响应。如果认为纯文字描述过于抽象,那么通过以下
转载请注明:http://www.xibuniuzaiku.com/ylfl/10631.html