目录

  • Android 11源码下载和编译
  • 一、源码下载
  • 二、源码编译

Android 11源码下载和编译

最近摸了快好久的鱼了,感觉人都快废了。刚好这两天固态降价了,买了个sn550当移动硬盘跑Android 11源码,毕竟8.1的还是太老了,现在手机厂商都是基于Android 11或是升级到Android11的。用的环境还是Ubuntu18.04,环境配置请看上篇文章:从零开始学习Android Framework.

一、源码下载

下载方式非常简单,下面是我使用的命令:

#下载repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
#创建并初始化android-11.0.0_r3仓库目录
mkdir android-11.0.0_r3
cd android-11.0.0_r3
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r3 --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
#同步代码
repo sync -c --no-tags

我使用的是清华的源,提几个要注意的点,避免大家踩同样的坑:

  1. 使用他们提供的repo,不要用自己apt-get下载的,不然会报如下错误,这个错让我蒙逼了好久

  2. 记得加上**–repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo**,否则就会报如下错误,

    fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
    fatal: error [Errno 110] Connection timed out
    

    不过使用清华的源,repo-url应该用https://mirrors.tuna.tsinghua.edu.cn/git/git-repo,但是这样也没报错,能正常使用
    原因: repo 每次执行的时候都会去检查更新自己,但是网站被墙了.
    报错截图如下:

    下面就是正常初始化仓库的截图:
    后面就是漫长的同步过程了。

    同步时空间不足,报错no space,我一想我特地怕空间不够买了个1t固态,把整个虚拟机移动到固态里了,还把之前分配的250G改成了500G,咋还空间不足呢,df -h查看果然总空间只有250G,占用100%,我以为是不是新分配的空间要重启才会生效,直接重启虚拟机结果尬在了开机阶段,百度了下解决方法:Ubuntu无法进入图形化界面(报错/dev/sda1:clean的解决).
    能够进入桌面了,但空间还是不足,百度了下怎么给sda1扩容:虚拟机里ubuntu扩容主分区/dev/sda1.
    我用gparted打开只有个/dev/sda1分区,把他扩容到500G,其他的分区没管。重新启动后df -h产看果然有500G了,继续同步代码。
    然后又报错了,不过按照提示加上-j1 --fail-fast参数,出错时快速停止。因为同步代码时出错基本都是由于网络原因导致,所以出错了马上再repo sync就行了,我这里repo sync一下就好了。

当然如果上述内容无法解决你的问题,您可以访问国内源对应的网址,自己研究下,按照他们提供的方法下载源码即可:

  1. 清华大学 AOSP 镜像: https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/.
  2. 中国科技大学 AOSP 镜像: https://mirrors.ustc.edu.cn/help/aosp.html.

二、源码编译

编译还是和android 8一样,使用命令如下:

# 初始化编译环境( .可以用source代替,如 source build/envsetup.sh )
. build/envsetup.sh
# 执行
lunch
# 我这里使用模拟器所以选择 31 (即aosp_x86_64-eng)
Which would you like? [aosp_arm-eng] 31
# 开始编译(这里怕我电脑扛不住用的-j1,电脑好的可加大力度)
make -j1

这里lunch选择的时候我看别人推荐的都是

lunch sdk_phone_x86_64

我只知道lunch的选择不同使编译时make的模块会稍有不同,目前我lunch 31没啥问题所以就不改了
Google官网的AVD使用https://source.android.google.cn/setup/create/avd
结果:编译成功,编了17个半小时,j1太慢了下次试试j2。截图如下

打开虚拟机执行下面命令成功运行模拟器:

. build/envsetup.sh
lunch 31
emulator

截图如下:

这里只出过一个问题,就是out of memory,无论我是直接make还是make -j2都会报错,没办法只能把虚拟机内存调到12G,然后用make -j1编译.

哎,希望以后我这小笔记本还带的动Android源码。

