Häufig gestellte Fragen zu AOSP

Dieses Dokument enthält Antworten auf allgemeine Fragen zur Android Open Source Platform (AOSP).

android-latest-release

Why can't I submit to aosp-main?

Sie können keine Beiträge in aosp-main einreichen, da dieser Branch jetzt schreibgeschützt ist.

Wo kann ich Änderungen am AOSP vorschlagen?

Sie sollten neue Änderungen an android-latest-release vorschlagen (bei Verwendung von Repo) oder an den im android-latest-release-Manifest angegebenen neuesten Release-Branch (bei direkter Verwendung von Git). Vorgeschlagene Änderungen in anderen Branchen (z. B. aosp-main) müssen nicht verschoben werden.

Mit welcher Branche sollte ich synchronisieren?

  • Wenn Sie Repo verwenden, können Sie mit dem folgenden Befehl mit android-latest-release synchronisieren:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • Wenn Sie Git direkt verwenden, synchronisieren Sie mit dem Standard-Revision-Branch, der im android-latest-release-Manifest angegeben ist.

Weitere Informationen zum Synchronisieren von Zweigen finden Sie unter Repo-Client initialisieren.

Wird der Code aus android-latest-release mit aosp-main zusammengeführt?

Nein, der Code wird nicht mit aosp-main zusammengeführt, da dieser Branch seit dem 27. März 2025 schreibgeschützt ist.

Wo wird der Code für die nächste Version gepusht?

Google sendet den Code für die nächste Version an den aktuellen Release-Zweig und aktualisiert das android-latest-release-Manifest, damit es auf diesen Zweig verweist.

Wird mein Änderungsantrag aus dem Branch „android-latest-release“ in den internen Gerrit-Branch übernommen?

Nachdem Sie eine vorgeschlagene Änderung hochgeladen haben, wird sie von Google geprüft und bei Annahme in den internen Gerrit-Branch übernommen.

Woher weiß ich, ob mein Änderungsantrag angenommen wurde?

Akzeptierte und ausgewählte Änderungen werden bei einem zukünftigen Push in einen Release-Branch auf dem Android-Host angezeigt und können mit dem Repository über android-latest-release synchronisiert werden. Es gibt keinen Benachrichtigungsmechanismus, wenn eine vorgeschlagene Änderung akzeptiert oder abgelehnt wird.

Wie sieht der allgemeine Workflow aus, wenn eine Änderung von einem externen Mitwirkenden vorgeschlagen und in den neuesten Release-Zweig zusammengeführt wird?

  1. Ein externer Mitwirkender schlägt eine Änderung an android-latest-release vor (bei Verwendung des Repo) oder am neuesten Release-Branch, der im android-latest-release-Manifest angegeben ist (bei direkter Verwendung von Git).

  2. Google prüft die Änderung. Wenn die Änderung:

    • Akzeptiert: Google wählt diese Änderung aus und führt sie in den internen Entwicklungszweig ein.

    • Die Änderung wird nicht akzeptiert. Google wählt die Änderungen nicht aus.

  3. Der externe Mitwirkende prüft seine Änderung in android-latest-release.

Was passiert, wenn ich meine vorgeschlagene Änderung nicht mehr benötige?

Wenn Sie die vorgeschlagene Änderung nicht mehr benötigen, nicht möchten, dass sie zusammengeführt wird, oder wissen, dass Google sie bereits überprüft hat, können Sie sie aufheben. Sie bleibt dann im Änderungsverlauf der vorgeschlagenen Änderungen auf dem Android-Host.

Open-Source-Fragen

Warum hat Google den Android-Quellcode freigegeben?

Google hat das AOSP aufgrund unserer eigenen Erfahrungen mit der Einführung mobiler Apps ins Leben gerufen. Wir wollten dafür sorgen, dass es immer eine offene Plattform für Mobilfunkanbieter, OEMs und Entwickler gibt, mit der sie ihre innovativen Ideen verwirklichen können. Außerdem wollten wir einen zentralen Ausfallpunkt vermeiden, damit kein einzelner Akteur der Branche die Innovationen anderer einschränken oder kontrollieren konnte. Unser wichtigstes Ziel mit dem AOSP ist es, dafür zu sorgen, dass Open-Source-Android-Software so weit wie möglich und möglichst kompatibel implementiert wird, zum Nutzen aller.

Um welche Art von Open-Source-Projekt handelt es sich bei Android?

Google überwacht die Entwicklung des AOSP-Kerns und arbeitet daran, robuste Entwickler- und Nutzergemeinschaften aufzubauen. Der Android-Quellcode ist größtenteils nicht unter einer Copyleft-Lizenz, sondern unter der permissiven Apache License 2.0 lizenziert. Wir haben uns für die Apache 2.0-Lizenz entschieden, da wir der Meinung sind, dass sie die breite Akzeptanz von Android-Software fördert. Weitere Informationen finden Sie unter Lizenzen.

