Ubuntu linux编译Android源码

android studio 下载 | 2018-11-13 14:00

1.如何在你的电脑上安装一个编译所需要的linux系统,ps:教程以U盘安装ubuntu为例,实现的是双系统而不是基于虚拟机,笔者是进行win8和ubuntu的双系统安装,其他的方法都是一样; 2.如何在安装好的ubuntu系统上进行翻墙,本文中给的翻墙的方法有两种,分别为修改hosts文件和使用shadowsock; 3.如何在安装好的ubuntu系统上进行安装java和配置java环境和安装编译时所需要依赖文件; 4.如何进行配置同步源码所需要的文件以及同步源码的方法步骤; 5.如何进行编译同步好的源码; 6.如何解决在编译源码中出现的错误;ps:可能以后补充 7.如何了解源码目录下的各个文件夹的作用;第二部分正式进入教程:安装ubuntu系统首先在windows下进入磁盘管理,找出其中最大的一个磁盘,右击~压缩卷,根据你的磁盘大小来输入被压缩出来磁盘大小 接着下载一个ubuntu系统这是官方下载地址  你们根据自身电脑的配置和位数可以随意下载喜欢的版本,不过笔者建议下载ubuntu14.04LTS已经足够使用。 ps:此操作最好在64位的电脑下完成,因为笔者没有在32位下测试过,具体的32位安装和配置java环境大家可以百度搞定,同步源码和编译源码部分基本一致。 接下来就是把下载的ubuntu系统镜像刻录到U盘中,用到的工具是软碟通,该工具的使用方法百度有很多在这里就不再赘述,刻录完成不要把U盘拔出,重启计算机, 从U盘启动,笔者笔记本是acer系列的,开机按下f12即可选择先启动哪个设备,具体操作可以自行百度有更加详细的教程 稍等片刻后,将进入ububtu14.04的安装界面,这里我们选择了“中文(简体)”,然后单击安装 接着出现连接互联网提示,为了安装进度我们选择不联网然后是安装类型,选择其他选项,找到刚才在windows下压缩的空闲磁盘,选中空闲磁盘然后点击左下方的“+”,

上一步骤点“+”,进行如下设置: 挂载点:(不设置) 大小:3072MB(网上认为是物理内存的2倍,其实3G就够用了,不过你也可以根据自身情况来决定) 新分区的类型:逻辑分区 新分区的位置:空间起始位置 用于:交换空间 第一次分区完毕第二次分区:“空闲”处,继续点“+”,如下设置, 挂载点:/boot  (网上有的说不需要设置这项,但双系统引导时需要) 大小:250MB(笔者设置为250MB,你也可以根据自身情况来决定) 新分区的类型:主分区 新分区的位置:空间起始位置 用于:EXT4日志文件系统 第二次分区完毕第三次分区:“空闲”处,继续点“+”,如下设置, 挂载点:/ 大小:(剩余全部空间,剩下显示多少,就多少) 新分区的类型:逻辑分区 新分区的位置:空间起始位置 用于:EXT4日志文件系统 第三次分区完毕分区设置完毕后,下方还有一项“安装启动引导器的设备”,

如果选择默认,则是ubuntu引导windows8,到时候卸载ubuntu时,可能会麻烦些,

如果想用windows8引导ubuntu,请选择你/boot所在的盘符,之后还要在windows下安装引导类的软件,才能启动ubuntu,过程会 复杂些。

这一步骤请大家慎重选择,笔者选择的是/boot所在的盘符选项。

之后的步骤就没什么复杂了,按着提示点击“继续”就行了,有一项选择键盘布局的,默认是“汉语”,建议大家选择“英语(美国)”,

还有一步是设置一些个人信息,请按提示输入,然后点击“继续”

然后。。。。。等待片刻,安装就完成了。

至此,“win8+ubuntu 14.04双系统安装方法”到此结束。

配置java环境及安装依赖文件

