本文主要是介绍MacOS下编译android10.0.0源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于下载和切换分支的内容可以查看我之前的两篇文章,我下载的是android-10.0.0_2分支的源码,下面讲述编译过程:
1、首先打开终端把路径切换到放置源码的文件夹里,然后运行下面命令:
source build/envsetup.sh
2、之后使用lunch命令选择要编译的目标,这个过程可能需要等待一会,之后会出现一个列表,里边罗列的是能够编译的架构源码,我们直接选择序号即可,具体内容如下图:
当然也可以直接使用下面命令;
lunch aosp_arm-eng
使用上面命令之后就不会出现上面的列表了,而是会直接进入下图中的内容。这里有一点是要说明的,因为大部分电脑是x86架构的,所以关于要编译哪种架构的源码,要视自己的情况而定,如果是x86的电脑建议编译x86架构的,我的是x86的CPU,然后我编译的是arm架构的,造成我后面编译成功之后再进行安装时失败了。
看有的朋友使用 choosecombo 命令来进行一次性的选择,这个我没有使用过,不做过多解释,例如:
choosecombo 2 aosp_x86_64 3
关于choosecombo 命令的更多说明可以参考:https://blog.csdn.net/cfy137000/article/details/83718735
3、选择需要编译的架构源码之后,根据电脑的性能等待时间不同,等待一会之后会出现如下图所示内容:
4、这时我们就可以进行编译了,执行命令make -jx 来编译源码(x一般取你的cpu核心数*2+2),如果你没有通过lunch选择编译目标,直接make的话,它默认编译的是第一个架构版本(aosp_arm-eng),这个编译过程比较漫长(不过也分电脑性能),我在编译时提示如下错误:
产生这个问题的原因是,我把android源码放在移动硬盘了,但是我的移动硬盘不区分大小写的文件格式,所以这个需要格式化硬盘之后,重新下载、编译。
出现下面界面则在表示正在编译:
但是我在上图出现100%之后又出现了其他问题了,如下图:
出现这个问题是因为没有安装xcode或者是xcode里的SDK版本过老不包含上面提示的这些版本。
所以上面出现的这些问题,都是因为我的准备工作没有做好,需要做哪些准备工作,你可以查看官方指导:https://source.android.com/setup/build/initializing#setting-up-a-mac-os-x-build-environment这里会告诉你需要提前安装那些软件及注意事项。
同事针对执行make这个命令也可以不按照上面的写法,可以直接使用下面的命令代替:
m
使用 m
进行所有编译。m
可以使用 -jN
参数处理并行任务。如果您未提供 -j
参数,编译系统便会自动选择其认为对您的系统最佳的并行任务计数。关于编译这块可以查看:https://source.android.com/setup/build/building这里的官方指导,因为我的电脑配置比较低经历了八个半小时终于编译成功。
编译过程中的这些警告可以忽略,不会影响编译过程,编译成功的话会提示如下图信息:
特殊说明:我的电脑是15年MBP所以配置较老,是双核的i5处理器,8G内存,在编译的过程中电脑风扇狂转,坐在电脑边上都能感觉到电脑散发的热气,奇怪的是编译的时候我的处理器基本是满负荷运作,而内存才用了一半左右,可能是我的处理器太老了吧,所以编译的时间比较长,但总算成功了,说明编译的时候还是比较吃U的,分享当时截图如下:
这篇关于MacOS下编译android10.0.0源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!