在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 代碼主線、分支和版本
下載源碼
根據(jù)設(shè)備構(gòu)建
Git 資源
構(gòu)建系統(tǒng)
Android 平臺 64 位構(gòu)建指導(dǎo)
初始化編譯環(huán)境
Android 源代碼
品牌指南
已知的問題
Repo 命令手冊
構(gòu)建內(nèi)核
Bug 的生命周期
代碼主線、分支和版本
使用 Eclipse
提交補(bǔ)丁
下載與構(gòu)建
參與
項(xiàng)目角色
補(bǔ)丁的生命周期
提交 Bugs
關(guān)于代碼風(fēng)格的指導(dǎo)
開發(fā)
代碼名稱,標(biāo)簽和版本號

代碼主線、分支和版本

Android 開源項(xiàng)目(AOSP)主張?jiān)荚O(shè)備制造商(OEMs)和其他設(shè)備實(shí)施者將一個完整的軟件堆棧植入并運(yùn)行在他們自己的硬件上。為了保持 Android 的質(zhì)量,谷歌貢獻(xiàn)出了專職的工程師、產(chǎn)品經(jīng)理、用戶界面設(shè)計(jì)師、質(zhì)量保證測試人員和所有其他把現(xiàn)代化設(shè)備帶向市場的必要相關(guān)人員。

因此,我們保留了若干“代碼主線”,從不穩(wěn)定的試驗(yàn)性工作中清晰地區(qū)分出 Android 當(dāng)前穩(wěn)定的版本。我們將開源的管理和維護(hù)迭代進(jìn)更大的產(chǎn)品開發(fā)周期中。

下面的圖表描述了在概念層面上 AOSP 是如何管理代碼和版本。我們將提及的這些作為“代碼主線”而不是“支線”,僅僅是因?yàn)樵谌魏翁囟ǖ臅r刻,一個特定的“代碼主線”里都有可能存在不止一條支線。例如,當(dāng)一個發(fā)布被中斷,它會基于當(dāng)時的需求去決定它能不能成為一條新的分支。

  1. 在任何特定的時刻,都有一個 Android 平臺的當(dāng)前最新版本。這通常表現(xiàn)為樹的一個分支形式。

  2. 設(shè)備制造商和參與者使用當(dāng)前最新版本進(jìn)行工作,修復(fù)漏洞,推出新設(shè)備,試驗(yàn)新功能等等。

  3. 與此同時,谷歌根據(jù)產(chǎn)品的需要和目標(biāo),內(nèi)部實(shí)現(xiàn) Android 平臺和框架的下一個正式版本。我們通過在旗艦設(shè)備上與設(shè)備合作伙伴合作,開發(fā)出 Android 的下一個正式版本。這些設(shè)備合作伙伴的性能規(guī)范被選中,用來推動 Android 朝著我們希望的方向前進(jìn)。

  4. 當(dāng)“N+1”個版本已經(jīng)準(zhǔn)備就緒,它將被發(fā)布到公共源代碼樹,并成為新的最新版本。

http://wiki.jikexueyuan.com/project/android-source/images/codelines-branches-releases1.png" alt="" />

