为什么android源码如此庞大?

时间:2013-02-22 03:57:40

标签: android linux linux-kernel

指南Initializing a Build Environment说明了 -

  

注意:源下载大小约为8.5GB。你会   需要超过30GB的免费才能完成单个版本,最高可达100GB(或者   更多)完整的构建。

我的问题 -

  1. 据我所知,此时供应商特定的应用程序和图形不在存储库中,它基本上包含内核源代码,通用驱动程序和基本工具。为什么那么大呢?
  2. 为什么我需要100GB来构建它?
  3. 是否可以获得压缩源tarball?

1 个答案:

答案 0 :(得分:4)

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

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

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

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