Dieses Dokument enthält Antworten auf allgemeine Fragen zur Android Open Source Platform (AOSP).
Open-Source-Fragen
Warum hat Google den Android-Quellcode geöffnet?
Google hat das AOSP als Reaktion auf unsere eigenen Erfahrungen bei der Einführung mobiler Apps ins Leben gerufen. Wir wollten sicherstellen, dass Netzbetreibern, OEMs und Entwicklern immer eine offene Plattform zur Verfügung steht, auf der sie ihre innovativen Ideen verwirklichen können. Außerdem wollten wir zentrale Fehlerquellen vermeiden, damit kein einzelner Branchenakteur die Innovationen eines anderen einschränken oder kontrollieren kann. Unser wichtigstes Ziel mit der AOSP ist es, sicherzustellen, dass Open-Source-Android-Software zum Nutzen aller so umfassend und kompatibel wie möglich implementiert wird.
Was für ein Open-Source-Projekt ist Android?
Google überwacht die Entwicklung des Kern-AOSP und arbeitet daran, robuste Entwickler- und Nutzergemeinschaften zu schaffen. Der Android-Quellcode ist größtenteils unter der freizügigen Apache-Lizenz 2.0 und nicht unter einer Copyleft- Lizenz lizenziert. Wir haben uns für die Apache 2.0-Lizenz entschieden, weil wir glauben, dass sie die weit verbreitete Einführung von Android-Software fördert. Einzelheiten finden Sie unter Lizenzen .
Warum ist Google für Android zuständig?
Die Einführung einer Softwareplattform ist komplex. Offenheit ist für den langfristigen Erfolg einer Plattform von entscheidender Bedeutung, da Offenheit Investitionen von Entwicklern anzieht und gleiche Wettbewerbsbedingungen gewährleistet. Die Plattform muss auch ein überzeugendes Produkt für Benutzer sein.
Google hat die erforderlichen professionellen technischen Ressourcen bereitgestellt, um sicherzustellen, dass Android eine vollständig wettbewerbsfähige Softwareplattform ist. Google betrachtet das Android-Projekt als umfassende Produktentwicklungsmaßnahme und schließt die notwendigen Geschäftsabschlüsse ab, um sicherzustellen, dass großartige Geräte mit Android auf den Markt kommen.
Indem wir sicherstellen, dass Android bei den Benutzern erfolgreich ist, tragen wir dazu bei, die Vitalität von Android als Plattform und als Open-Source-Projekt sicherzustellen. Denn wer möchte schon den Quellcode eines erfolglosen Produkts haben?
Unser Ziel ist es, ein erfolgreiches Ökosystem rund um Android sicherzustellen. Wir haben den Android-Quellcode geöffnet, damit jeder die Software an seine eigenen Bedürfnisse anpassen und verteilen kann.
Was ist Googles Gesamtstrategie für die Android-Produktentwicklung?
Wir bringen großartige Geräte auf einen wettbewerbsintensiven Markt. Die von uns vorgenommenen Neuerungen und Erweiterungen übernehmen wir dann als nächste Version in die Kernplattform.
In der Praxis bedeutet dies, dass sich das Android-Entwicklungsteam auf eine kleine Anzahl von „Flaggschiff“-Geräten konzentriert und die nächste Version der Android-Software entwickelt, um diese Produkteinführungen zu unterstützen. Diese Flaggschiff-Geräte absorbieren einen Großteil des Produktrisikos und ebnen den Weg für die breite OEM-Community, die weitere Geräte auf den Markt bringt, die die neuen Funktionen nutzen. Auf diese Weise stellen wir sicher, dass sich die Android-Plattform entsprechend den Anforderungen realer Geräte weiterentwickelt.
Wie wird Android-Software entwickelt?
Jede Plattformversion von Android (z. B. 1.5 oder 8.1) verfügt über einen entsprechenden Zweig im Open-Source-Baum. Der neueste Zweig gilt als die aktuelle stabile Zweigversion . Dies ist der Zweig, den Hersteller auf ihre Geräte portieren. Dieser Zweig wird jederzeit zur Veröffentlichung freigegeben gehalten.
Gleichzeitig gibt es einen aktuellen experimentellen Zweig , in dem spekulative Beiträge, wie zum Beispiel große Features der nächsten Generation, entwickelt werden. Fehlerbehebungen und andere Beiträge können je nach Bedarf in den aktuellen stabilen Zweig des experimentellen Zweigs eingefügt werden.
Schließlich arbeitet Google an der nächsten Version der Android-Plattform und entwickelt gleichzeitig ein Flaggschiff-Gerät. Dieser Zweig übernimmt je nach Bedarf Änderungen aus den experimentellen und stabilen Zweigen.
Einzelheiten zu Codelines, Branches und Releases finden Sie unter Android-Softwareverwaltung .
Warum werden Teile von Android privat entwickelt?
Normalerweise dauert es mehr als ein Jahr, bis ein Gerät auf den Markt kommt. Und natürlich möchten Gerätehersteller die neueste Software liefern, die sie können. Unterdessen möchten Entwickler beim Schreiben von Apps nicht ständig neue Versionen der Plattform im Auge behalten. Beide Gruppen erleben ein Spannungsverhältnis zwischen dem Versand von Produkten und dem Wunsch, nicht ins Hintertreffen zu geraten.
Um dieses Problem zu beheben, werden einige Teile der nächsten Android-Version, einschließlich der Kernplattform-APIs, in einer privaten Zweigstelle entwickelt. Diese APIs bilden die nächste Version von Android. Unser Ziel ist es, die Aufmerksamkeit auf die aktuelle stabile Version des Android-Quellcodes zu lenken, während wir die nächste Version der Plattform erstellen. Dies ermöglicht es Entwicklern und OEMs, eine einzige Version zu verwenden, ohne unvollendete zukünftige Arbeiten nachverfolgen zu müssen, nur um auf dem Laufenden zu bleiben. Andere Teile des Android-Systems, die nichts mit der App-Kompatibilität zu tun haben, werden offen entwickelt. Wir beabsichtigen, im Laufe der Zeit weitere dieser Teile in die offene Entwicklung zu verlagern.
Wann werden Quellcode-Veröffentlichungen vorgenommen?
Wenn sie fertig sind. Die Veröffentlichung des Quellcodes ist ein ziemlich komplexer Prozess. Einige Teile von Android werden offen entwickelt und der Quellcode ist immer verfügbar. Andere Teile werden zunächst in einem privaten Baum entwickelt und dieser Quellcode wird veröffentlicht, wenn die nächste Plattformversion fertig ist.
In einigen Versionen sind die Kernplattform-APIs weit genug im Voraus fertig, sodass wir den Quellcode für einen frühen Blick vor der Veröffentlichung des Geräts veröffentlichen können. In anderen Versionen ist dies nicht möglich. In allen Fällen geben wir die Plattformquelle frei, wenn wir der Meinung sind, dass die Version stabil ist und der Entwicklungsprozess dies zulässt.
Was ist mit der Veröffentlichung des Quellcodes für eine neue Android-Version verbunden?
Die Veröffentlichung des Quellcodes für eine neue Version der Android-Plattform ist ein bedeutender Prozess. Zunächst wird die Software in ein Systemabbild für ein Gerät integriert und verschiedenen Formen der Zertifizierung unterzogen, einschließlich der behördlichen Zertifizierung für die Regionen, in denen die Telefone eingesetzt werden. Der Code durchläuft außerdem Bedienertests. Dies ist eine wichtige Phase des Prozesses, da sie dabei hilft, Softwarefehler zu erkennen.
Wenn die Veröffentlichung von den Regulierungsbehörden und Betreibern genehmigt wird, beginnt der Hersteller mit der Massenproduktion von Geräten und wir beginnen mit der Veröffentlichung des Quellcodes.
Parallel zur Massenproduktion startet das Google-Team mehrere Anstrengungen zur Vorbereitung der Open-Source-Veröffentlichung. Zu diesen Bemühungen gehören die Durchführung endgültiger API-Änderungen, die Aktualisierung der Dokumentation (um beispielsweise alle Änderungen widerzuspiegeln, die während der Qualifikationstests vorgenommen wurden), die Vorbereitung eines SDK für die neue Version und die Veröffentlichung der Informationen zur Plattformkompatibilität.
Unser Rechtsteam nimmt eine abschließende Freigabe vor, um den Code als Open Source freizugeben. Ebenso wie Open-Source-Mitwirkende verpflichtet sind, eine Lizenzvereinbarung für Mitwirkende zu unterzeichnen, die ihr geistiges Eigentum an ihrem Beitrag bescheinigt, muss Google überprüfen, ob die Quelle für die Bereitstellung von Beiträgen freigegeben ist.
Ab Beginn der Massenproduktion dauert der Software-Release-Prozess in der Regel etwa einen Monat, sodass Quellcode-Releases oft etwa zur gleichen Zeit erfolgen, zu der die Geräte die Benutzer erreichen.
In welcher Beziehung steht das AOSP zum Android-Kompatibilitätsprogramm?
Das AOSP pflegt Android-Software und entwickelt neue Versionen. Da es sich um Open Source handelt, kann diese Software für jeden Zweck verwendet werden, einschließlich der Entwicklung von Geräten, die nicht mit anderen Geräten kompatibel sind, die auf derselben Quelle basieren.
Die Funktion des Android-Kompatibilitätsprogramms besteht darin, eine Basisimplementierung von Android zu definieren, die mit von Entwicklern geschriebenen Drittanbieter-Apps kompatibel ist. Android-kompatible Geräte sind zur Teilnahme am Android-Ökosystem berechtigt, einschließlich Google Play. Geräte, die die Kompatibilitätsanforderungen nicht erfüllen, gibt es außerhalb dieses Ökosystems.
Mit anderen Worten: Mit dem Android-Kompatibilitätsprogramm trennen wir Android-kompatible Geräte von Geräten, auf denen lediglich Ableitungen des Quellcodes ausgeführt werden. Wir begrüßen jede Verwendung des Android-Quellcodes, aber um am Android-Ökosystem teilnehmen zu können, muss ein Gerät vom Programm als Android-kompatibel identifiziert werden.
Wie kann ich zu Android beitragen?
Sie können Fehler melden, Apps für Android schreiben oder Quellcode zum AOSP beitragen.
Es gibt Grenzen für die Arten von Codebeiträgen, die wir akzeptieren. Beispielsweise möchte jemand möglicherweise eine alternative App-API beisteuern, beispielsweise eine vollständig C++-basierte Umgebung. Wir würden diesen Beitrag ablehnen, da Android die Ausführung von Apps in der ART-Laufzeitumgebung fördert. Ebenso akzeptieren wir keine Beiträge wie GPL- oder LGPL-Bibliotheken, die mit unseren Lizenzzielen nicht kompatibel sind.
Wir empfehlen denjenigen, die Quellcode beisteuern möchten, sich vor Beginn der Arbeiten über die in der Android-Community aufgeführten Kanäle mit uns in Verbindung zu setzen. Einzelheiten finden Sie unter Mitwirken .
Wie werde ich Android-Committer?
Die AOSP hat keine wirkliche Vorstellung von einem Committer. Alle Beiträge (einschließlich der von Google-Mitarbeitern verfassten) durchlaufen ein webbasiertes System namens Gerrit, das Teil des Android-Engineering-Prozesses ist. Dieses System arbeitet mit dem Git-Quellcodeverwaltungssystem zusammen, um Quellcodebeiträge sauber zu verwalten.
Ein benannter Genehmiger muss alle übermittelten Änderungen akzeptieren. Genehmiger sind in der Regel Google-Mitarbeiter, aber dieselben Genehmiger sind für alle Einreichungen verantwortlich, unabhängig von der Herkunft.
Einzelheiten finden Sie unter Einreichen von Patches .