Warum ist Google für Android verantwortlich?

Die Einführung einer Softwareplattform ist komplex. Offenheit ist entscheidend für den langfristigen Erfolg einer Plattform, da sie Investitionen von Entwicklern anzieht und für gleiche Wettbewerbsbedingungen sorgt. Die Plattform muss auch für Nutzer ein überzeugendes Produkt sein.

Google stellt die erforderlichen professionellen Entwicklungsressourcen bereit, damit Android eine voll wettbewerbsfähige Softwareplattform ist. Google behandelt das Android-Projekt als eine umfassende Produktentwicklung und schließt die geschäftlichen Vereinbarungen ab, die erforderlich sind, damit hervorragende Geräte mit Android auf den Markt kommen.

Wenn wir dafür sorgen, dass Android bei den Nutzern gut ankommt, tragen wir dazu bei, dass Android als Plattform und als Open-Source-Projekt vital bleibt. Wer möchte schon den Quellcode eines erfolglosen Produkts?

Unser Ziel ist es, ein erfolgreiches Android-Ökosystem zu schaffen. Wir haben den Android-Quellcode freigegeben, damit jeder die Software nach seinen eigenen Bedürfnissen ändern und vertreiben kann.

Wie lautet die Gesamtstrategie von Google für die Android-Produktentwicklung?

Wir bringen großartige Geräte auf einen wettbewerbsintensiven Markt. Die von uns entwickelten Innovationen und Verbesserungen werden dann in die nächste Version der Hauptplattform übernommen.

In der Praxis bedeutet das, dass sich das Android-Entwicklerteam auf eine kleine Anzahl von „Flagship“-Geräten konzentriert und die nächste Version der Android-Software entwickelt, um diese Produktveröffentlichungen zu unterstützen. Diese Flaggschiff-Geräte tragen einen Großteil des Produktrisikos und ebnen den Weg für die breite OEM-Community, die nachzieht und weitere Geräte mit den neuen Funktionen auf den Markt bringt. So sorgen wir dafür, dass sich die Android-Plattform an die Anforderungen realer Geräte anpasst.

Wie wird Android-Software entwickelt?

Jede Plattformversion von Android (z. B. 1.5 oder 8.1) hat einen entsprechenden Branch im Open-Source-Baum. Der aktuelle Branch gilt als aktuelle stabile Branch-Version, auf die das android-latest-release-Manifest verweist. Dieser Branch wird von Herstellern auf ihre Geräte übertragen. Dieser Branch ist jederzeit für die Veröffentlichung geeignet.

Schließlich arbeitet Google parallel zur Entwicklung eines Flaggschiff-Geräts an der nächsten Version der Android-Plattform.

Warum werden Teile von Android privat entwickelt?

Es dauert in der Regel mehr als ein Jahr, bis ein Gerät auf den Markt kommt. Und natürlich möchten Gerätehersteller die neueste Software ausliefern. Entwickler möchten beim Erstellen von Apps jedoch nicht ständig neue Versionen der Plattform im Blick behalten. Beide Gruppen stehen vor der Herausforderung, Produkte zu versenden und gleichzeitig nicht in Verzug zu geraten.

Um dies zu vermeiden, werden einige Teile der nächsten Android-Version, einschließlich der APIs der zentralen Plattform, in einem privaten Branch entwickelt. Diese APIs sind Teil der nächsten Android-Version. Unser Ziel ist es, den Fokus auf die aktuelle stabile Version des Android-Quellcodes zu legen, während wir die nächste Version der Plattform entwickeln. So können Entwickler und OEMs eine einzige Version verwenden, ohne unerledigte zukünftige Arbeit nur zur Aufrechterhaltung des Tempos im Auge behalten zu müssen.

Wann werden Quellcode-Releases veröffentlicht?

Wenn sie bereit sind. Die Veröffentlichung des Quellcodes ist ein ziemlich komplexer Vorgang. Einige Teile von Android, z. B. der Kernel, werden offen entwickelt und der Quellcode ist immer verfügbar. Andere Teile werden zuerst in einem privaten Verzeichnisbaum entwickelt und dieser Quellcode wird veröffentlicht, wenn die nächste Plattformversion bereit ist.

Bei einigen Releases sind die wichtigsten Plattform-APIs so weit im Voraus fertig, dass wir den Quellcode vor der Veröffentlichung des Geräts veröffentlichen können. Bei anderen Releases ist das nicht möglich. In jedem Fall veröffentlichen wir die Plattformquelle, wenn wir der Meinung sind, dass die Version stabil ist und der Entwicklungsvorgang dies zulässt.

