web-dev-qa-db-fra.com

La synchronisation du repo AOSP prend trop de temps

J'essaie d'apprendre Embedded Android du livre du même nom. Et l'auteur a suggéré de travailler avec la branche AOSP Gingerbread. J'ai donc suivi pour télécharger la source:

$ repo init -u https://Android.googlesource.com/platform/manifest.git
-b Gingerbread

$ repo sync

Mais cela prend trop de temps. Aussi à partir de la sortie, il me semble qu'il télécharge également du code source à partir d'autres branches (je vois Android-5 .....) ce qui n'est pas ce que je veux. Je me demande si c'est la raison pour laquelle cela prend autant de temps.

Quelqu'un at-il eu le même problème? Veuillez me donner une suggestion! Merci!

18
user3011609

AOSP is un téléchargement de plusieurs gigaoctets donc il n'y a pas grand chose à faire. Cependant, en passant le -c/--current-branch option pour repo sync oblige Repo à dire à Git de ne récupérer que la branche dont vous avez vraiment besoin au lieu de toutes les branches de chaque référentiel. Avec une ancienne version comme Gingerbread, cela devrait théoriquement être très bénéfique. Cependant, Repo initialise les référentiels avec les bundles Git qu'il télécharge via HTTP, et les fichiers de bundle ne sont pas affectés par le -c option. En utilisant --no-clone-bundle désactive les fichiers groupés. Par conséquent, la commande Repo suivante devrait générer le plus petit téléchargement:

repo sync -c --no-clone-bundle

(Gardez à l'esprit que Gingerbread est une version vieille de plusieurs années. Cela ne fonctionnera pas avec beaucoup de matériel récent.)

33
Magnus Bäck

Vous devez utiliser ces commandes:

Exemple: pour mon repo AOSP personnel,

repo init --depth=1 -u https://github.com/zawzaww/aosp-Android.git -b Android-8.1.0

puis,

repo sync  -f --force-sync --no-clone-bundle --no-tags -j$(nproc --all)

Vous pouvez en savoir plus sur mon GitHub Repo

10
Zaw Zaw
repo sync -c --no-tags --no-clone-bundle -j2

Réduit considérablement mes temps de synchronisation.

6
Merc

repo init --depth 1

Il s'agit d'une autre option qui pourrait améliorer la vitesse de synchronisation, car elle ne devrait télécharger que la dernière version du référentiel.

Voir aussi: https://superuser.com/questions/603547/how-can-i-limit-the-size-of-the-Android-source-i-need-to-download-with-repo -syn

Voici mes commandes de test complètes: Comment compiler le Android noyau AOSP et le tester avec le Android Emulator?