Ubuntu下载编译安卓源码
踩坑指南:
一定要使用 Ubuntu或者MAC ,至少官方推荐是这样的。Liunx中是 Ubuntu14.04 较好,其他的版本也行。其他Liunx开发版不是不可以,只是错误需要自己排除,大神随意,有时间研究请随意。
我使用的是16.04,编译下载的分支是android7.0.0_r33,之前也用了manjaro、deepin玩玩,但是在Ubuntu上是最顺畅的,基本上没什么错误,可以说是傻瓜式安装编译。
内存一定要大。最好是200G以上,不然可能源码都下不完,下载编译最少150G,越多越好。
网络一定要好,不能断网。虽然说repo可以断点续传,但是也有人说会下载一系列不需要的压缩包,总之不能踩坑。
本文内容:
- Ubuntu 安装
- 下载源码
- 编译
Ubuntu 安装
系统安装
- 双系统
找到了网络上几篇比较好的文章,可以对照着进行双系统安装。
(1)比较全面的文章: windows10安装ubuntu双系统教程(绝对史上最详细).注:本文使用的图片较多是网上搜集的,需要自己甄别。
(2)我参照的相关文章:手把手教你安装win10+Ubuntu16.04的双系统(全网最详细).(公众号:小詹学Python的一篇微信文章,由于微信链接会过期,右键手动搜索)。
本文的重点:
上面两篇文章讲解的非常详细,我就不多做赘述,分区还是多多注意。重点还是分区,千万不能选错,一定要选择其他,不然win很有可能格式化,十分重要!!!!!
我只分了5个:/,/boot,efi,swap,/home
上面文章只是我的推荐和参考,安装系统还是多搜索一些教程,避免踩坑!!当然有博客有坑,慎入。
双系统双硬盘分区示例(仅作参考,摘自手把手教你安装win10+Ubuntu16.04的双系统(全网最详细)):
- 单系统:电脑只安装Ubuntu
请随意浪!
基础设置
安装之后一些基本的设置,当然这一步可以跳过:
- 不嫌麻烦先跑一遍
sudo apt upgrade
sudo apt update
- 一些基础的设置、语言之类:略(滑稽)
注(重要):更换官方源=》设置->软件和更新->选择清华源、中科大、阿里均可
#再来麻烦一遍
sudo apt upgrade
sudo apt update
不更换的话,下载速度超级慢,最好是先更换源,直接省略第一步。
3. 升级python,源码下载需要使用python3.6+,Ubuntu 16.04自带3.5,先升级。源码下载编译:在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3. 现有教程不再赘述。
比较坑的是编译需要一段时间的test,大概半个小时左右的时间。
4. 安装配置git
这一步比较简单:
#再来麻烦一遍
sudo apt-get install git
git config --global user.email "1234567890@qq.com"
git config --global user.name "name"
git config -l
- 安装JDK
源码的编译对于JDK版本有要求,Android5以上使用openJDK,之前版本使用Oracle JDK。具体见表1。可以在此查询。
Android版本 | 编译要求的JDK版本 |
---|---|
AOSP的Android主线 | OpenJDK 8 |
Android 5.x | android 6.0 OpenJDK 7 |
Android 2.3.x | Android 4.4.x Oracle JDK 6 |
Android 1.5 | Android 2.2.x Oracle JDK 5 |
本文编译的是Android7.0版本,需要安装OpenJDK8.
sudo apt-get install openjdk-8-jdk
安装过程中可能会让你添加一些依赖,确认即可。
源码下载
最坑也是最浪费时间的一部分来了,这一部分需要使用非常非常多的内存,重装Ubuntu 也是这个原因,之前的deepin大概分了90G,结果,你懂得!
此次分300G,用于征战下载编译过程。
- 搭建编译环境
官方网站编译的描述十分详细,尽量还是一步步照着来。
大概分两个步骤:
(1) jdk安装。已完成
(3)USB和输出配置,详见链接喽!
(2)依赖项目:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
- 下载源代码
官方源代码仓库以及下载方式,官方的比较慢,国内还是需要使用镜像源,常用清华源、中科大等等,我之前下载都是使用清华源,一直出现git错误,文件下载不完整,看到官网有维护,不知道是不是这个原因,偶然间看到清华源官网推荐的北外源,同样是TUNA维护,稳定性应该还行,准备测试一波,上北外首页链接,然后是AOSP链接。首选自然还是清华,至于原因……
帮助比较详细,只要网络好几乎是傻瓜式下载,当然前提是你的硬盘足够大。
注意:repo的时候只有一个.repo的隐藏文件,下载完成之后会自动释放出art,frame,……,如果不需要应该可以删除,只不过不能repo sync同步了。
可选:中科大镜像
repo结束是这个样子(下载了100G,我吐了,幸亏是晚上下载的)
当你再去执行
repo sync
不会重新下载,只进行同步检查,当然你要是把.repo文件夹删了,怎么样咱也不清楚,不想再来一晚上。
源码编译
首先,毫无疑问,自然是官方网站教程,真机调试烧录镜像可能需要驱动,我没这个需求,所以没下下载,下载方式很简单,进入上面的官方网站,找到驱动下载页,下载相应分支的版本的驱动进行安装,最好不要下错。
下错了没关系,你可以手动删除!(文字滑稽)
编译也是傻瓜式:
(1)初始化环境
source build/envsetup.sh
(2)选择设备:输入命令,根据提示选择相应的设备,设备类型有3:
#命令后直接输入你需要版本的数字
lunch
编译类型 | 使用情况 |
---|---|
user | 权限受限;适用于生产环境 |
userdebug | 与“user”类似,但具有 root 权限和可调试性;是进行调试时的首选编译类型 |
eng | 具有额外调试工具的开发配置 |
(3)开始编译
#j后面数字为线程数,谨慎填写
make -j4
接下来就是非常漫长的等待
编译过程中可能出现一些错误,可以谷歌/百度解决,应该问题不大。
最后结果是……(到此刻,我将近200多G的内存感觉已经见底了)
到此刻,我将近200多G的内存感觉已经见底了,(夸张,大概也就是150G左右),一共编译两个小时,至于什么效果,能不能用……先去测试一波。
有疑问欢迎留言。