为了账号安全,请及时绑定邮箱和手机立即绑定

android源码编译(ubuntu16.04 64位)

标签:
Android

编译步骤

1. 源码下载;
2. 构建编译环境;
3.编译源码;
4.运行.

编译之前首先要下载和安装repo和gitt工具。

repo和git

Google采用Git对AOSP项目进行多仓库管理.
为了方便需要,对git语句进行了封装,也就形成了repo.

创建编译文件夹

$ mkdir source$ cd source

注意,这个文件夹所在的磁盘空余要大于100G,编译后需要很大的空间。

初始化仓库

$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

使用的清华的镜像服务器。

下载代码

$ repo sync

同步的时间很长,建议晚上睡觉前去同步。大概需要几个小时。

安装JDK

AOSP开源中,主分支使用Ubuntu长期版本开发和测试的,因此也建议你使用Ubuntu进行编译,下面我们列出不同版本的的Ubuntu能够编译那些android版本:

Android版本编译要求的Ubuntu最低版本
Android 6.0至AOSP masterUbuntu 14.04
Android 2.3.x至Android 5.xUbuntu 12.04
Android 1.5至Android 2.2.xUbuntu 10.04

对应的sdk版本:

Android版本编译要求的JDK版本
AOSP的Android主线OpenJDK 8
Android 5.x至android 6.0OpenJDK 7
Android 2.3.x至Android 4.4.xOracle JDK 6
Android 1.5至Android 2.2.xOracle JDK 5

*本次使用OpenJDK 8

$ sudo apt-get update$ sudo apt-get install openjdk-8-jdk

安装依赖的库

$ sudo apt-get update$ sudo apt-get install git-core gnupg flex bison gperf build-essential$ sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386$ sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache$ sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

开始编译

编译目标格式说明

编译目标的格式:BUILD-BUILDTYPE,比如上面的aosp_arm-eng的BUILD是aosp_arm,BUILDTYPE是eng.

BUILD指的是特定功能的组合的特定名称,即表示编译出的镜像可以运行在什么环境.其中,aosp(Android Open Source Project)代表Android开源项目;arm表示系统是运行在arm架构的处理器上,arm64则是指64位arm架构;处理器,x86则表示x86架构的处理器;此外,还有一些单词代表了特定的Nexus设备,下面是常用的设备代码和编译目标

$ source build/envsetup.sh$ lunch aosp_arm64-eng============================================
PLATFORM_VERSION_CODENAME=Q
PLATFORM_VERSION=Q
TARGET_PRODUCT=aosp_arm64
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-131-generic-x86_64-Ubuntu-16.04.5-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PI
OUT_DIR=out
============================================$ make -j8

通过-j参数来设置参与编译的线程数量,以提高编译速度.比如这里我们设置8个线程同时编译。

需要注意的是,参与编译的线程并不是越多越好,通常是根据你机器cup的核心来确定:core*2,即当前cpu的核心的2倍。

执行成功的结果:


webp

image.png

我这编译了四个小时。。。。

运行模拟器

$ source build/envsetup.sh$ lunch

lunch时,选择刚才设置的目标版本。

$ emulator

运行结果:

webp

image.png



作者:漫步_9378
链接:https://www.jianshu.com/p/639244de4577


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消