Auf dieser Seite wird der vollständige Prozess zur Übermittlung einer Codeänderung an die Android- Open-Source-Projekt (AOSP), einschließlich der Beantragung einer Überprüfung und Nachverfolgung Ihre Änderungen.
AOSP stützt sich auf ein Gerrit, ein webbasiertes Codeüberprüfungssystem für Projekte, bei denen Git
Lizenzvereinbarungen für Mitwirkende unterzeichnen
Bevor Sie Codeänderungen für AOSP beitragen, müssen Sie Folgendes lesen: Contributor-Lizenzvereinbarungen und -Header und unterzeichnen Sie eine der folgenden Vereinbarungen:
- Wenn Sie als einzelner Beitragender nur in Ihrem Namen Beiträge leisten, die Lizenzvereinbarung für Beitragende:
- Stellen Sie als Mitarbeiter eines Unternehmens sicher, dass Ihr Unternehmen die Lizenzvereinbarung für Mitwirkende bei Unternehmen Sie autorisieren, in seinem Namen Beiträge zu leisten.
Zweig starten
Führen Sie für jede Codeänderung, die Sie vornehmen möchten, die folgenden Schritte aus:
Starten Sie einen neuen Zweig im relevanten Git-Repository. Ein Zweig ist keine Kopie. der Originaldateien; Es ist ein Zeiger auf ein bestimmtes Commit, Erstellen lokaler Zweige und der Wechsel zwischen ihnen eine einfache Operation. Von mithilfe von Zweigen können Sie Änderungen voneinander identifizieren. Führen Sie diesen Befehl aus, einen Zweig starten:
repo start BRANCH_NAME
Sie können mehrere unabhängige Zweige gleichzeitig starten. zu erstellen. Der Zweig BRANCH_NAME ist lokal für Ihre und weder auf Gerrit noch in der endgültigen Quellstruktur enthalten. Zweige sind auch projektspezifisch. im Zuge der gleichen Änderung auch Dateien in verschiedenen Projekten erstellt haben, benötigen Sie in jedem Projekt, in dem Sie Dateien ändern.
(Optional) Prüfen Sie, ob der Zweig erstellt wurde:
repo status .
Der neu erstellte Zweig sollte angezeigt werden. Beispiel:
project frameworks/native/ branch mynewbranch
Änderungen vornehmen und testen
Führen Sie die folgenden Schritte aus, um Ihre Änderung vorzunehmen und zu testen:
Führen Sie eine Synchronisierung von gesamte Codebasis:
repo sync
Sollten während der Synchronisierung Konflikte auftreten, lesen Sie die Schritte 2 bis 4 der Synchronisierungskonflikte lösen
Suchen Sie den Code, den Sie ändern möchten. Um Code zu finden, verwenden Sie Android Code Search Mit Android Code Search verwenden, um den AOSP-Quellcode so anzuzeigen, wie er bei der Verwendung . Weitere Informationen finden Sie unter Erste Schritte mit der Codesuche Um den gesamten Code im
main
-Zweig in der Android-Codesuche anzuzeigen, Navigieren zuhttps://cs.android.com/android/platform/superproject/main
Ändern oder fügen Sie Quelldateien hinzu. Gehen Sie für alle vorgenommenen Änderungen wie folgt vor:
- Befolgen Sie die Best Practices in Fügen Sie Lizenzheader ein.
Folgen Sie für Java-Code den AOSP-Java-Codestil für Beitragende.
Einige Teile von AOSP sind in Kotlin (
.kt
) geschrieben. Sie können Kotlin in folgenden Sprachen verwenden: die bereits in Kotlin geschrieben wurden. Weitere Informationen zu Kotlin unter Android erhalten Sie auf der Website für Android-Entwickler. Kotlin-Styleguide und Leitfaden zur Interoperabilität mit Kotlin und Java Ausführlichere Informationen zu Kotlin finden Sie in der Website für die Kotlin-SpracheBeachten Sie beim Schreiben von APIs die Android API-Richtlinien. In diesen Richtlinien erfahren Sie mehr über den Kontext der API-Entscheidungen von Android. Ergänzungen und Änderungen von Plattform-APIs werden von Metalava
Änderung bereitstellen und per Commit bestätigen
Ein Commit ist die Grundeinheit der Versionsverwaltung in Git und besteht aus einem Snapshot der Verzeichnisstruktur und des Dateiinhalts für das gesamte Projekt Führen Sie die folgenden Schritte aus, um die Änderung zu übernehmen:
Standardmäßig registriert Git die von Ihnen vorgenommenen Änderungen jedoch nicht. Bis Sie Git anweisen, Ihre Änderungen nachzuverfolgen, müssen Sie diese Änderungen für die Aufnahme in ein Commit. Führen Sie den folgenden Befehl aus, um die Änderung bereitzustellen:
git add -A
Dieser Befehl verfolgt Änderungen, die Sie an Dateien vorgenommen haben.
Führen Sie für die Dateien im Staging-Bereich einen Commit durch oder speichern Sie sie auf Ihrem lokalen Computer Datenbank:
git commit -s
Standardmäßig wird ein Texteditor geöffnet und Sie werden aufgefordert, ein Commit-Nachricht übergeben.
Geben Sie eine Commit-Nachricht im folgenden Format an:
Zeile 1: Überschrift. Geben Sie eine einzeilige Zusammenfassung der Änderung ein (50 Zeichen). Maximum). Verwenden Sie Präfixe, um das Gebiet zu beschreiben, das Sie geändert haben. durch eine Beschreibung der Änderung, die Sie in diesem Commit vorgenommen haben, wie z. B. Beispiel für eine Änderung der Benutzeroberfläche:
ui: Removes deprecated widget
Zeile 2: Leerzeile. Folgen Sie dem Anzeigentitel mit einer Leerzeile.
Zeile 3: Text. Geben Sie eine lange Beschreibung ein, die mit 72 Zeichen vollständig umgebrochen wird. maximal. Beschreiben Sie, welches Problem durch die Änderung behoben wird und wie. Obwohl der Körper optional ist, ist dies für andere hilfreich, die auf die Änderung noch einmal zurückgreifen müssen. Geben Sie eine kurze Notiz aller Annahmen oder Hintergrundinformationen an. Dies kann wichtig sein, wenn ein anderer Beitragender an dieser Funktion arbeitet.
Einen Blog über gute Commit-Beschreibungen (mit Beispielen) finden Sie unter So schreiben Sie eine Git-Commit-Nachricht
Speichern Sie das Commit.
Eine eindeutige Änderungs-ID sowie Ihr Name und Ihre E-Mail-Adresse, die
werden im repo init
automatisch zur Commit-Nachricht hinzugefügt.
Änderung zur Überprüfung hochladen
Nachdem Sie Ihre Änderung in Ihrem persönlichen Git-Verlauf gespeichert haben, laden Sie sie in Gerrit hoch:
Führen Sie den folgenden Befehl aus, um alle Commits in alle Projekten:
repo upload
Alle Änderungen in allen Projekten werden in den Upload einbezogen.
Sie werden aufgefordert, Hook-Skripts auszuführen.
Drücken Sie A und dann die Eingabetaste.
Sie werden aufgefordert, den Upload zu genehmigen:
Upload project frameworks/native/ to remote branch main: branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700): ff46b36d android codelab change to https://android-review.googlesource.com/ (y/N)?
Drücken Sie Y und dann die Eingabetaste, um den Upload zu genehmigen.
Sie sollten eine Nachricht wie diese erhalten: remote: SUCCESS
.
Überprüfung beantragen
Nach einem erfolgreichen Upload erhalten Sie von Repo einen Link zu Ihren Änderungen in Gerrit. Klicken Sie auf den Link, um Ihre Änderungen auf dem Prüfserver anzuzeigen, Kommentare hinzuzufügen oder bestimmte Prüfer für Ihre Änderung bitten. Alle Änderungen am Code müssen von den entsprechenden Code-Inhabern überprüft. So beantragen Sie eine Überprüfung:
Klicke in Gerrit auf EIGENTUMSRECHTE VORSCHLAGEN:
Abbildung 1: Link „Inhaber vorschlagen“ in Gerrit.
Das Dialogfeld für Prüfer wird angezeigt. Dieses Dialogfeld enthält eine Liste der Codeinhaber, die kann Ihre Änderung überprüfen.
Klicken Sie auf einen Codeinhaber, um ihn Ihrer Rezension hinzuzufügen.
Die Schaltfläche SEND (Senden) ist aktiviert.
(Optional) Geben Sie die E-Mail-Adressen der Personen ein, für die Sie Ihre ändern können.
Optional: Klicken Sie neben „Automatisch senden“ auf +1, um die Änderung automatisch zu senden. nachdem Sie die Genehmigungen erhalten haben. Wenn Sie nicht auf diese Schaltfläche klicken, muss Ihre Änderung für Sie einreichen.
Klicke auf SENDEN, um die Änderung zur Überprüfung zu senden.
Code-Eigentümer überprüfen Ihre Codeänderungen und geben Ihnen entweder Feedback, zu klären oder die Änderungen zu genehmigen.
Bestimmen des Änderungsstatus
Um den Status der Dateien in Ihrer Änderung zu ermitteln, suchen Sie nach dem folgenden Symbolen neben den Dateien in der Änderung:
- (Häkchen) icon): vom Codeinhaber genehmigt
- (Kreuzsymbol): Nicht vom Codeinhaber genehmigt
- (Uhr) Symbol): Genehmigung durch Codeeigentümer steht aus
Die folgende Abbildung zeigt diese Statussymbole, die auf Dateien in einer Änderung angewendet werden:
Abbildung 2: Beispiel für Dateien mit Symbolen, die die Genehmigung des Codeinhabers anzeigen
Feedback klären und Ersatzänderung hochladen
Wenn ein Prüfer eine Änderung an Ihrem Update anfordert, können Sie Ihr Commit in Git ändern, was zu einem neuen Patchset ändern können.
So klären Sie das Feedback und ändern Ihre Änderung:
Führen Sie die Schritte 2 bis 4 unter Änderung vornehmen und testen aus.
Führen Sie die folgenden Befehle aus, um Ihre Änderung zu ändern:
git add -A git commit --amend
Wenn du die geänderte Änderung hochlädst, wird das Original auf Gerrit ersetzt und in Ihrem lokalen Git-Verlauf.
Synchronisierungskonflikte lösen
Wenn andere Änderungen an die Quellstruktur gesendet werden, die in Konflikt mit erhalten Sie eine Nachricht, dass es Konflikte gibt. So lösen Sie die Konflikte:
Achten Sie darauf, mit dem aktuellen Code zu arbeiten:
repo sync .
Mit dem Befehl
repo sync
werden die Aktualisierungen vom Quellserver abgerufen und dann versucht,HEAD
automatisch auf der neuen FernbedienungHEAD
zu erstellen.Wenn die automatische Rebase nicht erfolgreich ist, führen Sie eine manuelle Rebase durch:
repo rebase .
Zusammenführungskonflikte lösen Wenn Sie keine bevorzugte Methode haben, zusammengeführt werden, können Sie verwenden Sie
git mergetool
um Konflikte zwischen Dateien manuell zu beheben.Wenn Sie die in Konflikt stehenden Dateien erfolgreich korrigiert haben, führen Sie diesen Befehl aus, Wenden Sie die neuen Commits an:
git rebase --continue
Änderung senden
Nachdem eine Einreichung den Überprüfungs- und Bestätigungsprozess durchlaufen hat,
muss ein Google-Prüfer den Code für Sie einreichen. Sonstiges
Nutzer können repo sync
ausführen, um das Update in ihren jeweiligen lokalen
Kundschaft.
Nachdem Ihre Einreichung zusammengeführt wurde, können Sie die Kontinuierliche Integration unter Android Dashboard zur Überwachung der Integration Ihrer Einreichungen in die Baumstruktur.