一、环境搭建、配置,Virtualbox安装,ctags安装,常用命令的使用,log函数使用:
Android2.3源码已经获取
1、选择合适java虚拟机
列出当前java-vm所有版本,任何路径下输入命令,该命令无法联想:
# eselect java-vm list
如果显示如下:
Available Java Virtual Machines:
[1] icedtea6-bin system-vm
[2] sun-jdk-1.6 -----说明当前系统使用的java-vm版本是1.6
如果当前版本不是你所要的,可以通过以下命令设定系统当前要使用的java-vm版本,有1.5指到1.5,没有则指到1.6
# eselect java-vm set system 2
注释:数字2代表list命令显示的序号[2]//修改过
2、修改main.mk中的java版本
原因:jdk版本需要与android java版本一致,当前从公司服务器上下载的jdk版本为1.6,用命令emerge -s jdk可以查看到virtual/jdk下当前安装的版本,而android java版本默认为1.5,需要修改android java版本为1.6,修改方法:
在文件build/core/main.mk
1》# Check for the correct version of java
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
修改: 将数字5改成6
2》# Check for the correct version of javac
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
修改成:将数字5改成6
3、设置Android的环境变量
1》export ANDROID_JAVA_HOME=$JAVA_HOME(该修改只对本次生效,电脑重启后需要重新设置,否则编译报错
2》如果希望环境变量在电脑重启后仍然生效,需要将该环境变量设置直接添加到/etc/profile中,命令vi /etc/profile进入该文件,直接将export ANDROID_JAVA_HOME=$JAVA_HOME命令复制
原因:系统启动阶段startx会执行该文件
注:前提条件是先配置好JAVA环境变量(在etc/profile中增加如下内容)
export JAVA_HOME=/opt/sun-jdk-1.6.0.20
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
4、完全编译整个工程
进入Android2.3源码工程根目录mydroid下输入 make
localhost mydroid # make
出现以下信息:
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.2.1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=MASTER
编译成功会出现Install: out/target/product/generic/system/app/Mms.apk,这是相对路径
编译后生成的文件放在目录/work/mydroid/out/target/product下,编译成功后的目录默认为generic,运行在模拟器上,在generic目录下中生成的重要文件夹system、root、data,其对应的还有三个镜像文件system.img、ramdisk.img、userdata.img(这三个文件时Android模拟器运行关键文件,放在android-sdk-linux/plateforms/android-8/下面)。
清空编译命令 #make clean
清空后product下的generic整个目录将被清除