因为编译kitkat 4.4和lollipop 5.0源码所需要的java版本不同,所以笔者会一一写出 ps: kitkat 4.4编译要用jdk 6u45以上版本(sun官网的版本 而非openjdk)

JDK安装终端输入:

sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java7-installer

安装依赖文件终端输入:

sudo apt-get update && sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib

完成以上步骤,检查java是否安装成功

终端输入:

java -version

出现下图,则安装成功 ps:下图不是ubuntu系统,而是xbuntu 是什么鬼,大家可以百度脑补一下。

sudo apt-get install openjdk-8-jdk openjdk-8-jre

完成以上步骤,检查java是否安装成功,和第一个同理终端输入:

java -version

用命令卸载,比如卸载openjdk:

sudo apt-get purge openjdk

如果你是使用的oracle下载的bin文件安装配置的jdk,那么删除配置,删掉bin安装jdk的文件夹就行。

终端输入:

sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev

提取SDK到你的主目录(Home)

为了更好的说明,我重命名我的 SDK 为 Sdk

Home主目录下,按 Ctrl+H 显示隐藏的文件,找到并打开 .bashrc

在最后加入以下代码 (Sdk为你的sdk名字,为了方便你可以改成和我一样)

加入的代码如下:

#Android toolsexport PATH=/Android/Sdk/platform-tools/:$PATHexport PATH=/Android/Sdk/tools/:$PATHexport PATH=~/Android/Studio/bin/:$PATHexport PATH=~/bin/:$PATHexport USE_CCACHE=1

Home主目录下找到.profile并加入

PATH=”$HOME/Android/Sdk/tools:$HOME/Android/Sdk/platform-tools:$PATH”

在终端中输入android检查更新

同步安卓源码 以同步cm11源码为例

终端输入:

mkdir -p ~/bin //该行代码意思是在主目录建立bin文件夹

curl -repo-downloads/repo > ~/bin/repo //把repo文件下载到bin文件夹

chmod a+x ~/bin/repo //给repo付权限

echo “export PATH=~/bin:$PATH” >> ~/.bashrc //给bin文件夹设置环境变量,并加到.bashrc 完成该步骤把电脑重启一下再进行以下步骤

repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 //这行代码的意思是cm11源码的下载地址,

如果想要同步cm12,则是输入

repo init -u  -b cm-12.0

其他的同理。

git config –global user.email “”

//输入你的邮箱地址,例如:我的是git config –global user.email “”git config –global user.name “Your Name”

//再输入你的邮箱名字,例如:git config –global user.name “Starstok”

出现下图则已经开始同步,接下来就是等待下载完成 ps:cm11源码大小是16GB左右

编译同步好的安卓源码 以编译小米2cm11为例

笔者给的方法是手动加入该机的文件进行编译 ,更多方法大家可以百度了解

浏览器进去 CM源码地址在搜索栏输入 xiaomi如图,分别进入下载

如图,选好版本,点击右下角Download zip进行下载

两个文件都下载完成后,分别进行解压

把带有device的字样解压到cm11/device/xiaomi/aries把带有kernel的字样解压到cm11/kernel/xiaomi/aries

再到cm11/device/xiaomi/aries下,打开cm.dependencles.mk

把里面所提到的文件都在 CM源码地址 搜索下载解压到相对应的目录,完成以上操作,终端确保在cm11目录

终端输入:

cd ~/cm11/vendor/cm //进入到cm文件夹

./get-prebuilts //运行当前目录的get-prebuilts脚本

终端输入:

开启ccache,加速编译过程

export USE_CCACHE=1

. build/envsetup.sh //加载所有源码

brunch aries //开始编译,接下来就是等待了,

编译完成会在

~/cm11/out/target/product/xiaomi/aries目录下生成zip文件复制到手机上卡刷入即可 ps:编译cm11需要的时间是3-4个小时,时长根据电脑的配置来决定。

还可以尝试使用以下命令来编译: