AOSP 4.2.4 编译经验分享

4星 · 超过85%的资源 需积分: 3 18 下载量 162 浏览量 更新于2024-09-14 收藏 1.95MB TXT 举报
"这篇文档记录了Android 4.2(平台版本代码名称AOSP)的编译过程,其中提到了在编译时遇到的内存需求问题,以及编译选项和环境配置的细节。" Android 4.2编译过程是一个复杂且资源密集型的任务,特别是对于内存的需求非常高。在描述中提到,即使是使用`make -j4`这样的并行编译选项,并配备3GB内存的系统也可能无法顺利编译,因此建议直接使用`make`命令,尽管这样会降低编译速度。这表明Android 4.2的源码编译对硬件性能有较高的要求。 在提供的部分内容中,可以看到一些编译时的环境变量和设置: 1. `PLATFORM_VERSION_CODENAME=AOSP`:表示这个版本基于Android开源项目(AOSP)。 2. `PLATFORM_VERSION=4.2.42.42.42`:可能是一个错误,通常这里应显示单一的版本号,如4.2。 3. `TARGET_PRODUCT=full`:指示目标产品是一个完整的Android系统映像。 4. `TARGET_BUILD_VARIANT=eng`:表示这是工程版本(build variant),适用于开发者和测试,而不是最终用户。 5. `TARGET_BUILD_TYPE=release`:虽然变量名为`eng`,但`TARGET_BUILD_TYPE`设置为`release`,可能意味着这是一个用于发布前的编译。 6. `TARGET_BUILD_APPS=`:没有指定特定的应用程序进行编译。 7. `TARGET_ARCH=arm`:目标架构是ARM处理器。 8. `TARGET_ARCH_VARIANT=armv7-a`:更具体的ARM变体,支持ARMv7指令集。 9. `HOST_ARCH=x86`:编译主机的架构是x86,即通常的Intel或AMD处理器。 10. `HOST_OS=linux`:编译主机运行的是Linux操作系统。 11. `HOST_OS_EXTRA=Linux-2.6.38-8-generic-x86_64-with-Ubuntu-11.04-natty`:具体到Linux内核版本和Ubuntu发行版。 12. `HOST_BUILD_TYPE=release`:主机端的构建类型也为发布版本。 13. `BUILD_ID=OPENMASTER`:可能是构建标识符或分支名。 14. `OUT_DIR=out`:编译输出目录。 接着,可以看到一系列的`PRODUCT_COPY_FILES`,这是Android构建系统的一部分,用于将指定的文件复制到目标系统的特定位置。在这个例子中,是将音频文件从`frameworks/base/data/sounds/effects/ogg`目录复制到系统的媒体音频UI路径下,尽管这里标记为`ignored.`,可能是因为这些文件已经在目标系统中存在或者不需要更新。 Android 4.2的编译过程涉及到多个环境变量的设定,以及对目标设备架构、版本和编译选项的考虑。同时,编译过程中还处理了产品特定的文件复制操作,这些都是构建一个完整Android系统的重要步骤。对于开发者来说,理解这些细节有助于优化编译流程和解决编译过程中遇到的问题。