Ubuntu16.04 Android4.4 编译配置

编译环境:

    linux : ubuntu 16.04  内存2G  处理器 2核  缓存5G  硬盘100G
    虚拟机: VMware 12 Pro  
    Android版本:Android4.4

说明:

    1.需要内存要大于1G,我用1G内存编译提示内存分配失败。
    2.在虚拟机上编译,需要增加缓存的大小,我配置的是5G
    3.本文编译的不是Android原生的源码,是全志提供的SDK  针对T-Foucs T3 设备

(一)代码下载

(1)repo下载和安装

Android使用repo管理代码,所以需要在linux上安装repo

1、根目录下创建.bin文件夹
mkdir ~/.bin

2、配置为临时环境变量(也可配置为永久的)
PATH=~/.bin:$PATH

3、下载repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

4、将git-repo中的repo文件复制到 1 创建的.bin目录中
cd git-repo 
cp repo ~/.bin/

5、修改权限
chmod a+x ~/.bin/repo

6、创建同步源码的工作目录
mkdir android_source

7、在工作目录中创建.repo目录
cd android_source 
mkdir .repo

8、将下载的git-repo拷贝到.repo下,并改名为 repo 

9、可以初始化git代码了    

(2)下载代码

代码下载这里只是个示例,需要自己去找自己需要下载版本的链接。

cd android

初始化代码仓:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

同步代码:
repo  sync

(二)安装依赖库

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

(三)安装JDK6.0

Android4.4 依赖的是JDK6.0,不能直接使用命令apt-get install,据说是版权问题,可以自己安装。我使用的是Linux x64 JDK6

可以在下面链接下载Linux x64 JDK6:

链接:https://pan.baidu.com/s/1LaW5twh_90vztSFPKxkspg 
提取码:gggb 

下载解压后将bin文件拷贝到linux系统下,切换到root权限

# mkdir /usr/java    创建安装路径

# ./jdk-6u45-linux-x64.bin   完成安装

设置环境变量

# vim /etc/profile

在打开的文件末尾添加一下内容:
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

然后保存,关闭文件
设置默认的SDK

sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_45/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_45/bin/javac 300

更新环境变量
# . /etc/profile

查看当前Java版本
# java -version

显示如下内容说明安装成功,可以开始工作喽:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

(四)编译Android4.4代码

(1)初始编译环境

source build/envsetup.sh

biao@ubuntu:~/android$ source build/envsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/softwinner/t3-p3/vendorsetup.sh
including device/softwinner/t3-adas/vendorsetup.sh
including device/softwinner/t3-23m/vendorsetup.sh
including device/softwinner/t3-p2/vendorsetup.sh
including device/softwinner/t3-p1/vendorsetup.sh
including device/softwinner/common/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including sdk/bash_completion/adb.bash
biao@ubuntu:~/android$ 

(2)选择编译目标

执行lunch命令:

biao@ubuntu:~/android$ lunch 

You're building on Linux

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_x86-eng
     3. aosp_mips-eng
     4. vbox_x86-eng
     5. aosp_tilapia-userdebug
     6. aosp_flo-userdebug
     7. aosp_grouper-userdebug
     8. aosp_deb-userdebug
     9. mini_mips-userdebug
     10. mini_x86-userdebug
     11. mini_armv7a_neon-userdebug
     12. t3_p3-eng
     13. t3_adas-eng
     14. t3_adas-user
     15. t3_23m-eng
     16. t3_23m-user
     17. t3_p2-eng
     18. t3_p1-eng
     19. t3_p1-user
     20. aosp_manta-userdebug
     21. aosp_mako-userdebug
     22. aosp_hammerhead-userdebug

Which would you like? [aosp_arm-eng] 18

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
TARGET_PRODUCT=t3_p1
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a7
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.8.0-36-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=KOT49H
OUT_DIR=out
============================================

biao@ubuntu:~/android$ 

(3)拷贝硬件相关文件

执行命令:extract-bsp

    该步骤是在全志平台上有的,其它平台不一定相同。主要进行的是将linux中更硬件平台相关的文件拷贝到Android相应的目录中去。

(4)编译源码

make -j2 && pack
-j2 是多线程编译,跟CPU数有关,最大是CPU数的2倍

你可能感兴趣的:(Android)