經常問的問題

此頁面提供了一些常見問題 (FAQ) 的答案。

開源

什麼是 Android 開源項目?

Android 開源項目 (AOSP) 是指構成 Android 的人員、流程和源代碼。

人們監督項目並開發源代碼。流程是我們用來管理軟件開發的工具和程序。最終結果是源代碼,您可以在手機和其他設備中使用它。

我們為什麼要開放Android源代碼?

谷歌啟動 Android 項目是為了響應我們自己推出移動應用程序的經驗。我們希望確保始終有一個開放平台可供運營商、原始設備製造商和開發人員使用,以將他們的創新想法變為現實。我們還希望避免任何中心故障點,因此沒有一個行業參與者可以限製或控制任何其他行業的創新。我們對 AOSP 的一個最重要的目標是確保開源 Android 軟件盡可能廣泛和兼容地實施,以造福所有人。

Android是一個什麼樣的開源項目?

Google 負責監督核心 Android 開源平台的開發,並致力於創建強大的開發者和用戶社區。在大多數情況下,在Android源代碼的允許Apache許可2.0下許可的,而不是一個公共版權許可。我們選擇 Apache 2.0 許可證是因為我們相信它鼓勵廣泛採用 Android 軟件。有關詳細信息,請參見許可證

為什麼谷歌負責安卓?

啟動軟件平台很複雜。開放性對於平台的長期成功至關重要,因為開放性會吸引開發者的投資並確保公平的競爭環境。該平台還必須是對用戶有吸引力的產品。

Google 已投入必要的專業工程資源,以確保 Android 成為具有充分競爭力的軟件平台。 Google 將 Android 項目視為一項全面的產品開發運營,並達成必要的商業交易,以確保運行 Android 的優秀設備能夠推向市場。

通過確保 Android 在用戶中取得成功,我們有助於確保 Android 作為平台和開源項目的活力。畢竟,誰想要一個不成功的產品的源代碼?

Google 的目標是確保圍繞 Android 建立一個成功的生態系統。我們開放了 Android 源代碼,以便任何人都可以修改和分發軟件以滿足自己的需求。

Google 對 Android 產品開發的總體戰略是什麼?

我們將出色的設備投放到競爭激烈的市場中。然後,我們將我們所做的創新和改進合併到核心平台作為下一個版本。

實際上,這意味著 Android 工程團隊專注於少數“旗艦”設備,並開發下一個版本的 Android 軟件以支持這些產品的發布。這些旗艦設備吸收了大部分產品風險,並為廣大 OEM 社區開闢了道路,他們會跟進更多利用新功能的設備。通過這種方式,我們確保 Android 平台根據實際設備的需求不斷發展。

Android 軟件是如何開發的?

Android 的每個平台版本(如 1.5 或 8.1)在開源樹中都有對應的分支。最近分支被認為是當前穩定分支版本。這是製造商移植到他們設備的分支。該分支始終適合發布。

同時,有一個目前的實驗分支,這是在投機性的貢獻,如大型下一代功能,開發。錯誤修復和其他貢獻可以適當地包含在實驗分支的當前穩定分支中。

最後,谷歌在開發旗艦設備的同時致力於下一版本的 Android 平台。這個分支會適當地從實驗和穩定分支中引入變化。

有關代碼行,分行,並發布詳細信息,請參見AOSP代碼管理

為什麼 Android 的某些部分是私有開發的?

將設備推向市場通常需要一年多的時間。而且,當然,設備製造商希望盡可能提供最新的軟件。同時,開發人員在編寫應用程序時不希望不斷跟踪平台的新版本。兩組都在運輸產品和不想落後之間感到緊張。

為了解決這個問題,下一版 Android 的某些部分,包括核心平台 API,是在一個私有分支中開發的。這些 API 構成了 Android 的下一個版本。我們的目標是在創建平台的下一個版本時,將注意力集中在 Android 源代碼的當前穩定版本上。這允許開發人員和 OEM 使用單一版本而無需跟踪未完成的未來工作,只是為了跟上。 Android 系統中與應用程序兼容性無關的其他部分是公開開發的。隨著時間的推移,我們打算將更多這些部分轉移到開放式開發中。

什麼時候發布源代碼?

當他們準備好時。發布源代碼是一個相當複雜的過程。 Android 的某些部分是公開開發的,並且源代碼始終可用。其他部分首先在私有樹中開發,並在下一個平台版本準備就緒時發布源代碼。

在某些版本中,核心平台 API 已提前足夠多的時間準備就緒,因此我們可以在設備發布之前將源代碼推出以進行早期查看。在其他版本中,這是不可能的。在任何情況下,我們都會在我們認為版本穩定、開發過程允許的情況下發布平台源代碼。

發布新 Android 版本的源代碼涉及什麼?

發布新版 Android 平台的源代碼是一個重要的過程。首先,該軟件內置於設備的系統映像中,並通過各種形式的認證,包括針對手機將部署地區的政府監管認證。該代碼還經過操作員測試。這是該過程的一個重要階段,因為它有助於檢測軟件錯誤。

