Google开源软件推荐

源,并发布了一系列开源项目。如果没有开源软件,Google也难以达到今日的成功。开源中国社区目前收录了Google 259 款开源软件,详见阅读原文

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 提供:

  • 基于 Gradle 的构建支持
  • Android 专属的重构和快速修复
  • 提示工具以捕获性能、可用性、版本兼容性等问题
  • 支持 ProGuard 和应用签名
  • 基于模板的向导来生成常用的 Android 应用设计和组件
  • 功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览

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 NDK

 

Android 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包括了:

  • 从C / C++生成原生代码库所需要的工具和build files。
  • 将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
  • 支持所有未来Android平台的一些列原生系统头文件和库

GWT——Google Web工具包

 

Google 网页工具包——GWT 提供了一组基于Java语言的开发包,这个开发包的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉Java AWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。

开发出来的Java应用将由GWT开发包提供的编译工具编译后声生成对应的、应用了Ajax技术的Web应用,Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替。

GWT特性:

GWT除了支持将应用Java语言开发的应用转化为Ajax应用,同时提供了更多的高级特性。

  • GWT编译器
  • 跨平台支持
  • 宿主模式(Hosted Mode)
  • Web模式(Web Mode)
  • 命令行工具

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的软件工程师(看名字大概是华裔),从jMockEasyMock中获得灵感而开发。

这个框架能够在Linux,Windows 和Mac OS X上使用。

GRPC——RPC 框架

GRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpcgrpc-javagrpc-go。其中 C 版本支持 CC++Node.jsPythonRubyObjective-CPHP 和 C# 支持。

开源中国组织翻译的《gRPC 官方文档中文版》:http://doc.oschina.net/grpc

GRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

Protocol Buffers

Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。

为什么不只用XML?同XML相比,Protocol buffers在序列化结构化数据方面有许多优点(google官方提出):

  • 更简单
  • 数据描述文件只需原来的1/10至1/3
  • 解析速度是原来的20倍至100倍
  • 减少了二义性
  • 生成了更容易在编程中使用的数据访问类

Github地址:https://github.com/google/protobuf

Gumbo——纯C语言实现的HTML5解析库

Gumbo 是 Google 的一款用C语言实现的HTML5解析库,无需任何外部依赖。

目标及特征:

  • 遵循 HTML5 规范
  • 功能强大,可处理一些不规范的 HTML 标签
  • 简单的 API
  • 支持源位置和指针回到原始文本
  • 轻巧、没有外部依赖
  • 通过 html5lib-0.95 兼容测试
  • 已在超过25亿个来自谷歌索引的页面中进行过测试

Github地址:https://github.com/google/gumbo-parser

Google API for Java

Google API Client Library for Java 是由Google开发的一个Java客户端类库,用于访问其提供的各种基于HTTP的服务。

具有灵活、高效、强大等特点。这是访问基于REST或JSON-RPC的Google API推荐类库。

Github地址:https://github.com/google/google-api-java-client

Google Spark

Spark 是谷歌公司推出的一款基于 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 Test

Google JS Test是一个运行于V8 JavaScript引擎下的Javascript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放大家使用。Google JS Test主要特性:

  • 超快的启动速度和执行时间,不需要在浏览器里运行
  • 清爽而具有可读性的输出内容
  • 也有一个可选的基于浏览器的测试器,可在JS修改的时候刷新
  • 其样式和语义跟Google Test for C++类似
  • 内置的Mocking框架只需要最简单的样板代码(比如no $tearDown or $verifyAll 请求),其样式和语义基于Google C++ Mocking Framework
  • 匹配系统允许表达式测试,并可直观的阅读输出的错误提示,内置了很多匹配器,用户也可自行添加

Bazel——代码构建工具

 

Bazel 是 Google 的一款可再生的代码构建工具。它主要是用于构建 Google 的软件,处理出现在谷歌的开发环境的构建问题,比如说:大规模数据构建问题,共享代码库问题,从源代码构建的软件的相关问题。

Bazel 支持多种语言并且跨平台,还支持自动化测试和部署、具有再现性(Reproducibility)和规模化等特征。Bazel 在谷歌大规模软件开发实践能力方面起着至关重要的作用。

具有以下功能:

  • 支持自动化测试和发布
  • 支持多语言和多平台的多样性

SyntaxNet——全球最精准自然语言解析器

SyntaxNet 是一个框架,即学术圈所指的SyntacticParser,他是许多NLU系统中的关键组件。在这个系统中输入一个句子,他会自动给句子中的每一个单词 打上POS(part-of-Speech)标签,用来描述这些词的句法功能,并在依存句法树中呈现。这些句法关系直接涉及句子的潜在含义。

AnyPixel.js——可令用户自己创造交互展示

AnyPixel.js 是 Google 开源的一个软件和硬件框架,可以用来构建各种由“像素”构成的展示,每个像素可以是任何一种可交互的实体对象,如 LED 灯、气球等。

谷歌希望让用户获得掌控权,创造自己熟悉的设置,无论是选择气球、灯箱或者大量其它部件以将你的想法变成现实。在你开始之前,你可以使用谷歌的浏览器预览,大致了解下你的项目完成后的样子,所以你不会盲目的创造而不知道结果是怎样。

PerfKit——云基准测试工具

PerfKit 是 Google 公司推出的一款开源的云基准测试工具,PerfKit 提供一组基准测试方法用来测量和比较云服务。当前支持 Google 自己的 Compute Engine、亚马逊的 AWS 和微软的 Azure 云。目前为该项目在工作的有超过 30 个研发人员、公司和客户,包括:ARM, Canonical, Cisco, Intel, Microsoft, Rackspace and Red Hat.

PerfKit 同时还提供一个可视化工具 PerfKit Explorer 用来比较测试结果:

Gson——Java的JSON类库

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

Eclipse ADT——Eclipse ADT logoAndroid开发插件

Eclipse ADT 是 Eclipse 平台下用来开发 Android 应用程序的插件。

在线安装地址:https://dl-ssl.google.com/android/eclipse/

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