AOSP安卓源码编译

news2024/11/18 5:49:42

写在前面

继上次安卓源码下载篇以后已经过了很久了
这里需要补充一些内容,在现在安卓源码是建议只下载自己需要的某个版本,这样更快

#初始化仓库,-b 指示分支,这里使用 android10
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r40

关于下载分支的编号,可以在清华镜像分支列表里面找的到

正篇

在repo init之后就是漫长的repo sync了,同步代码库一般来说网络通常都没啥问题,可以同步完成。
然后就是执行source build/envsetup.sh命令来自动配置一些编译环境了,执行完以后就是执行lunch命令,结果如下:
在这里插入图片描述
然后就是选择你需要make的安卓版本了,我的环境是ubuntu18.04,选择aosp_x86_64-eng的版本,输入26,即你选择的版本,然后就是执行make命令后面可以跟 -j 10表示并发采用10核编译。
如果不出意外,那当然是要出意外啦,make不成功
在这里插入图片描述导致的原因就是:
android SDK中有些JAVA类是开放的,有些是不开放的,API同样如此。这里所谓开放的类或API,只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,只是对javadoc的生成有影响关于类的开放和隐藏,但是对android的上层应用有影响,因为非开放的类或API,android上层应用无法直接访问。

我也是踩着坑过来的,一般在make之前建议执行命令

make update-api

执行make update-api完成后也会出现build completed successfully的提示。
然后再执行make,不然执行emulator命令后中会提示会缺少system image文件的需求,导致emulator失败。
执行make成功后,就是已经完成了80%的工作了,剩下的就是启动模拟器了。
然后开开心心的键入emulator,哈哈哈,居然再次提示错误
在这里插入图片描述前面的Warning可以忽略,ERROR才是重点,需要开启硬件加速
因为我这ubuntu是安装在真机上了,不是虚拟机。之前用虚拟机编译Android源码总提示内存不足(我本子16GB的)后来就安装真机了,少了很多报错。回到正题上

sudo chown username -R /dev/kvm (注意这里的username是你的用户名)

执行上面的命令就可以解决问题,最后就是开开心心的执行emulator了。
在这里插入图片描述心心念念的模拟器终于看到了。
从装虚拟机到装真机,也是镇腾了好几天,主要是用虚拟机跑ubuntu编译安卓源码总是卡死,内存不足,网络慢,同步一次代码要花好几个小时。没办法16GB是上限了[苦笑]
在Android FrameWork开发的路上还有很多坑要填。
也希望这篇笔记能帮到有需要的朋友!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门教程+项目实战-14.3节-函数的可变参数

目录 14.3.1 理解可变参数 14.3.2 操作符*与** 14.3.3 对实参进行解包 14.3.4 知识要点 14.3.5 系统学习python 14.3.1 理解可变参数 函数的可变参数,可以从其字面意思来进行理解。“可变”是指参数的数目是变化的,不确定的。在Python中定义函数时…

feign与springcloud版本不匹配报错,查看springcloud组件与springcloud的匹配版本的方法

问题描述 springboot版本号是2.0.0.M3,springcloud的版本号是Finchley.M2 2023-06-27 00:40:02.158 ERROR 26304 --- [ restartedMain] o.s.boot.SpringApplication : Application startup failedjava.lang.IllegalStateException: Error processi…

基于c#和xml存储数据的员工管理系统

完整资料进入【数字空间】查看——baidu搜索"writebug" 项目介绍 本系统是人事管理系统,它主要实现管理员如何对普通用户进行授权,如何插入、删除一个员工的信息,用户如何浏览员工的所有信息,以及用户如何查询自己想要…

服务器数据库中了locked勒索病毒怎么办及正确的解密恢复流程是什么

在当今数字化时代,服务器数据库是企业重要的信息资产之一。然而,网络安全威胁也日益增加,其中之一便是勒索病毒。最近很多企业被.locked后缀勒索病毒攻击,导致系统的重要数据被加密,此次locked勒索病毒非常猖狂&#x…

运动耳机哪个好、超级适合运动的耳机推荐

无论你喜欢跑步、健身、骑行还是瑜伽等等,一款好的运动耳机都能够让你在运动过程中享受音乐的陪伴,让运动不再枯燥。运动耳机成为了运动伴侣中不可或缺的装备。今天,我将为大家介绍几款非常适合运动的耳机,并对这几款耳机进行全方…

在WSL2中安装IntelliJ IDEA开发工具

一、wsl支持图形 windows安装xming https://sourceforge.net/projects/xming/ 添加白名单 查看服务器ip ifconfig 编辑配置文件(结合自己的安装目录) ‪D:\ProgramFiles\Xming\X0.hosts 启动Xlaunh wsl 配置并验证 #b编辑配置文件 vi ~/.bashrc #末尾增加配置 export DI…

Clion开发STM32之W5500系列(三)

