web-dev-qa-db-ja.com

AOSPリポジトリの同期に時間がかかりすぎる

私は埋め込まれたAndroidを学ぼうとしています。そして著者はAOSP Gingerbreadブランチでの作業を提案しました。それで私はソースをダウンロードするために続きました:

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

$ repo sync

しかし、時間がかかりすぎています。また、出力からは、他のブランチからソースコードをダウンロードしているようにも見えます(Android-5 .....を参照)。それがこんなに時間がかかるのかと思います。

誰か同じ問題がありましたか?提案をお願いします!ありがとう!

18
user3011609

AOSP isマルチギガバイトのダウンロードなので、できることはそれほど多くありません。ただし、-c/--current-branchオプションをrepo syncに渡すと、RepoはGitに各リポジトリのすべてのブランチではなく、本当に必要なブランチのみをフェッチするように指示します。 Gingerbreadのような古いリリースでは、これは理論的には非常に有益です。ただし、RepoはHTTP経由でダウンロードするGitバンドルをリポジトリにシードし、バンドルファイルは-cオプションの影響を受けません。 --no-clone-bundleを使用すると、バンドルファイルが無効になります。したがって、次のRepoコマンドを使用すると、ダウンロードが最小になります。

repo sync -c --no-clone-bundle

(Gingerbreadは数年前のリリースであることを覚えておいてください。最近の多くのハードウェアではそのままでは機能しません。)

33
Magnus Bäck

次のコマンドを使用する必要があります。

例:私の個人的なAOSPリポジトリの場合、

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

その後、

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

あなたは私のGitHubでもっと学ぶことができます Repo

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

同期時間を大幅に短縮します。

6
Merc

repo init --depth 1

これは、リポジトリの最新バージョンのみをダウンロードする必要があるため、同期速度を向上させる可能性がある別のオプションです。

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

これが私の完全なテストコマンドです: Android AOSPカーネルをコンパイルし、Android Emulator?