什么是开源? 开源软件是使源代码免费提供的软件,供任何人查看和使用。 公司,个人,大学和许多其他实体构建整个项目并使用开源许可证,然后他们将代码提供给任何想要使用它的人。 使用的许可证确定使用此代码的其他人如何共享其修改。
有不同的开源许可证具有不同的使用条件,从GPL(GNU通用公共许可证) - 允许“在进一步开发和应用程序被置于同一许可证下的情况下免费分发” - 到更自由的许可证,如Apache许可证,不需要修改就可以打开并且可以使用源代码。 Android使用这两种许可证,我们将依次查看它们。
在Android中使用的Linux内核包含在GPL中。 这意味着当向公众发布二进制文件(geek-speak for a compiled,executable executable of software)时,必须使对源代码所做的任何更改都可用。 这意味着像HTC,三星,摩托罗拉等制造商必须在他们开始销售的同时为他们销售的任何设备发布内核源代码。 当然,这种情况很少发生,我们最终会等待团队在发送给我们之前删除备注,来源评论和其他有用的东西。 这些是您将在互联网上看到的代码版本,包括内核源代码和GPL涵盖的其他开源“位”。
Android本身的源代码主要是在Apache License下发布的。 任何人都可以下载源代码并按照他们的喜好进行更改,但不要求他们以源代码形式向公众提供他们的更改。 这就是为什么我们不能轻易修改三星的Touchwiz(例如) - 他们对基本Android源代码所做的更改不适用于我们。 虽然许多人(包括我自己)不太喜欢这种情况,但从商业角度来看确实有意义。 如果制造商必须分享他们 所有 的秘密,那么创新就没有那么多的金钱激励,所以来源提供了更加自由的许可。 当我们看到电子世界中许多主要参与者的设备时,它确实有效。
谷歌的另一个主要消费产品 - Chrome OS - 是从Chromium来源编写的。 根据BSD许可,谷歌编写的Chromium部分是开源的。 其他贡献者使用各种开源许可证,如MIT许可证或GPL。
这里要记住的一件重要事情是Android和Chromium是开源的,但用于Nexus设备和Chromebook的操作系统则不是。 它们是从开源项目构建的,但可能包含专有部分,以改进每个特定设备的软件。 对于Nexus手机,这些专有位在Android开发者网站上发布,随时可以放入您可以从AOSP构建的任何内容,以获得相同的体验。 Chromebook将在完全开放的Chromium版本上运行,但不会有一些封闭的Google API或全套视频和音频编解码器。
Google还发布了非开源许可的应用程序。 我们手机上的Gmail,地图和大量其他Google应用都不是AOSP的一部分,并且是针对Android,Chrome,iOS和网络独立开发的。 当你听到有关Android没有“开放”的互联网争吵时,这就是他们所说的。 Android,以及安装和运行Android应用程序所需的一切都是完全开源的,但是那些让它变得更好的流行应用程序却不是。 这不太可能改变。