當監管機構和運營商批准發布後,製造商開始批量生產設備,我們開始發布源代碼。

在大規模生產的同時,谷歌團隊開始了幾項準備開源版本的工作。這些工作包括對 API 進行最終更改、更新文檔(例如,以反映在資格測試期間所做的任何修改)、為新版本準備 SDK 以及發布平台兼容性信息。

我們的法律團隊會進行最終簽核,以將代碼發佈為開源。正如開源貢獻者需要簽署貢獻者許可協議以證明其貢獻的知識產權所有權一樣,Google 也必須驗證該來源是否已獲准進行貢獻。

從批量生產開始,軟件發布過程通常需要大約一個月的時間,因此源代碼發布通常與設備到達用戶的時間大致相同。

AOSP 與 Android 兼容性計劃有何關聯?

Android 開源項目維護 Android 軟件並開發新版本。由於它是開源的,因此該軟件可用於任何目的,包括開發與基於相同源的其他設備不兼容的設備。

Android 兼容性計劃的功能是定義一個與開發者編寫的第三方應用程序兼容的 Android 基線實現。設備是兼容Android有資格參加在Android生態系統,包括谷歌播放;不滿足兼容性要求的設備存在於該生態系統之外。

換句話說,Android 兼容性計劃是我們將 Android 兼容設備與僅運行源代碼衍生產品的設備分開的方式。我們歡迎對 Android 源代碼的所有使用,但要參與 Android 生態系統,設備必須被程序識別為與 Android 兼容。

我如何為 Android 做出貢獻?

您可以報告錯誤、為 Android 編寫應用程序或向 Android 開源項目貢獻源代碼。

我們接受的代碼貢獻類型是有限的。例如,有人可能想要提供替代應用程序 API,例如完整的基於 C++ 的環境。我們會拒絕這種貢獻,因為 Android 鼓勵應用程序在 ART 運行時中運行。同樣,我們不會接受與我們的許可目標不兼容的貢獻,例如 GPL 或 LGPL 庫。

我們鼓勵那些願意貢獻源代碼,通過上市的渠道與我們聯繫Android社區開始前任何工作頁面。有關詳細信息,請參閱貢獻

我如何成為一名 Android 提交者?

Android開源項目並沒有真正有一個提交的概念。所有貢獻(包括由 Google 員工撰寫的貢獻)都通過一個名為 Gerrit 的基於 Web 的系統,該系統是 Android 工程流程的一部分。該系統與 git 源代碼管理系統協同工作,以乾淨地管理源代碼貢獻。

提交時,更改需要由指定的批准人接受。審批人通常是 Google 員工,但同樣的審批人負責所有提交,無論來源如何。

有關詳細信息,請參閱提交補丁

回到頂部

兼容性

什麼是Android“兼容性”?

我們定義一個Android兼容設備為一體,可以運行使用Android SDK和NDK第三方開發人員編寫的任何應用程序。我們使用它作為過濾器來區分可以參與和不能參與 Android 應用生態系統的設備。對於正確兼容的設備,設備製造商可以尋求批准使用 Android 商標。不兼容的設備源自 Android 源代碼,不允許使用 Android 商標。

換句話說,兼容性是參與 Android 應用生態系統的先決條件。歡迎任何人使用Android源代碼。但是,如果設備不兼容,則不會將其視為 Android 生態系統的一部分。

Google Play 在兼容性方面的作用是什麼?

擁有 Android 兼容設備的設備製造商可以尋求獲得 Google Play 客戶端軟件的許可。獲得許可的設備成為 Android 應用生態系統的一部分,使用戶能夠從所有兼容設備共享的目錄中下載開發者的應用。許可不適用於不兼容的設備。

哪些類型的設備可以兼容 Android?

Android 軟件可以移植到許多不同的設備上,包括一些第三方應用程序無法正常運行的設備。所述的Android兼容性定義文件(CDD)闡述了被認為是兼容的具體設備配置。

例如,儘管 Android 源代碼可以移植到沒有攝像頭的手機上運行,但 CDD 要求所有手機都配備攝像頭。這允許開發人員在編寫應用程序時依賴一組一致的功能。

CDD 不斷發展以反映市場現實。例如,CDD 1.6 版僅支持手機。但是 2.1 版允許設備省略電話硬件,從而使平板式音樂播放器等非電話設備能夠兼容。在進行這些更改時,我們還將增強 Google Play,以允許開發人員保留對其應用程序可用位置的控制權。繼續電話示例,管理 SMS 文本消息的應用程序在媒體播放器上沒有用,因此 Google Play 允許開發人員將該應用程序僅限於電話設備。

如果我的設備兼容,它會自動訪問 Google Play 和品牌嗎?