Android 11源码下载和编译相关推荐

  1. Android系统源码下载与编译、刷机--Nexus6实测

    前言 此博文记录一下Android从系统源码下载到刷机的全过程. (https://source.android.com/source/build-numbers.html 页面中列表信息找到自己设备 ...

  2. android 例子源码_AOSP系列文章(一)-Android系统源码下载和编译

    前期准备 从这里开始,我们就去做android系统的修改,相信会有更多的同学有更多的玩法. android是开源的,在源代码里没有秘密. 同学们可以去修改系统,做成自己喜欢的样子.做汽车的车机,到家里 ...

  3. android内核源码下载和编译

    1.下载编译 新建kernel目录 ~/srcAndroid/src4.4.4_r1/kernel目录下,输入命令: seven@ThinkPad:~/srcAndroid/src4.4.4_r1/k ...

  4. Android kernel源码下载与编译

    构建内核 本页详细介绍了为 Android 设备构建自定义内核的流程.以下说明会逐步指导您如何选择正确的源代码,编译内核,以及将结果嵌入到根据 Android 开源项目 (AOSP) 编译的系统映像中 ...

  5. Android12 源码下载、编译、刷机、单编调试Framework

    文章目录 说明 1. 代码下载 1.1 下载Repo工具 1.2 安装和配置Git 1.3 创建工程目录 1.4 初始化Repo仓库 1.5 同步代码 2. 驱动下载 2.1 下载对应机型的驱动 2. ...

  6. VLC for Android源码下载和编译

    Project Hosting on 点击打开链接 最受欢迎的开源项目 点击打开链接 由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. ...

  7. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...

  8. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译...

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:item.jd.com/12212640.ht- 试读地址:www.epubit.com ...

  9. Android 4.0.1 源码下载,编译和运行

    [牛人分享]Android 4.0.1 源码下载,编译和运行 转自 http://blog.csdn.net/rambo2188/article/details/6943382 ----------- ...

  10. android源码下载以及编译自己的ROM

    android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...

最新文章

  1. CSS中各种各样居中方法的总结
  2. 看动画轻松理解“递归”与“动态规划”
  3. php 生成wsdl工具,php中使用zendstudio 12为soapserver生成wsdl文件
  4. 移动端下拉刷新原理和实例
  5. 用Python的Tultle模块创建一个五角星
  6. vuex 的 action 传参问题
  7. ora错误匹配java_上周上线碰见的ORA-00054错误回放
  8. 智慧社区防控(测温)
  9. java用cmd编译access数据库_java直接存取MS Access的mdb数据库文件
  10. 200 行代码解读国产数据库阿里 OceanBase 的速度源头!| CSDN 博文精选
  11. Practical Machine Learning实用机器学习 章1
  12. docker容器网络通信原理分析
  13. 使用ffpemg无损快速从视频中提取音频的操作教程(记录笔记超详细)
  14. 【美】纳西姆·尼古拉斯·塔勒布 - 随机漫步的傻瓜(2013年7月8日)
  15. 【转】Spring横切面(advice),增强(advisor),切入点(PointCut)(JAVA后端)
  16. Python:数据导出到Excel(使用xlwt)
  17. 一般企业应用上云架构实践
  18. Unity3D摄像机远、近切面绘制
  19. ebs克隆oracle not,Oracle EBS 12.1.3 Rapid Cloning 克隆
  20. 2021-11-19周赛总结

热门文章

  1. 空格表示 java_java 正则表达式 空格怎么表示
  2. Jmeter(十七)Logic Controllers 之 Interleave Controller
  3. HDU 5348 MZL's endless loop(DFS去奇数度点+欧拉回路)
  4. 阿里大于短信返回XML
  5. MVC4 EF6 MYSQL
  6. MySQL中修改root密码的方法
  7. 一张有转折意义的神秘地图
  8. linux常用命令行编辑快捷键
  9. 如何提高go代码覆盖率_我是如何把5万行C++代码移植到Go的?
  10. QML 获取当前时间戳 yyyy-MM-dd hh:mm:ss.zzz