2015-02-07 22 views
7

Ich versuche Embedded Android aus dem Buch mit dem gleichen Namen zu lernen. Und der Autor schlug vor, mit AOSP Lebkuchenniederlassung zu arbeiten. Also folgte ich, um die Quelle herunterzuladen:AOSP Reposynchronisation dauert zu lange

$ repo init -u https://android.googlesource.com/platform/manifest.git 
-b gingerbread 

$ repo sync 

Aber es dauert zu lange. Auch von der Ausgabe scheint es mir, als ob es auch Quellcode von anderen Zweigen herunterlädt (ich sehe Android-5 .....), was nicht das ist, was ich will. Ich frage mich, ob das der Grund ist, warum es so lange dauert.

Hat jemand das gleiche Problem hatte? Bitte gib mir einen Vorschlag! Vielen Dank!

+0

bezogen werden: https://superuser.com/questions/603547/how-can-i-limit-the-size-of-the-android-source-i-need-to-download-with-repo-syn –

Antwort

16

AOSP ist ein Multi-Gigabyte-Download, so dass Sie nicht viel tun können. Um jedoch die -c/--current-branch Option repo sync vorbei verursacht Repo Git zu sagen, nur den Zweig holen Sie wirklich statt alle Zweige jedes Repository benötigen. Bei einem alten Release wie Gingerbread sollte das theoretisch sehr vorteilhaft sein. Repo sät die Repositorys jedoch mit Git-Bundles, die über HTTP heruntergeladen werden, und die Bundle-Dateien sind von der Option -c nicht betroffen. Mit --no-clone-bundle werden die Bundle-Dateien deaktiviert. Daher soll der folgende Repo-Befehl den kleinsten Download ergeben: (. Beachten Sie, dass Lebkuchen eine mehr Jahre alte Version ist es nicht auf einer Menge von den letzten Hardware der Box funktionieren.)

repo sync -c --no-clone-bundle 

+0

Aber wenn man einen Zweig (Beispiel Eibisch) angeben, sollte es herunterladen nicht nicht andere Zweige (Nougat, Lebkuchen)? Zum Beispiel, wenn Sie das Manifest für Marshmallow mit -b angeben? –

+0

@KaizerSozay: Ja, das versuche ich zu sagen. Mit '-c' laden Sie nur die benötigten Zweige herunter. Im Allgemeinen –

1
repo sync -c --no-tags --no-clone-bundle -j2 

Verkürzt meine Synchronisierungszeiten erheblich.

+0

, sind Antworten viel hilfreicher, wenn sie eine Erklärung umfassen, was der Befehl bestimmt ist zu tun, und warum das löst das Problem, ohne andere einzuführen. Kannst du weiter ausführen, was der '-j2'-Schalter tut und wie er hilft? –

+1

'-j' wird Schalter von' make' bekannt, die Zahl der Arbeitsplätze Sätze verwendet werden (Parallelismus). '-j2' setzt die Anzahl der Jobs auf 2 (d. h. verwendet 2 Kerne). Unter Linux verwenden Sie normalerweise '-j \' nproc \ '' oder '-j $ (getconf _NPROCESSORS_ONLN)', um die Anzahl der Kerne automatisch zu ermitteln. – pevik

0

repo init --depth 1

Dies ist eine weitere Option, die Synchronzeit verbessern könnte, da es nur die neueste Version der repos herunterladen soll.