Android搭建

本文提供了一套详细的步骤,指导如何在Ubuntu 12.04/16.10环境下完成Android源码的解压、JDK配置、编译环境准备,以及Linux内核的交叉编译。涵盖了从基础的环境搭建到高级编译技巧,确保开发者能够顺利构建出所需的Android和内核镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译环境:ubuntu12.04/16.10

1、解压Android源码

7za x /media/oo/Disk2/nanopi2/android-5.1.1_r6-20160401.tar.7z.001 -onanopi2/
2、JDK配置
查看需要的jdk版本

# Check for the current JDK.
#
# For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS.
# For Java 1.6, we require Oracle for all host OSes.
requires_openjdk := false
ifeq ($(LEGACY_USE_JAVA6),)
ifeq ($(HOST_OS), linux)
requires_openjdk := true
endif
endif


# Check for the current jdk
ifeq ($(requires_openjdk), true)
# The user asked for java7 openjdk, so check that the host
# java version is really openjdk
ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You asked for an OpenJDK 7 build but your version is)
$(info $(java_version_str).)
$(info ************************************************************)
$(error stop)
从脚本build/core/main.mk观察,需要open jdk1.7,这和版权协议有关系,设置requires_openjdk := false;
下载jdk1.7
ubuntu没办法直接下载open-jdk1.7,我到甲骨文公司下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

解压jdk

tar -xvf jdk-7u79-linux-x64.tar.gz -C env/jdk1.7
设置jdk环境变量,在.bashrc添加jdk路径

export JAVA_HOME=/home/oo/env/jdk1.7/jdk1.7.0_79
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
验证jdk版本
oo@oo:~/nanopi2$ source ~/.bashrc 
oo@oo:~/nanopi2$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
3、编译Android源码

更新Android环境变量,选择版本,2线程编译,根据自己电脑实际CPU核的数量

source build/envsetup.sh
lunch aosp_nanopi2-userdebug
make -j2
编译可能会遇到缺库
ia32-libs
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install iceweasel:i386
也可以
sudo apt-get install libgl1-mesa-dri:i386
新版本的ubuntu可以直接,前提是你的source.list配置对了
sudo apt-get install lib32z1
其他库
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install gperf
sudo apt-get install libxml2-utils
sudo apt-get install curl
编译的时候,检查一下Android版本信息是否正确

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1.1
TARGET_PRODUCT=aosp_nanopi2
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-32-generic-x86_64-with-Ubuntu-12.04-precise
HOST_BUILD_TYPE=release
BUILD_ID=LMY48G
OUT_DIR=out
============================================
4、编译Linux内核

加入交叉编译路径

export PATH=/home/oo/env/arm-linux-compile/bin:$PATH
如果配置正确后依然提示错误,原因是缺少32位库,参考文章上面的ia32-libs库安装,即可解决这个问题。

ncurses库,menuconfig配置时候使用

sudo apt-get install libncurses5-dev

mkimage工具

sudo apt-get install uboot-mkimage
16.10版本可以能弃用,需要更换安装包
sudo apt-get install u-boot-tools

编译:

make nanopi2_android_defconfig
make uImage
生成内核镜像文件:arch/arm/boot/uImage

5:调试

Android调试工具

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值