Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

經常問的問題

該頁面提供了一些常見問題解答(FAQ)。

開源的

什麼是Android開源項目?

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

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

為什麼我們打開Android源代碼?

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

Android是什麼樣的開源項目?

Google負責監督核心Android開源平台的開發,並致力於創建強大的開發人員和用戶社區。在大多數情況下,Android源代碼是根據寬鬆的Apache許可證2.0而不是copyleft許可證進行許可的。我們選擇Apache 2.0許可證是因為我們相信它會鼓勵廣泛採用Android軟件。有關詳細信息,請參閱許可證

為什麼Google負責Android?

啟動軟件平台非常複雜。開放性對於平台的長期成功至關重要,因為開放性會吸引開發人員的投資並確保公平的競爭環境。該平台對於用戶來說也必須是一個引人注目的產品。

Google承諾提供必要的專業工程資源,以確保Android是一個完全具有競爭力的軟件平台。 Google將Android項目視為全面的產品開發業務,並達成了必要的業務交易,以確保運行Android的出色設備能夠將其推向市場。

通過確保Android在用戶中獲得成功,我們可以確保Android作為平台和開源項目的生命力。畢竟,誰想要不成功的產品的源代碼?

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

Google進行Android產品開發的總體策略是什麼?

我們將強大的設備發佈到競爭激烈的市場中。然後,我們將創新和增強功能整合到核心平台中,作為下一個版本。

實際上,這意味著Android工程團隊將重點放在少數“旗艦”設備上,並開發下一版Android軟件來支持這些產品的發布。這些旗艦設備承擔了很多產品風險,並為廣大OEM社區開闢了道路,他們隨之推出了更多利用這些新功能的設備。通過這種方式,我們確保Android平台根據實際設備的需求而發展。

Android軟件如何開發?

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

同時,有一個當前的實驗分支,在該分支上開發了諸如大型下一代功能之類的推測性貢獻。錯誤修復和其他貢獻可酌情包含在來自實驗分支的當前穩定分支中。

最後,Google會與Android平台一起開發下一代旗艦設備。該分支會根據需要從實驗分支和穩定分支中引入更改。

有關詳細信息,請參見代碼行,分支和版本

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

將設備推向市場通常需要一年以上的時間。而且,當然,設備製造商希望提供他們可以下載的最新軟件。同時,開發人員不想在編寫應用程序時不斷跟踪平台的新版本。兩組都經歷了運輸產品之間的緊張關係,不想落後。

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

什麼時候發布源代碼?

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

在某些版本中,核心平台API已經提前準備好了很多,因此我們可以在設備發布之前將源代碼推出以供早期查看。在其他版本中,這是不可能的。在所有情況下,當我們認為版本穩定並且在開發過程允許時,我們都會發布平台源代碼。

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

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

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

在批量生產的同時,Google團隊開始了數項準備開源版本的工作。這些工作包括進行最終的API更改,更新文檔(以反映例如在資格測試期間所做的任何修改),為新版本準備SDK以及啟動平台兼容性信息。

我們的法律團隊會進行最終簽署,以將代碼發佈到開源中。正如要求開源貢獻者簽署《貢獻者許可協議》以證明其貢獻的知識產權一樣,Google也必須核實已清除該來源以進行貢獻。

從大規模生產開始,軟件發布過程通常需要一個月左右的時間,因此源代碼發布通常在設備到達用戶的大約同一時間進行。

AOSP與Android兼容計劃有何關係?

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

Android兼容性計劃的功能是定義與開發人員編寫的第三方應用程序兼容的Android的基線實現。與Android兼容的設備可能會加入Android生態系統,包括Google Play;不符合兼容性要求的設備存在於該生態系統之外。

換句話說,我們通過Android兼容性計劃將與Android兼容的設備與僅運行源代碼派生的設備分開。我們歡迎所有使用Android源代碼的情況,但是要參與Android生態系統,必須將該程序標識為與Android兼容的設備。

我如何為Android貢獻力量?

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

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

我們鼓勵有興趣提供源代碼的人員在開始任何工作之前,先通過Android社區頁面上列出的渠道與我們聯繫。有關詳細信息,請參見貢獻

如何成為Android提交者?

Android開源項目實際上並沒有提交者的概念。所有文稿(包括Google員工撰寫的文稿)都通過基於網絡的系統Gerrit進行,該系統是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移動服務許可中包含的聯繫表,以尋求對Google Play的訪問權。如果我們可以幫助您,我們會與您聯繫。

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

Google Play僅授權給運送設備的手機製造商使用。有關特定情況的問題,請聯繫android-partnerships@google.com

如何獲得對Android等Google應用程序(如地圖)的訪問權限?

適用於Android的Google應用(例如YouTube,Google Maps和Gmail)是不屬於Android的Google屬性,並且需要單獨許可。請與android-partnerships@google.com聯繫, 獲取與這些應用相關的查詢。

兼容性是強制性的嗎?

否。Android兼容性計劃是可選的。 Android源代碼是開放的,因此任何人都可以使用它來構建任何類型的設備。但是,如果製造商希望在其產品中使用Android名稱,或想要訪問Google Play,則必須首先證明其設備兼容

兼容性認證要多少錢?

獲得設備的Android兼容性是免費的。兼容性測試套件是開源的,任何人都可以使用它進行設備測試。

兼容性需要多長時間?

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

誰來確定兼容性定義?

Google負責將Android作為平台和產品的總體方向,因此Google會維護每個版本的兼容性定義文檔(CDD)。我們與提供輸入意見的各個OEM協商,為新的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的目的是什麼?

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

CTS測試什麼類型的東西?

CTS當前測試所有受支持的Android強類型API是否存在並且行為正確。它還測試其他非API系統行為,例如應用程序生命週期和性能。我們計劃在將來的CTS版本中添加支持,以測試 API(例如Intent)。

CTS報告會公開嗎?

是。儘管目前尚未實現,但Google打算為OEM提供基於Web的自助服務工具,以發布CTS報告,以便任何人都可以查看它們。製造商可以與自己喜歡的受眾共享CTS報告。

CTS如何獲得許可?

CTS的許可與大多數Android使用的相同的Apache Software License 2.0。

CTS是否接受捐款?

是的,請!與其他任何組件一樣,Android開源項目也接受改善CTS的貢獻。實際上,提高CTS測試用例的覆蓋範圍和質量是幫助Android的最佳方法之一。

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

兼容性定義文檔要求兼容的設備實現adb調試實用程序。這意味著任何兼容的設備(包括零售設備)都必須能夠運行CTS測試。

CTS是否已驗證編解碼器?

是。所有強制性編解碼器均已通過CTS驗證。

回到頂部