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 设备
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代码了
代码下载这里只是个示例,需要自己去找自己需要下载版本的链接。
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
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)
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$
执行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$
执行命令:extract-bsp
该步骤是在全志平台上有的,其它平台不一定相同。主要进行的是将linux中更硬件平台相关的文件拷贝到Android相应的目录中去。
make -j2 && pack
-j2 是多线程编译,跟CPU数有关,最大是CPU数的2倍