前言 编写w5500的驱动测试驱动 驱动编写 相关宏定义 #define sys_force_static_inline __attribute__((always_inline)) static inline寄存器驱动头文件 #ifndef STM32_VET6_W5500_REG_H #define STM32_VET6_W5500_REG_H#include "sys_core.h"#define MR (…

Java发送邮件-工具类-基于springboot

那么&#xff0c;废话少说&#xff0c;直接上代码。 1. 目录结构 重点是那几个带mail的&#xff0c;其他文件不用管。 2. pom <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schema…

【Java-14】3万字深入理解HashMap集合(高级)

1.HashMap集合简介 ​ HashMap基于哈希表的Map接口实现&#xff0c;是以key-value存储形式存在&#xff0c;即主要用来存放键值对。HashMap 的实现不是同步的&#xff0c;这意味着它不是线程安全的。它的key、value都可以为null。此外&#xff0c;HashMap中的映射不是有序的。…

chatgpt赋能python:Python跑步轨迹生成:如何利用Python生成跑步轨迹

Python跑步轨迹生成&#xff1a;如何利用Python生成跑步轨迹 如果你经常跑步&#xff0c;你可能会想知道你每次跑步的轨迹&#xff0c;而不仅仅是跑步的距离和时间。这时&#xff0c;Python可以帮助你生成跑步轨迹&#xff0c;并且还可以将轨迹可视化。在本文中&#xff0c;我…

软考高级系统架构设计师(五) 系统性能评价

目录 概要 性能指标 性能调整 ​阿姆达尔 性能评价 概要 性能指标 参考&#xff1a;【软考-系统架构设计师】知识要点-8 - 知乎 响应时间&#xff1a; 0.1秒&#xff1a;用户感觉不到任何延迟&#xff1b;1.0秒&#xff1a;用户愿意接受的系统立即响应的时间极限&#x…

Liunx 安装MySQL 8 社区版

1.下载MySQL版本 在官网可直接找见对应版本 wget https://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpmrpm -ivh mysql80-community-release-el8-5.noarch.rpm2. 使用命令 ls /etc/yum.repos.d/ | grep mysql 查看是否存在以下两个repo文件 3.更新yum资源 …

云原生改造- istio (二)

目录 1 VirtualService 文件 2 DestinationRule 文件 3 演示结果 前提 基于内容的灰度发布&#xff0c;保证在chrome下可以访问V2版本&#xff0c;其他浏览器可以访问v1. 1 VirtualService 文件 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:n…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)二:登录界面及对应功能实现

一、本章内容 本章介绍系统登录界面、登录流程、登录接口等相关内容的开发,实现包括账号密码登录、短信验证登录等不同的登录方式,使用svg-capter生成图形验证码,使用expressjwt实现登录token的生成及验证。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预…

CNAS软件测评实验室内审流程与技巧

软件检测实验室通过内部审核活动&#xff0c;可以验证内部体系的运行是否符合管理体系的要求&#xff0c;在内审时&#xff0c;需要审核宜检查管理体系是否满足 ISO/IEC17025 或 ISO/IEC17020、或其他相关准则文件的要求&#xff0c;即符合性检查。 还要检查组织的质量手册及相…

npm install 报错 gyp 解决方案

问题&#xff1a; 接手别人的项目&#xff0c;在安装项目依赖npm install时&#xff0c;一直提示 gyp相关的错误。 问题原因&#xff1a; 项目中依赖项"node-sass": "^4.14.1",与当前node.js版本不符合。 解决问题&#xff1a; 通过百度踩坑&#xff0c;…

nslookup提示-bash: nslookup: command not found

nslookup使用时&#xff0c;提示-bash: nslookup: command not found的错误。 yum install -y nslookup提示No package nslookup available.。 yum provides nslookup查看一下那个安装包提供nslookup命令。 yum install -y bind-utils安装bind-utils。 nslookup,然后输…

为什么同样是手机,你拍的照片没别人好看?避开4个常见摄影坑,秒变摄影师!

你有没有过这样的疑惑&#xff1a;为什么同一个场景&#xff0c;有的人可以用手机拍出大片感、电影感、史诗感&#xff0c;而你拍出来的照片却平平无奇&#xff0c;甚至有些毁人毁景&#xff1f; 如果说出片效果的差别是因为器材、手机参数一样导致的&#xff0c;那多少还可以…

数据结构--单链表的查找

数据结构–单链表的查找 均以带头结点链表为例 目标&#xff1a; GetElem(Li):按位查找操作。获取表L中第i个位置的元素的值。 LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。 按位查找 按位查找,返回第i 个元素&#xff08;带头结点) 代码实现 typ…

【算法题】动态规划基础阶段之斐波那契数列、青蛙跳台阶问题、连续子数组的最大和

动态规划基础阶段 前言一、斐波那契数列1.2、思路1.2、代码实现 二、青蛙跳台阶问题2.2、思路2.2、代码实现 三、连续子数组的最大和3.1、思路3.2、代码实现 总结 前言 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种解决多阶段决策过程最优化…