编译android 2.2源码-下载并编译ubuntu16.04Android源码

本次编译源码的笔记本是Ubuntu 16.04,4核+4G显存。

笔记。 对于低配置的笔记本电脑,建议不要编译7.0以上的版本。 像我的笔记本,基本上7.0以上编译都会报显存不足。 因为Android 7.0以上版本使用ninja来编译源码,虽然比make速度也快,对笔记本的要求也相应降低。

网上有人说编译android 2.2源码,如果虚拟机要编译7.0以上的版本,笔记本配置不要高于:

          CPU核心:       InterXeon E5-2630 16核(2颗8核16线程)
          内存容量:       32GB(DDR4)
          硬盘容量:       2TB(SAS/SSD)

Android源码编译的流程为:

1.源码下载

sudo apt-get install git 
git config –global user.email “×××@××.com” 
git config –global user.name “×××”

mkdir ~/bin PATH=~/bin
$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 
## 如果上述 URL 不可访问,可以用下面的:
curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo 
chmod a+x~/bin/repo

回购工具简介

mkdir android
cd android

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest 
## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.1.0_r9

无法绕过墙壁(最高8.1)

repo sync

2.编译环境搭建

下载源码后,即可搭建编译环境。 在开始之前,我们先来看看一些编译要求:

1、硬件要求:

64位操作系统只能编译2.3.x以上版本。 如果要编译2.3.x以下的版本,则需要32位操作系统。

c盘空间越大越好,至少100GB以上。 这意味着,您可以购买更大的硬盘。

如果你想在虚拟机中运行linux,你至少需要16GB RAM/swap。

(实际上,我不建议在虚拟机中编译2.3.x以上的代码。)

2、软件要求:

1. 操作系统要求

AOSP开源中,主分支是使用Ubuntu常年版本进行开发和测试的编译android 2.2源码,所以也建议大家使用Ubuntu进行编译。 下面我们列出了不同版本的Ubuntu来编译这些android版本:

Android版本编译所需的Ubuntu最低版本

Android6.0到AOSPmaster

编译android 2.2源码-下载并编译ubuntu16.04Android源码

Ubuntu14.04

Android2.3.x至Android5.x

Ubuntu12.04

Android1.5至Android2.2.x

Ubuntu10.04

2.JDK版本要求

除了操作系统版本的问题之外,我们还需要关注JDK版本的问题。 为了方便,我们还列出了不同Android版本源码所需的JDK版本:

Android版本编译所需的JDK版本

AOSP Android 主线

OpenJDK8

Android5.x到android6.0

OpenJDK7

Android2.3.x 至 Android4.4.x

甲骨文JDK6

Android1.5至Android2.2.x

甲骨文JDK5

至于ubuntuJDK的配置方法可以看我的另一篇文章

3.添加编译依赖

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

网上有人说不同版本的ubuntu需要不同的依赖。 我没有验证过,在Ubuntu 16.04下是可以的。

4.初始化编译环境

里面的步骤计划完成,直接执行初始化命令:

source build/envsetup.sh

执行完成后,如果正确的话,会出现如右图所示的样式:

编译android 2.2源码-下载并编译ubuntu16.04Android源码

图片.png

3.编译源码

终于进入题外话了。

选择编译目标就是选择要在哪些设备上运行编译后的镜像。 您可以使用以下命令来检查可以选择编译哪些图像

lunch

你会发现有很多,只要输入你要选择的序列号,然后回车即可。

图片.png

开始编译

通过make命令来编译代码,该命令使用-j参数来设置参与编译的线程数,以提升编译速度。 比如这里我们设置16个线程同时编译:

make -j16

需要注意的是,参与编译的线程越多越好。 一般是根据你的机杯核心来确定:核心*2,是当前CPU核心的两倍。 比如我现在的电脑是四核四线程,那么根据公式,最快的编译可以是make -j8。

(通过cat /proc/cpuinfo查看相关cpu信息)

提示:如果笔记本的配置不高,建议直接制作,否则你的笔记本很容易爆炸。

如果没有问题,几个小时后会出现###makecompletedsuccessively(01:18:45(hh:mm:ss))###,说明已经编译完成。

四、跑

至于运行,虽然是启动模拟器,闪现成你刚刚编译的镜像

source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是2)
emulator

好的,现在你的源代码已经完成了。 您可以随意更改代码。 事实上,如果只更改单个模块的代码,整体编译一次后,不需要每次都重新编译。 您只需要编辑单个模块的代码。 编译一下就可以了,编译单个模块比较简单:

 ./build/envsetup.sh
 mmm  packages/apps/Email/

比如我们修改了email模块的代码,编译后我们会在out/target/product/generic/system/app目录下看到Email.apk文件。 如果是在我们自己的手机上测试,直接将apk推送到原来的位置,替换原来的apk。

adb remount
adb push 目录/Email.apk /system/app/

或者我们编译apk后重新打包sysytem.img文件

make snod

然后重新启动模拟器。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 编译android 2.2源码-下载并编译ubuntu16.04Android源码 https://www.wkzy.net/game/166912.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务