分支和发布

来源:互联网 发布:守望先锋好玩吗 知乎 编辑:程序博客网 时间:2024/05/17 07:42

Android 代码行

Android 开源项目维护一个完成的软件堆义务,被OEM移植和其它设备实施者(译者注:原词:implementors)运行在实际硬件。据此,我们维护一个编号"代码行"来明确的分开当前  Android 稳定版本从不稳定实验工作。

下面的图表描绘在一个 AOSP 管理代码和发布的概念等级。我们是指这些简单的作为"代码行"替代"分支",因为在任何特定时刻,这些可能是多于一个分支现存一个特定"代码行"。具体例子当一个发布是缩减的,一些时候将变成一个新分支在 git,有些时候不是,基于需要的时刻。

code-line diagram

注意和解释

  • 一个发布对应一个 Android 平台的正式版本,例如 1.5,2.1,等等。通常来说,一个平台的发布对应一个 SdkVersion 域用在 AndroidManifest.xml 文件,并且定义在源文件树的frameworks/base/api

  • 一个上游工程是一个开源工程,从 Android 栈拉代码。这些包括明显的工程,例如 Linux 内核和 WebKit,但是随着时间的推移,我们迁移一些半自治 Android 工程(例如 Dalvik,Android SDK 工具,Bionic,等等)工作作为"上游"工程。通常,这些工程是在公共树开发完全。一些上游工程,发展是直接对上游工程自己做贡献。看上游工程细节。在这两种情况下,快照将被定期拉到发布。

  • 图表参考 "Eclair" 和 "FroYo";然而,它们是简单的占位符,并且图表其实反映整体发布和分支战略。

  • 在所有的时间,一个发布代码行(可能其实包括多于 git 中的一个分支)被考虑称为一个特定 Android 平台版本唯一典范源代码。OEM 和其它群体构建设备将拉仅仅从一个发布分支。

  • 我们将设置"实验"代码行捕获改变从社区,所以它们能被迭代,并且对于稳定性的眼光。

  • 证明稳定的改变将终于被拉到一个发布分支。注意浙江仅仅应用到 bug 修复,应用改善,和其它不影响平台 API 的东西。

  • 必要的话,改变将被拉到发布分支从上游工程(包括 Android "上游"工程projects)。

  • 第 "n+1" 版(下一个框架和平台 API 的主要版本)将被开发由 Google 内部。看下面的细节。

  • 必要的话,改变将从上游被拉,发布,和实验分支到 Google 的私有分支。

  • 当下一个版本的平台 API 有稳定和充分测试,Google 将剪去下一个平台版本的发布。(这是特别的,参考一个新 SdkVersion。)这将也对应一个公共发布分支制作的内部代码行,和新的当前平台代码行。

  • 当一个新平台版本被剪去,一个对应实验代码行将被创建在相同时间。

关于私有代码行

以上的源管理战略包括一个 Google 将保持私有的代码行。原因是集中注意在当前 Android 的公共版本。

OEM 和其它设备构建自然想设备搭载最新版本的 Android。同样,应用开发者不想处理更多的现存严格必要的平台版本。与此同时,Google 保留 Android 战略方向的责任作为一个平台和一个产品。我们的途径是基于聚焦在一个小号码的旗舰设备主导特征,和 Android 有关的知非识产权保护的安全保护。

作为一个结果,Google 频繁藏有第三方的机密信息,并且我们必须避免从揭示敏感特征单元,我们已经抵押适当的保护。与此同时,这些是真的风险,这平台产生从有太多平台版本现存在当下。这些原因,我们有构造这个开源计划--包括第三方贡献--聚焦在目前公共稳定版本的 Android。"深度发展"在这平台的下一个版本将发生在私人,直到它已经变成官方发布。

我们承认许多贡献将不同意这个途径。我们尊重其他可能有一个不同看法;然而,这个途径我们感觉是最好的,并且这一个我们已经选择实施。


原创粉丝点击