Android源码下载

news2024/9/29 7:22:36

在这里插入图片描述


文章目录

  • 一、Android源码下载


一、Android源码下载

    AOSP 是 Android Open Source Project 的缩写。

git 常用命令总结
git 远程仓库相关的操作

# 查看 remote.origin.url 配置项的值
git config --list 

Android9.0之前代码在线查看地址:http://androidxref.com/
Android9.0之后代码在线查看地址:http://aospxref.com/
Android Open Source Project


repo入门
Android 镜像使用帮助 清华源
Git Repo 镜像使用帮助 清华源

# 1
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
# 为了方便可以将其拷贝到你的PATH里。

# 2
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
# repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,
# 可以将如下内容复制到你的~/.bashrc里

# 3
# 建立工作目录:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

# 初始化仓库:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

# 如果需要某个特定的 Android 版本(列表):
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-4.0.1_r1
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-2.3.1_r1

# 同步源码树(以后只需执行这条命令来同步):
repo sync

repo init出现Unable to fully sync the tree


清华源 manifest
android源码下载及soong build目录结构解析

  1. 下载源码目录信息
# 1 下载版本目录
mkdir Android
cd Android
git clone git://http://mirrors.ustc.edu.cn/aosp/platform/manifest

# 2 
cd manifest
git tag #(列出安卓版本号)
git checkout android-5.1.1_r18 ##checkout你想下载的版本号
# checkout之后,manifest/default.xml文件中记录的就是android5.1系统各个模块的路径
  1. 编写python下载文件download.py
import xml.dom.minidom  
import os  
from subprocess import call  

#downloaded source path  
rootdir = "/home/xx/learnAndroid/source/2.3.1"  

#git program path  
#git = "C:/sun/library/git/Git/bin/git.exe"  

dom = xml.dom.minidom.parse("/home/xx/learnAndroid/source/anGit/manifest/default.xml")  
root = dom.documentElement  

# prefix = git + " clone https://android.googlesource.com/"  
prefix = "git clone https://aosp.tuna.tsinghua.edu.cn/"  
suffix = ".git"  

if not os.path.exists(rootdir):  
    os.mkdir(rootdir)  

for node in root.getElementsByTagName("project"):  
    os.chdir(rootdir)  
    d = node.getAttribute("path")  
    last = d.rfind("/")  
    if last != -1:  
        d = rootdir + "/" + d[:last]  
    if not os.path.exists(d):  
        os.makedirs(d)  
    os.chdir(d)  
    cmd = prefix + node.getAttribute("name") + suffix
    print("cmd:", cmd)
    # call(cmd)
    result = os.popen(cmd)
    print(result.read())

Python调用系统命令的四种方法详解

  1. 执行python文件开始下载
cmd

python download.py

史上最简最全,Android AOSP源码阅读+编译环境这一篇就够了
android:自己动手编译Android源码(超详细)
Android 系统源码下载及编译

   

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

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

相关文章

关于webWorker未解问题

今天尝试学习webworker,尝试在vue3项目里面使用 使用的就是常规方法,使用worker-loader,加上在vue.config.js内部添加配置 使用完发现问题 如图所见,该worker仅仅配置点击后传输字符串"1",并在worker内部打印,发现打印不出来 但是仅仅只是将引入的文件换个名字 …

什么是兼容性测试? 有哪些方法?

在现今数字化世界中,软件和应用程序的多样性和复杂性已经达到了前所未有的高度。不同的操作系统、浏览器、设备和网络环境使得开发人员面临着严峻的挑战,即如何确保他们的软件在各种不同条件下都能正常运行。这就是兼容性测试的重要性所在。 一、什么是兼…

十一、2023.10.5.计算机网络(end).11

文章目录 17、说说 TCP 可靠性保证?18、简述 TCP 滑动窗口以及重传机制?19、说说滑动窗口过小怎么办?20、说说如果三次握手时候每次握手信息对方没收到会怎么样,分情况介绍?21、简述 TCP 的 TIME_WAIT,为什么需要有这个状态&…

2579. 统计染色格子数(javascript)

有一个无穷大的二维网格图,一开始所有格子都未染色。给你一个正整数 n ,表示你需要执行以下步骤 n 分钟: 第一分钟,将 任一格子染成蓝色。之后的每一分钟,将与蓝色格子相邻的 所有 未染色格子染成蓝色。 下图分别是 …

Maven下载与文件配置

文章目录 官网下载相应文件修改配置文件设置环境变量 官网下载相应文件 https://maven.apache.org/ 点击Download ,找到Files 下载好了,请解压,放在你需要存储的位置! 修改配置文件 打开解压的文件: 在conf 下有一个setting…

