Google 致力于为黑人社区推动种族平等。查看具体举措
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Android Entwickler Codelab

Sie können helfen, das am weitesten verbreitete Betriebssystem in der Geschichte der Erde zu entwickeln. Ja, Sie sind hier, um sich auf den Weg zum Android-Plattformingenieur zu machen.

Obwohl der Weg herausfordernd ist, bemühen wir uns, Ihre Reise bei jeder Veröffentlichung zu vereinfachen. Und wir verbessern uns jeden Tag durch direkte Arbeit im Android Open Source Project (AOSP).

Lehnen Sie sich zurück, starten Sie ein Terminal und schreiben Sie Geschichte.

Tore

Die Mission dieses Codelab ist zweifach:

  1. Dieses Codelab gibt Ihnen einen kleinen Einblick in den Entwickler-Workflow für Android-Ingenieure, die an der Plattform (Betriebssystem) arbeiten.
  2. Dieses Codelab ist eine zwingende Funktion, mit der Sie Feedback zu den Tools, der Dokumentation und dem Entwickler-Workflow von Android geben können, wenn Sie von vorne beginnen.

Voraussetzungen

Hier finden Sie die vollständige Liste der Anforderungen für dieses Codelab, die von denen für die allgemeine Plattformentwicklung ( AOSP ) abgeleitet wurden.

Um dieses Codelab zu verwenden, müssen Sie Folgendes einrichten:

Umgebung

In der Regel erstellen und entwickeln Benutzer direkt auf der Workstation. Da Sie möglicherweise in verschiedenen Terminals arbeiten und viele der verwendeten Befehle terminalspezifisch sind, müssen Sie sie in jeder Terminalsitzung erneut ausführen. Im Einzelnen sind dies die source build/envsetup.sh und lunch Befehle.

Workstation einrichten

  1. Installieren Sie die erforderlichen Pakete auf der Workstation.
  2. Installieren Sie Repo, während Sie sich noch in einem Terminal befinden, und erhalten Sie Anmeldeinformationen für alle Git-Repositorys.

Initialisieren und synchronisieren Sie den Code

  1. Navigieren Sie in Ihr Home-Verzeichnis:

    cd ~
    
  2. Erstellen Sie darin ein lokales Arbeitsverzeichnis:

    mkdir aosp
    
  3. Navigieren Sie in das Verzeichnis:

    cd aosp
    
  4. Initialisieren Sie den AOSP-Repository-Quellcode-Hauptzweig (Standardeinstellung):

    repo init -u https://android.googlesource.com/platform/manifest
    
  5. Geben Sie Ihre Git-Anmeldeinformationen (Name, E-Mail-Adresse) ein oder akzeptieren Sie sie.

  6. Synchronisieren Sie den Quellcode:

    repo sync -j16
    

Die ersten Synchronisierungen können eine Stunde oder länger dauern. Weitere Informationen finden Sie in den Anweisungen zum Herunterladen, während Sie warten.

Jede Repo-Prüfung wird durch eine Manifestdatei dargestellt . Sie können mehr als eine Repo-Kaufabwicklung gleichzeitig durchführen, sofern diese in unterschiedlichen Verzeichnissen vorhanden sind. Beachten Sie jedoch, dass jede Kasse und jeder Build ungefähr 300 GB beträgt und wächst. Beschränken Sie sich also auf zwei oder erweitern Sie Ihr System mit einem sekundären Laufwerk.

Tipp: Um Speicherplatz freizugeben, löschen Sie ein Zweigverzeichnis und beginnen Sie erneut mit der Verzeichniserstellung:

rm -rf aosp2

Erstellen Sie den Code

Um Android zu erstellen, müssen Sie einen Zielgerätetyp auswählen, der mit dem Befehl lunch . Ziele sind Gerätepermutationen, z. B. ein bestimmtes Modell oder ein bestimmter Formfaktor.

Mit dem unten aosp_cf_x86_64_phone-userdebug können Sie das virtuelle Android-Gerät Cuttlefish zum Testen ohne physisches Gerät erstellen.

Um stattdessen ein physisches Gerät zu erstellen und zu aktualisieren, wählen Sie ein anderes Ziel und befolgen Sie die Anweisungen zum Flashen von Geräten .

  1. Richten Sie Ihre Umgebung zum Erstellen von Android-Geräten ein, indem Sie den folgenden Befehl im Stammverzeichnis Ihrer Quellcode-Prüfung ausführen:

    source build/envsetup.sh
    
  2. Übergeben Sie das Build-Ziel wie folgt an den Befehl zum Mittagessen:

    lunch aosp_cf_x86_64_phone-userdebug
    
  3. Erstellen Sie den Code von überall in Ihrer Kasse mit:

    m
    

Erwarten Sie, dass der erste Build Stunden dauert. Nachfolgende Builds benötigen erheblich weniger Zeit.

Erstellen Sie eine Acloud-Instanz

Acloud ist ein Befehlszeilentool in AOSP, das Benutzer beim Erstellen virtueller Android-Geräte unterstützt, in diesem Fall Cuttlefish.

Wenn Sie sich in derselben Terminalsitzung befinden, in der der Code erstellt wurde , fahren Sie fort. Führen Sie envsetup.sh Skript envsetup.sh und denselben dort zuerst verwendeten Befehl zum Mittagessen erneut aus. Dann:

  1. Erstellen Sie eine lokale Acloud-Instanz mit:

    acloud create --local-image --local-instance
    
  2. Akzeptieren Sie Aktualisierungen der erforderlichen Pakete.

  3. Wenn Sie dazu aufgefordert werden, starten Sie Ihre Workstation neu, damit alle Änderungen wirksam werden.

  4. Wählen Sie das Tintenfischgerät.

