专栏首页流媒体Android源码编译(ubuntu16.04+android P)简介

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

简介

  • 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目录以及下面的所有的文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux下Nginx编译安装

    yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel ope...

    用户2929716
  • flv格式详解+实例剖析

    FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地...

    用户2929716
  • 流媒体解码及H.264编码推流简介

    这里我们使用了FFmpge的sdk和Opencv的sdk。为了方便测试,我们直接使用在线的rtsp网络流。rtmp://live.hkstv.hk.lxdns....

    用户2929716
  • Ubuntu编译链接错误:cannot find -lz解决办法

    这是因为没有安装zlib库,使用如下方式安装即可: sudo apt-get install zlib1g-dev 注意有些系统上可能是: sudo ...

    一见
  • Emacs利器0x01 Ubuntu 18.04安装 Emacs25.3

    古语有说:工欲善其事,必先利其器; Emacs无疑是编程的神器。通过这一系列的小文章,让我们一起记录熟练使用和打造这一神兵利器。

    上善若水.夏
  • 在全新的Ubuntu中安装Python3 环境

    在全新的Ubuntu 18.04中已经自带了Python 3。但是这个Python环境并不完整,需要补充安装下面几个模块。

    青南
  • 在Ubuntu下安装rgl包

    生信技能树
  • Ubuntu 17.04系统下源码编译安装opencv的步骤详解

    本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装。开发环境主要针对python 对 openCV库的调用。下面话不多说了,来一起看看详细...

    砸漏
  • Ubuntu16.04 下编译安装tesseract 4.00.00alpha 及测试

    依赖图像库Leptonica,在编译tesseract前先编译Leptonica, 版本对应关系见Compiling#linux,3.05对应leptonica...

    Spaceack
  • ROS init.sh

    sudo apt-get install vim sudo apt-get install openssh-server sudo apt-get instal...

    Pulsar-V

扫码关注云+社区

领取腾讯云代金券