NCNN:备忘

1:NCNN中Mat与CV中Mat的区别 ncnn中Mat数据的排列格式为(channel, h, w):bbbb....gggg.....rrrr opencv中Mat中数据的排列格式为(h, w, channel):bgrbgrbgrbgr... 2:NCNN::Mat的内存排布(图解)力荐 参考…

Unity实现设计模式——模板方法模式

Unity实现设计模式——模板方法模式 模板模式(Template Pattern), 指在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单说, 模板方法模式定义一个操作中的算法的骨架&…

【机器学习 | 回归问题】超越直线:释放多项式回归的潜力 —— 详解线性回归与非线性 (含详细案例、源码)

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

对自动化测试的一些见解

1、手工测试和自动化测试用例 手工测试用例是针对功能测试人员的,而自动化测试用例是针对自动化测试用例框架或工具的。 1)手工测试用例特点 较好的异常处理能力,能通过人为的逻辑判断校验当前步骤是否正确实现; 人工执行用例具有…

startsWith()方法的使用

startsWith()方法一般用于检测某请求字符串是否以指定的前缀开始的。 例如:服务器要判断某个请求是否合规,首先确定协议,比如http、ftp等,这时,就可以用startsWith()。 startsWith 是则返回true,否则返回…

css自学框架之面板

面板是我们开发中经常用到,也就是页面版面中一块一块的板块,效果如下图: 一、css代码 .myth-panel {background-color: var(--white);border: solid 1px transparent;}.myth-panel .myth-panel-header {border-bottom: solid 1px transpar…

一种重要的天然氨基酸L-Homopropargylglycine(HPG)|CAS:942518-19-6

产品简介:L-Homopropargylglycine是一种重要的天然氨基酸,具有多种生物活性和医学应用价值。它广泛应用于生物学、药学、化学等多个领域。在生物学中,HPG被用作蛋白质合成的标记物,可以通过其特殊的化学反应与蛋白质中的半胱氨酸残…

使用HHDBCS管理MongoDB

1 连接MongoDB 打开HHDBCS,在数据库类型中选择mongodb,填入相关信息,点击“登陆”即可。 也可以使用SSH通道进行登陆。 2 命令窗口 点击命令窗口,可以对数据库发出指令。 可以根据个人习惯,对命令窗口进行设置…

基于springboot实现自习室预订系统的设计与实现项目【项目源码+论文说明】

基于springboot实现自习室预订系统的设计与实现演示 摘要 在网络高速发展的时代,众多的软件被开发出来,给学生带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,学院只能以学生为导向,所以自习…

verdi显示OVM/UVM Hierarchy View

verdi显示OVM/UVM Hierarchy View 背景 使用vcsverdiUVM进行UVM debug的时候,verdi加载的时候看不到UVM树形结构图 解决办法 simv UVM_VERDI_TRACE“UVM_AWAREHIER” -guiverdi 2023-10-9 打开界面后,并不会直接显示树形层级 需要先仿真一定时间&#x…

工资「喂饱肚子」,副业「养活灵魂」!职场人的生存之道

文章目录 工资:生计的基础1. 收入局限性2. 缺乏多样性3. 有限的时间投入 副业:充实生活的机会1. 增加收入2. 提升技能3. 追求兴趣4. 增强创造力5. 实现梦想 如何找到适合的副业?1. 确定兴趣和技能2. 市场需求3. 时间和资源4. 资金投入5. 建立…

vue elementui <el-date-picker>日期选择框限制只能选择90天内的日期(包括今天)

之前也写过其他限制日期的语句,感觉用dayjs()的subtract()和add()也挺方便易懂的,以此记录 安装dayjs npm install dayjs --save dayjs().add(value : Number, unit : String); dayjs().add(7, day); //在当前的基础上加7天dayjs().subtract(value : N…

ElasticSearch搜索引擎常见面试题总结

一、ElasticSearch基础: 1、什么是Elasticsearch: Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。全文检索是指对每一个词建立一个索引&am…

“微信多账号聚合聊天:轻松管理,高效沟通“

一、什么是微信多账号聚合聊天? 微信多账号聚合聊天,顾名思义,就是将多个微信账号聚合在一个聊天窗口中进行管理,实现一键切换,快速沟通。这不仅省去了频繁切换微信账号的麻烦,还提高了沟通效率。 二、微…

可拓展的低代码全栈框架

尽管现在越来越多的人开始对低代码开发感兴趣,但已有低代码方案的局限性仍然让大家有所保留。其中最常见的担忧莫过于低代码缺乏灵活性以及容易被厂商锁定。 显然这样的担忧是合理的,因为大家都不希望在实现特定功能的时候才发现低代码平台无法支持&…