在企业使用开源和贡献开源方面,Google一直是行业的典范。一直以来,Google都在极力推广和倡导开源,并发布了一系列开源项目。如果没有开源软件,Google也难以达到今日的成功。开源中国社区目前收录了Google 259 款开源软件,详见:http://www.oschina.net/project/google
Android SDK——Android SDK logoAndroid开发工具包Android SDK 是 Android 的开发工具包。 Android是谷歌(Google)公司推出的手机开发平台。与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台,下图是 Android 手机平台开发工具包说提供的模拟器界面截图:
但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时 拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。 Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并 组建“开放手机联盟”,其成员超过30家。
Android Studio——Android Studio logoAndroid 开发环境Android Studio 是一个全新的 Android 开发环境,基于 IntelliJ IDEA。类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试,在 IDEA 的基础上,Android Studio 提供:
Chrome——Google浏览器Google Chrome,又称谷歌浏览器,是一个由Google(谷歌)公司开发的开放源代码网页浏览器。本软件的程式码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。 软件的beta测试版本在2008年9月2日释出,提供43种语言版本,目前仅适用于Microsoft Windows的XP及Vista平台,并不支援Windows 2000或更早期的版本。Mac OS X和Linux版本正在研发中,并将于日后推出。
Android NDKAndroid NDK 是在 SDK 前面又加上了原生二字,即 Native Development Kit,因此又被 Google 称为 NDK。 在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。 不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。 众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。 NDK包括了:
GWT——Google Web工具包Google 网页工具包——GWT 提供了一组基于Java语言的开发包,这个开发包的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉Java AWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。 开发出来的Java应用将由GWT开发包提供的编译工具编译后声生成对应的、应用了Ajax技术的Web应用,Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替。 GWT特性: GWT除了支持将应用Java语言开发的应用转化为Ajax应用,同时提供了更多的高级特性。
Dart——结构化编程语言Dart是一种基于类的可选类型化编程语言,设计用于创建Web应用程序。 Google称,Dart的设计目标是为Web编程创造结构化但又富有灵活性的语言;编程方法一目了然,符合程序员的自然习惯,易于学习;能在所有浏览器 和不同环境中实现高性能。
Dart代码以两种方式执行,一种是原生虚拟机,一种是JavaScript引擎,用编译器将Dart代码翻译成 JavaScript代码。这允许程序员在Dart中创建Web应用,编译后在任何浏览器上运行。Dart语言官网提供了名叫Dartboard的在线应 用,让感兴趣的开发者在线上编程和运行。 Kubernetes——容器集群管理系统Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。 Google Mock——C++模拟测试框架Google Mock 是 Google 开源的一套 C++ Mock 框架。 Google Mock在google内部超过100个项目中使用过,由Zhanyong Wan,一个google的软件工程师(看名字大概是华裔),从jMock和EasyMock中获得灵感而开发。 这个框架能够在Linux,Windows 和Mac OS X上使用。 GRPC——RPC 框架GRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc,grpc-java,grpc-go。其中 C 版本支持 C,C++,Node.js,Python,Ruby,Objective-C,PHP 和 C# 支持。 开源中国组织翻译的《gRPC 官方文档中文版》:http://doc.oschina.net/grpc GRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。 Protocol BuffersProtocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。 为什么不只用XML?同XML相比,Protocol buffers在序列化结构化数据方面有许多优点(google官方提出):
Github地址:https://github.com/google/protobuf Gumbo——纯C语言实现的HTML5解析库Gumbo 是 Google 的一款用C语言实现的HTML5解析库,无需任何外部依赖。 目标及特征:
Github地址:https://github.com/google/gumbo-parser Google API for JavaGoogle API Client Library for Java 是由Google开发的一个Java客户端类库,用于访问其提供的各种基于HTTP的服务。 具有灵活、高效、强大等特点。这是访问基于REST或JSON-RPC的Google API推荐类库。 Github地址:https://github.com/google/google-api-java-client Google SparkSpark 是谷歌公司推出的一款基于 Chrome 浏览器的开发环境。提供一组可重用的 UI 组件。采用 Dart 开发。
MDL——前端开发工具组MDL (Material Design Lite) 是 Google 推出的网站前端开发工具组。Material Design Lite (MDL)可以让你添加一个 Material Design 的外观和感觉到你的静态内容网站,不依赖于任何的 JavaScript 框架和库。MDL 可以优化跨设备的使用体验,可以在旧版的浏览器进行平滑的切换,提供非常快速的访问体验。 浏览器支持: IE9-11,Chrome,Opera,Firefox,Safari,Chrome(Android),Mobile Safari。
Google JS TestGoogle JS Test是一个运行于V8 JavaScript引擎下的Javascript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放大家使用。Google JS Test主要特性:
|