Was ist beim Freigeben des Quellcodes für eine neue Android-Version zu beachten?

Die Veröffentlichung des Quellcodes für eine neue Version der Android-Plattform ist ein wichtiger Prozess. Zuerst wird die Software in ein System-Image für ein Gerät eingebunden und verschiedenen Zertifizierungen unterzogen, einschließlich der Zertifizierung durch staatliche Regulierungsbehörden für die Regionen, in denen die Smartphones eingesetzt werden. Der Code wird auch durch Operatortests geprüft. Dies ist eine wichtige Phase des Prozesses, da so Softwarefehler erkannt werden können.

Sobald die Freigabe von den Aufsichtsbehörden und Mobilfunkanbietern genehmigt wurde, beginnt der Hersteller mit der Massenproduktion der Geräte und wir beginnen mit der Veröffentlichung des Quellcodes.

Gleichzeitig mit der Massenproduktion startet das Google-Team mehrere Initiativen zur Vorbereitung der Open-Source-Veröffentlichung. Dazu gehören die endgültigen API-Änderungen, die Aktualisierung der Dokumentation (um beispielsweise alle Änderungen widerzuspiegeln, die während der Qualifikationstests vorgenommen wurden), die Vorbereitung eines SDKs für die neue Version und die Veröffentlichung der Informationen zur Plattformkompatibilität.

Unser Rechtsteam gibt die Freigabe für die Veröffentlichung des Codes als Open Source. So wie Open-Source-Mitwirkende eine Lizenzvereinbarung für Mitwirkende unterzeichnen müssen, die ihre Eigentumsrechte an ihrem Beitrag bestätigt, muss Google prüfen, ob die Quelle zur Abgabe von Beiträgen berechtigt ist.

Ab Beginn der Massenproduktion dauert der Softwarerelease in der Regel etwa einen Monat. Daher werden Quellcode-Releases oft ungefähr zur selben Zeit veröffentlicht, zu der die Geräte bei den Nutzern ankommen.

Inwiefern hängt das AOSP mit dem Android-Kompatibilitätsprogramm zusammen?

Das AOSP verwaltet die Android-Software und entwickelt neue Versionen. Da es sich um Open-Source-Software handelt, kann sie 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.

Das Android-Kompatibilitätsprogramm dient dazu, eine Baseline-Implementierung von Android zu definieren, die mit von Entwicklern erstellten Drittanbieter-Apps kompatibel ist. Geräte, die mit Android kompatibel sind, können am Android-System teilnehmen, einschließlich Google Play. Geräte, die die Kompatibilitätsanforderungen nicht erfüllen, sind nicht Teil dieses Systems.

Mit dem Android-Kompatibilitätsprogramm unterscheiden wir also Android-kompatible Geräte von Geräten, auf denen lediglich Derivate des Quellcodes ausgeführt werden. Wir begrüßen jede Nutzung des Android-Quellcodes. Damit ein Gerät am Android-Ökosystem teilnehmen kann, muss es vom Programm als Android-kompatibel eingestuft werden.

Wie kann ich zu Android beitragen?

Sie können Fehler melden, Apps für Android entwickeln oder Quellcode zum AOSP beitragen.

Es gibt Einschränkungen bei den Arten von Codebeiträgen, die wir akzeptieren. Jemand möchte beispielsweise eine alternative App-API beisteuern, z. B. eine vollständige C++-basierte Umgebung. Wir würden diesen Beitrag ablehnen, da Android Apps empfiehlt, in der ART-Laufzeit ausgeführt zu werden. Ebenso werden Beiträge wie GPL- oder LGPL-Bibliotheken, die nicht mit unseren Lizenzierungszielen kompatibel sind, nicht akzeptiert.

Wenn Sie Quellcode beisteuern möchten, sollten Sie uns vor Beginn der Arbeit über die in der Android-Community aufgeführten Kanäle kontaktieren. Weitere Informationen finden Sie unter Beteiligen.

Wie werde ich Android-Committer?

Im AOSP gibt es eigentlich keine Committer. Alle Beiträge (einschließlich derer von Google-Mitarbeitern) werden über ein webbasiertes System namens Gerrit verarbeitet, das Teil des Android-Entwicklungsprozesses ist. Dieses System arbeitet zusammen mit dem Git-Quellcodeverwaltungssystem, um Quellcodebeiträge effizient zu verwalten.

Ein benannter Genehmiger muss alle vorgeschlagenen Änderungen prüfen und akzeptieren. Genehmiger sind in der Regel Google-Mitarbeiter. Dieselben Genehmiger sind jedoch für alle Einreichungen verantwortlich, unabhängig von deren Herkunft.

Weitere Informationen finden Sie unter Patches einreichen.