MacOS下编译android10.0.0源码

2023-10-17 19:30

本文主要是介绍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源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixue9/article/details/100590837
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/227463

相关文章

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应