條款及注意事項(xiàng)

  • 一個發(fā)布版本對應(yīng)于一個 Android 平臺的正式版本,例如 1.5,2.1 等等。一般來說,一個平臺的發(fā)布版本對應(yīng)一個正式版本。這個正式版本在 AndroidManifest.xml 文件的 SdkVersion 域里面且它是在 frameworks/base/api 源代碼樹下定義的。

  • 一個上游項(xiàng)目是一個開源項(xiàng)目,Android 堆棧就是從這個開源項(xiàng)目上獲取代碼的。這些包括一些著名的項(xiàng)目,如 Linux 內(nèi)核和 WebKit。隨著時間的推移,我們正在遷移的一些半自主性的 Android 項(xiàng)目(例如 Android 運(yùn)行環(huán)境 “ART”, Android SDK 工具,Bionic 等等) 作為“上游”項(xiàng)目進(jìn)行開發(fā)。通常情況下會在公共樹里面完全開發(fā)這些項(xiàng)目。對于一些上游項(xiàng)目,開發(fā)是通過直接地構(gòu)建上游項(xiàng)目本身完成的??梢詤⒖?a rel="nofollow" title="上游項(xiàng)目">上游項(xiàng)目獲取更多資訊。在這兩種情況下,快照將定期被拉入版本。

  • 在任何時候,對于特定的 Android 平臺,代碼主線版本(實(shí)際上在 git 里面可能包含了不止一個實(shí)際的分支)被認(rèn)為是唯一規(guī)范的源代碼。原始設(shè)備制造商和其他設(shè)備制造商應(yīng)該只從發(fā)布版本分支獲取源代碼。

  • “實(shí)驗(yàn)性”代碼線路的建立用以獲取社區(qū)的變化,這樣他們可以在迭代上著眼于穩(wěn)定性。

  • 證明了穩(wěn)定的變化將最終被拖入發(fā)布分支。注意,這只適用于漏洞修復(fù)的、應(yīng)用程序改進(jìn)的和其它不影響平臺 API 的變化。

  • 當(dāng)有必要時,變化將被從上游項(xiàng)目(包括 Android “上游”項(xiàng)目)拖入發(fā)布分支。

  • 谷歌內(nèi)部將開發(fā)“N+1”個版本(即框架和平臺 API 的下一個主要版本)。可以參看關(guān)于私有的代碼主線獲取更多資訊。

  • 當(dāng)有必要時,從上游、發(fā)布版本與實(shí)驗(yàn)分支拉出的變化將會放到谷歌的私有分支。

  • 當(dāng)下一個正式版本的平臺 API 已經(jīng)穩(wěn)定,并經(jīng)過全面測試,谷歌將中斷下一個平臺正式版本的發(fā)布版本。(這特別是指一種新 SdkVersion。)這也將對應(yīng)被制成一個公共發(fā)布分支的內(nèi)部代碼行和新的當(dāng)前平臺代碼主線。

  • 當(dāng)一個新的平臺版本被中止,一個相應(yīng)的實(shí)驗(yàn)代碼行會在同一時間被創(chuàng)建。

關(guān)于私有代碼線

上述提及的源管理策略包括一個谷歌將繼續(xù)保密的代碼主線。這樣做的原因是要把注意力集中在目前 Android 公共版本。

原始設(shè)備制造商和其他設(shè)備制造商自然希望制造出與 Android 最新版本相關(guān)的產(chǎn)品。同樣,應(yīng)用程序開發(fā)者如非必要不希望處理更多的平臺版本。與此同時,谷歌保留對作為一個平臺和一個產(chǎn)品的 Android 戰(zhàn)略方向的責(zé)任。我們的方法著重于在少量的旗艦設(shè)備上運(yùn)行功能,確保與 Android 相關(guān)的知識產(chǎn)權(quán)受到保護(hù)。

結(jié)果是,谷歌經(jīng)常擁有來自第三方的機(jī)密信息。我們必須避免泄露敏感的功能,直到我們確保擁有適當(dāng)?shù)谋Wo(hù)措施。另外,一次存在太多平臺版本也會對平臺引起真實(shí)的風(fēng)險?;谶@些原因,我們已經(jīng)構(gòu)建了開源項(xiàng)目 - 包括第三方的貢獻(xiàn) - 以專注于 Android 的目前公開的穩(wěn)定版本。下一平臺版本的深度開發(fā)不會公開進(jìn)行,直到它已經(jīng)準(zhǔn)備好成為一個發(fā)布版本。

我們意識到許多貢獻(xiàn)者不同意這種方法。我們尊重其他人可能有不同的觀點(diǎn),然而,我們覺得這種方法是最好的,我們也選擇這個方法來實(shí)現(xiàn)。