admin管理员组

文章数量:1794759

Android 11源码下载和编译

Android 11源码下载和编译

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

Android 11源码下载和编译

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

一、源码下载

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

#下载repo mkdir ~/bin PATH=~/bin:$PATH curl storage.googleapis/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 aosp.tuna.tsinghua.edu/platform/manifest -b android-11.0.0_r3 --repo-url=gerrit-googlesource.lug.ustc.edu/git-repo #同步代码 repo sync -c --no-tags

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

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

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

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

    不过使用清华的源,repo-url应该用mirrors.tuna.tsinghua.edu/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一下就好了。

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

  • 清华大学 AOSP 镜像: mirrors.tuna.tsinghua.edu/help/AOSP/.
  • 中国科技大学 AOSP 镜像: mirrors.ustc.edu/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使用source.android.google/setup/create/avd 结果:编译成功,编了17个半小时,j1太慢了下次试试j2。截图如下 打开虚拟机执行下面命令成功运行模拟器:

    . build/envsetup.sh lunch 31 emulator

    截图如下: 这里只出过一个问题,就是out of memory,无论我是直接make还是make -j2都会报错,没办法只能把虚拟机内存调到12G,然后用make -j1编译. 哎,希望以后我这小笔记本还带的动Android源码。

    本文标签: 源码下载android