Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么安卓源码如此庞大?_Android_Linux_Linux Kernel - Fatal编程技术网

Android 为什么安卓源码如此庞大?

Android 为什么安卓源码如此庞大?,android,linux,linux-kernel,Android,Linux,Linux Kernel,指南上说: 注意:源下载的大小约为8.5GB。你会 需要超过30GB的免费空间才能完成单个构建,最多100GB(或 更多)用于完整的构建集 我的问题- 据我所知,目前存储库中没有特定于供应商的应用程序和图形,它基本上包含内核源代码、通用驱动程序和基本工具。那么为什么它的尺寸这么大呢 究竟为什么我需要100GB来构建它 有可能获得压缩源tarball吗 Ryan Li提供了部分答案,表示您正在下载所有存储库的历史记录。这往往会随着时间的推移而累积起来,使所有源代码的初始下载占据相当大的空间 建筑占

指南上说:

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

我的问题-

  • 据我所知,目前存储库中没有特定于供应商的应用程序和图形,它基本上包含内核源代码、通用驱动程序和基本工具。那么为什么它的尺寸这么大呢
  • 究竟为什么我需要100GB来构建它
  • 有可能获得压缩源tarball吗

  • Ryan Li提供了部分答案,表示您正在下载所有存储库的历史记录。这往往会随着时间的推移而累积起来,使所有源代码的初始下载占据相当大的空间

    建筑占用这么多空间的几个原因(并非详尽的列表):

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

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

    Ryan Li提供了部分答案,说明您正在下载所有存储库的历史记录。这往往会随着时间的推移而累积起来,使所有源代码的初始下载占据相当大的空间

    建筑占用这么多空间的几个原因(并非详尽的列表):

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

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

    克隆repo时,将下载所有分支和所有历史记录。工作目录的大小较小。@RyanLi您知道工作目录的大小吗?为什么需要30-100GB来构建呢?很抱歉,我手头没有。例如,Android 4.0的源代码大约只有60MB。()@OlegVaskevich您发布的链接是安卓Java SDK源代码。我说的是安卓Linux源代码。不可能是60MB,因为核心Linux内核3.7本身是477MB(未压缩)。克隆repo时,所有分支和所有历史都会下载。工作目录的大小较小。@RyanLi您知道工作目录的大小吗?为什么需要30-100GB来构建呢?很抱歉,我手头没有。例如,Android 4.0的源代码大约只有60MB。()@OlegVaskevich您发布的链接是安卓Java SDK源代码。我说的是安卓Linux源代码。不可能是60MB,因为核心Linux内核3.7本身就是477MB(未压缩)。有没有地方可以找到一个tarball,这样你就不会有那么多冗余?我只想建立一个自定义链接器。是否有地方可以找到一个tarball,这样你就不会有那么多冗余?我只想建立一个自定义链接器。