【问题标题】:Why is android source such a huge size? [closed]为什么android源码这么大? [关闭]
【发布时间】:2013-02-22 03:57:40
【问题描述】:

指南Initializing a Build Environment 说 -

注意:源下载大小约为 8.5GB。你会 需要超过 30GB 的空闲空间才能完成单个构建,最多需要 100GB(或 更多)用于全套构建。

我的问题 -

  1. 据我了解,目前供应商特定的应用程序和图形不在存储库中,它基本上包含内核源代码、通用驱动程序和基本工具。那它为什么这么大?
  2. 我到底为什么需要 100GB 来构建它?
  3. 是否有可能获得压缩源 tarball?

【问题讨论】:

  • 克隆 repo 时会下载所有分支、所有历史记录。工作目录的大小更小。
  • @RyanLi 你知道工作目录的大小吗?为什么构建需要 30-100GB?
  • 抱歉,我手头没有。
  • 例如,Android 4.0 的源代码只有大约 60MB。 (repository.grepcode.com/java/ext/com/google/android/android/…)
  • @OlegVaskevich 您发布的链接是Android Java SDK Source。我说的是Android Linux Source。由于kernel.org 的核心 Linux 内核 3.7 本身是 477MB(未压缩),因此不可能达到 60MB。

标签: android linux linux-kernel


【解决方案1】:

Ryan Li 提供了部分答案,他说您正在下载所有存储库的历史记录。这往往会随着时间的推移而增加,并使所有源的初始下载占用相当大的空间。

构建占用如此多空间的几个原因(无论如何都不是详尽的列表):

  • 有很多来源会生成大量用于构建最终图像的目标文件、库、dex 等。使用 C/C++ 工具链,链接器可以丢弃未在给定可执行文件中使用的目标文件部分。除了目标文件往往包含有关各个部分的大量额外信息这一事实之外,几乎总是意味着添加在一起的目标文件将比您构建的任何可执行文件都大。
  • 除了目标文件之外,您还可以在输出(中间)目录中拥有库和可执行文件本身。
  • 除了上述两个之外,您还有生成的文件系统映像。
  • 我不是 Java 构建专家,但我猜有中间文件可以访问生成的 .dex 文件。
  • 如果您想进行一整套构建,您需要将普通用户构建 (~30GB) 乘以至少三倍以上(其他包包含在 eng 和 userdebug 构建类型中)。

如果您想要更详细的答案,我建议您下载源代码,进行构建,然后在其上运行磁盘空间分析器工具(目前没有可用的构建工具)。

【讨论】:

  • 有没有什么地方可以找到它的压缩包,这样你就没有那么多冗余了?我只想构建一个自定义链接器。
猜你喜欢
  • 2016-03-26
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多