不。訪問不是自動的。 Google Play 是一項由 Google 運營的服務。實現兼容性是訪問 Google Play 軟件和品牌的先決條件。當設備是合格的為Android兼容設備,設備製造商應完成包括在聯繫人形式授權谷歌移動服務,以尋求獲得谷歌播放。如果我們可以幫助您,我們會與您聯繫。

如果我不是製造商,我如何獲得 Google Play?

Google Play 僅授權給運送設備的手機製造商。有關具體情況,接觸問題android-partnerships@google.com

如何訪問適用於 Android 的 Google 應用,例如地圖?

適用於 Android 的 Google 應用程序(例如 YouTube、Google 地圖和 Gmail)是 Google 資產,它們不屬於 Android 的一部分並單獨獲得許可。聯繫android-partnerships@google.com針對與這些應用程序查詢。

兼容性是強制性的嗎?

不可以。Android 兼容計劃是可選的。 Android 源代碼是開放的,因此任何人都可以使用它來構建任何類型的設備。但是,如果製造商希望自己的產品使用Android名稱,或者希望獲得谷歌玩,他們必須首先證明其設備是否兼容

兼容性認證的費用是多少?

獲取設備的 Android 兼容性無需任何費用。兼容性測試套件是開源的,可供任何人進行設備測試。

兼容性需要多長時間?

該過程是自動化的。兼容性測試套件會生成一份報告,該報告可提供給 Google 以驗證兼容性。最終,我們打算提供自助服務工具將這些報告上傳到公共數據庫。

誰來確定兼容性定義?

Google 負責 Android 作為平台和產品的總體方向,因此 Google 維護每個版本的兼容性定義文檔 (CDD)。我們與提供意見的各種原始設備製造商協商,為新的 Android 版本起草 CDD。

新設備將支持每個 Android 版本多長時間?

Android 的代碼是開源的,因此我們無法阻止某人使用舊版本來啟動設備。相反,Google 選擇不許可 Google Play 客戶端軟件在被視為過時的版本上使用。這允許任何人繼續發布舊版本的 Android,但這些設備不會使用 Android 名稱並且存在於 Android 應用程序生態系統之外,就好像它們不兼容一樣。

設備可以有不同的用戶界面並且仍然兼容嗎?

Android 兼容性計劃確定設備是否可以運行第三方應用程序。設備附帶的用戶界面組件(例如主屏幕、撥號器和配色方案)通常對第三方應用程序沒有太大影響。因此,設備製造商可以自由定制用戶界面。兼容性定義文檔限制了允許 OEM 更改影響第三方應用程序區域的系統用戶界面的程度。

新 Android 版本的兼容性定義何時發布?

我們的目標是在相應的 Android 平台版本融合到足以允許它時發布新版本的 Android 兼容性定義文檔 (CDD)。雖然我們無法在第一台旗艦設備附帶該軟件之前發布 Android 軟件版本的 CDD 最終草案,但最終 CDD 總是在第一台設備之後發布。但是,只要可行,我們就會發布 CDD 的草稿版本。

如何驗證設備製造商的兼容性聲明?

Android 設備兼容性沒有驗證過程。但是,如果設備要包含 Google Play,Google 通常會在同意許可 Google Play 客戶端軟件之前驗證設備的兼容性。

如果聲稱兼容的設備後來發現存在兼容性問題,會發生什麼情況?

通常,Google 與 Google Play 被許可方的關係允許我們要求設備製造商發布更新的系統映像以解決問題。

回到頂部

兼容性測試套件

CTS 的目的是什麼?

兼容性測試套件是設備製造商用來幫助確保其設備兼容並報告測試結果以進行驗證的工具。 CTS 旨在在整個工程過程中由 OEM 頻繁運行,以及早發現兼容性問題。

CTS 測試哪些類型的東西?

CTS 目前測試所有受支持的 Android 強類型 API 都存在並且行為正確。它還測試其他非 API 系統行為,例如應用程序生命週期和性能。我們計劃在未來版本的CTS添加支持測試API,如意圖。

CTS 報告會公開嗎?

是的。雖然目前尚未實施,但 Google 打算為 OEM 提供基於 Web 的自助服務工具來發布 CTS 報告,以便任何人都可以查看它們。製造商可以與盡可能多的受眾共享 CTS 報告。

CTS 是如何獲得許可的?

CTS 是根據大多數 Android 使用的相同 Apache 軟件許可證 2.0 獲得許可的。

CTS 接受投稿嗎?

是的,請! Android 開源項目接受貢獻以改進 CTS,就像任何其他組件一樣。事實上,提高 CTS 測試用例的覆蓋率和質量是幫助 Android 的最佳方式之一。

任何人都可以在現有設備上使用 CTS 嗎?

在兼容性定義文件要求兼容設備實現adb調試工具。這意味著任何兼容設備(包括可在零售店購買的設備)都必須能夠運行 CTS 測試。

編解碼器是否經過 CTS 驗證?

是的。所有強制性編解碼器都經過 CTS 驗證。

回到頂部