Sie sollten mit einer VNC-Sitzung begrüßt werden, die ein Android-Gerät enthält!

Sie können mit Maus und Tastatur mit dem virtuellen Gerät auf Ihrer Workstation interagieren. Sie können die Aktivität auch in den Protokollen verfolgen, während Sie Ihr Gerät mit dem Befehl logcat Android Debug Bridge (adb) logcat :

adb logcat

Nehmen Sie eine Änderung vor

Aktualisieren Sie den Quellcode nach diesem Beispiel Änderungsliste .

  1. Navigieren Sie vom Stammverzeichnis Ihrer Kasse ( aosp/ directory) zum frameworks/native Git-Projekt:

    cd frameworks/native
    
  2. Starten Sie ein temporäres Projekt mit:

    repo start <some-name> .
    
  3. Bearbeiten Sie SurfaceFlinger.cpp , um die Aktualisierungen aus der Änderungsliste an der folgenden Stelle aufzunehmen:

    aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
    
  4. Erstellen Sie den Code:

    m
    
  5. Aktualisieren Sie den Build auf dem Gerät:

    adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
    

Sie sollten eine Farbänderung auf dem Gerät sehen.

Testen Sie Ihren Code

Während dieses Teils des Codelabs werden wir einen Beispieltest durchlaufen, der sich im Quellbaum befindet und bereits fehlschlägt. Um den Test lokal auszuführen , verwenden wir Atest , um den Code zu testen.

So verwenden Sie den Test:

  1. Lauf:

    atest DevCodelabTest
    
  2. Der Test schlägt fehl. Jetzt lass es uns reparieren! Suchen Sie den Quellcode des fehlgeschlagenen Tests:

    atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
    
  3. Dann schau nach innen:

    platform_testing/tests/example/devcodelab
    
  4. Um die Datei zu bearbeiten, nehmen Sie den Namen des Tests und ersetzen Sie den . mit / , wie so:

    android.test.example.devcodelab.DevCodelabTest
    

    Wird:

    src/android/test/example/devcodelab/DevCodelabTest.java
    
  5. So bearbeiten:

    platform_testing/tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
    

    Ersetzen:

    Assert.assertTrue(false)
    

    Mit:

    Assert.assertTrue(true)
    
  6. Führen Sie den Test erneut aus, um zu überprüfen, ob Sie den Test behoben haben:

    atest DevCodelabTest
    

Laden Sie Ihren Code zur Überprüfung hoch

Repo vereinfacht die Verwendung von Git, indem Befehle wie der git clone , um in mehreren Git-Repositorys (oder Projekten) gleichzeitig zu arbeiten.

Unter Quellcodeverwaltungstools finden Sie eine Übersicht über Git und Repo mit Links zur vollständigen Dokumentation zum Arbeiten mit Android-Quellcode. Im AOSP-Repository finden Sie die vollständige Liste der Git-Projekte und die einzelnen Projekte (Pfade) für die mit jedem Projekt verknüpften Zweige.

Sie verwenden das webbasierte Gerrit- Codeüberprüfungssystem von Gerrit für Projekte in Git.

  1. Angenommen, Sie haben Ihre Änderungen im frameworks/native Projekt vorgenommen, führen Sie die folgenden Befehle aus, um sie hochzuladen:

    cd frameworks/native
    repo start codelab .
    git add .
    git commit
    
  2. Geben Sie für Ihre Commit-Nachricht Folgendes ein:

    Android codelab change
    Test: manual atest
    
  3. Laden Sie Ihr Wechselgeld hoch:

    repo upload
    

Wenn Sie erfolgreich sind, wird eine Meldung angezeigt, die Folgendes ähnelt:

Upload project frameworks/native/ to remote branch master:
  branch codelab ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
         ff46b36d android codelab change
to https://android-review.googlesource.com/ (y/N)? y
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432 android codelab change [NEW]
remote:
To https://android-review.googlesource.com/platform/frameworks/native
 * [new branch]          codelab -> refs/for/master

Zeigen Sie Ihre Änderung in Gerrit an

Gehen Sie zu dem Link im Terminal, der wie folgt aussieht:

https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432

Damit ist das Starter-Codelab für die Entwicklung der Android-Plattform abgeschlossen. Ausführliche Informationen zum Entwickeln von Android finden Sie unter Senden von Patches für die nächsten Schritte und im Rest dieser Website.

Setzen Sie Ihre Änderung zurück

Normalerweise würden Sie nach dem Testen und der Überprüfung / Genehmigung Ihre Änderung in Gerrit einreichen und sie im Repository zusammenführen.

Stattdessen für die Zwecke des Codelab, kehren Ihre Änderungsliste von in Gerrit Abandon klicken.

Verlassen Sie dann den zugehörigen temporären Zweig im Frameworks / native Projektverzeichnis (oder seinen Subs):

repo abandon codelab .

Denken Sie auch daran, die Änderungen an der Testdatei zurückzusetzen. Da wir die Änderung nicht erneut repo start , git commit und repo upload haben, können wir lediglich die Datei selbst wie aosp/platform_testing directory zurücksetzen (vorausgesetzt, Sie befinden sich im aosp/platform_testing directory ):

git reset HEAD tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
git checkout .

An diesem Punkt sind Sie fertig! Gute Arbeit!

Hilfe erhalten

Wenn während dieses Codelabs Fehler auftreten, melden Sie diese bitte über den Link zum Site-Feedback unten auf einer beliebigen Seite. Senden Sie Fragen an die Android-Building- Gruppe.