AOSP repo sync需要太长时间

use*_*609 16 linux embedded android platform android-source

我正在尝试从同名书中学习嵌入式Android.作者建议与AOSP姜饼分公司合作.所以我按照下载源代码:

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

$ repo sync
Run Code Online (Sandbox Code Playgroud)

但这花了太长时间.从输出,在我看来,它似乎也从其他分支机构下载源代码(我看到android-5 .....)这不是我想要的.我想知道这是否需要这么长时间.

有没有人有同样的问题?请给我一个建议!谢谢!

Mag*_*äck 32

AOSP 一个数千兆字节的下载,因此您无法做到这一点.但是,传递-c/ --current-branch选项会repo sync导致Repo告诉Git只获取您真正需要的分支而不是每个存储库的所有分支.有了像Gingerbread这样的旧版本,理论上这应该是非常有益的.但是,Repo使用Git捆绑包通过HTTP下载存储库,捆绑文件不受该-c选项的影响.使用--no-clone-bundle禁用捆绑文件.因此,以下Repo命令应该产生最小的下载:

repo sync -c --no-clone-bundle
Run Code Online (Sandbox Code Playgroud)

(请记住,Gingerbread是一个已有几年发布的版本.在最近的许多硬件上都不会开箱即用.)


小智 9

你应该使用这个命令:

示例:对于我个人的AOSP回购,

repo init --depth=1 -u https://github.com/zawzaww/aosp-android.git -b android-8.1.0
Run Code Online (Sandbox Code Playgroud)

然后,

repo sync  -f --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
Run Code Online (Sandbox Code Playgroud)

您可以在我的GitHub Repo上了解更多信息


小智 5

repo sync -c --no-tags --no-clone-bundle -j2
Run Code Online (Sandbox Code Playgroud)

大大缩短了我的同步时间。


Cir*_*四事件 5

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对其进行测试?