首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android源码编译(ubuntu16.04+android P)简介

Android源码编译(ubuntu16.04+android P)简介

作者头像
用户2929716
发布2018-08-23 13:28:06
1.7K0
发布2018-08-23 13:28:06
举报
文章被收录于专栏:流媒体流媒体

简介

  • vmware+ubuntu+openjdk+git 环境配置
  • 源码下载
  • 源码编译

1 环境配置

先看下我的计算机的配置

computer.png

1.1 安装VMware

这里我们使用虚拟机来安装ubuntu。至于VMware具体安装方法大家自行百度。这里贴出我所用的版本。

vmware.png

安装完VMware后就是安装ubuntu。先下载系统镜像ubuntu

ubuntu.png

1.2 安装ubuntu

接下来就是在vmware中安装ubuntu。步骤大家可以自己百度,这里就不再累述。但有一点要注意给ubuntu分配的空间一点要充足。我建议150G以上,否则到时候编译了一半,空间不足那就很尴尬了。我就吃过这个亏,所以这个坑大家尽量跳过。这里贴出我的配置:

ubuntu_set.png

以上安装完ubuntu后。我们启动ubuntu,开始安装必备的软件。

1.3 安装git
sudo apt-get install git

然后配置用户信息

$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

更多的操作可参考Git常用命令

1.4 安装openjdk

Ubuntu16.04的安装源已经默认没有openjdk了,所以要自己手动添加仓库

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

开始安装

sudo apt-get install openjdk-8-jdk 

由于这里我们是编译最新的android源码,所以安装的是jdk8。 如果是编译其他版本则,按照需要去安装对应的版本。

1.5 安装必须的依赖
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 
sudo apt-get install libc6-dev-i386 
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache

这里我已亲测安装时没什么问题的。 到现在为止,我们的编译环境已经准备完毕了,接下来就是下载源码了

2 源码下载

由于android的源码很大,而且有些地方还需要访问外国网站。所以我们使用清华大学的镜像。详细步骤Android 镜像使用帮助有详细说明。这里我就简要写下步骤。

2.1 配置repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

这里最好将加入到环境变量中,这样以后每次启动都不用再设置PATH

vim ~/.bashrc

bashrc.png

在最后两行设置PATH。最后刷新。

source ~/.bashrc
2.2 下载初始化包

由于源码很大,直接下载可能中途会失败、或者很慢的情况,所以这里先下载初始化包。大概有30几个G

2.3 下载完后解压得到aosp文件夹
2.4 同步代码

所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以aosp解压后只有 .repo 目录。进入到aosp同步一下即可得到代码。

repo sync

3 编译

3.1 初始化编译环境

进入到源码根目录下

source build/envsetup.sh
3.2 选择编译选项
lunch aosp_arm64-eng

或者直接输入lunch。

142377-030890ab8be7bc46.jpg

然后选择自己想要的类型。这里我们就选择第一个aosp_arm-eng。

3.3 开始编译
make -j4

注意这里的-j4,要根据自己机器的cpu核心数来决定。我这里用的是4个线程。 接下来就进入到了编译过程。这将会是一个漫长的过程。根据你机器的配置所消耗的时间也不一定,而我这里花了接近1个小时40分钟(看来我的机器还是挺给力的,哈哈!)。当你看到最后一串绿色的#### build completed successfully **** ####说明你已经成功了

QQ截图20170929230721.png

3.4 启动模拟器

直接在当前终端输入

emulator

3.png

QQ截图20170929231629.png

大功告成。

3.5 镜像文件

编译产生的文件就在 out目录下。而最终的三个镜像文件ramdisk.img,system.img,userdata.img以及它们对应的目录树root在 out/target/product/generic

  • ramdisk.img是根文件系统
  • system.img包括了主要的包、库等文件
  • userdata.img包括了一些用户数据,android加载 这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础

img.png

3.6清理编译生成的文件
make clobber

也就是删除了out目录以及下面的所有的文件。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.10.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 1 环境配置
      • 2 源码下载
        • 3 编译
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档