本机编译环境为linux系统,android源码为android-4.3_r1,jdk为1.6其环境搭建如下:
1.下载android源码(官网,网盘都可),请自行下载。
安装必要的开发包。在终端执行以下命令:
$sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 libgl1-mesa-glx:i386\
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxm12-utils xsltproczlib1g-dev:i386
2.下载jdk1.6.0_13并设置jdk环境如下(也可以放在~/.bashrc里面)
在文件系统目录以root身份登录并修改/etc/profile文件,在profile文件尾部添加如下内容
#set java environment
export JAVA_HOME=/home/ada/jdk6/jdk1.6.0_13
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PAT
保存后退出,执行source /etc/profile
最后测试jdk环境设置是否成功,如下所示表示成功。
3.进入所下载的android源码目录,下图为本机源码位置ls后可以看到源码各个目录文件。
4.编译android源代码
下载完android源代码后就可以对源代码进行编译了,但是在编译之前需要在android源代码的根目录执行如下命令来设置一些shell函数。
注意:如果执行成功,根据android版本的不同会输出类似如上图所示的信息。
5.设置编译目标
在编译android源代码之前要先设置编译的目标,也就是为那些设备编译android源代码。如果要让编译后的目标文件在模拟器或android真机上运行,则要执行如下命令来进行选择:
如上图所示直接选择数字序列号即可选择相应的目标并回车。本机是默认选择。
6.执行make命令
最后在android源码根目录执行make命令后就可以进行整个android源代码的编译了。编译过程时间有点长,需要耐心等待。执行的make命令如下:
如果机器是多核cpu则可以在指定编译时利用的cpu核数。如上其中-j4表示利用了4个cpu核,log.txt是编译过程中写入的log日志文件,该文件可以定位编译过程中出现的异常现象从而进行快速解决。
编译完android源代码后,会在anroid源码根目录生成一个out目录,所编译生成的目标文件都在该目录的相应子目录中。其中最重要的有三个镜像文件ramdisk.img,system.img,userdata.img,这3个文件所在的目录为out/target/product/generic。如下所示:
7.模拟器emulator的环境设置
打开.bashrc文件并设置模拟器emulator所需环境配置,在该文件中添加如下内容
保存所添加的内容后并执行source ~/.bashrc
8.启动模拟器emulator
在android源码根目录下执行emulator命令即可启动。如下所示:
至此界面出现说明成功启动模拟器。
附录:
user,userdebug,eng区别
user:设定属性 ro.secure=1,打开安全检查功能。设定属性 ro.debuggable=0,关闭应用调试功能。默认关闭 adb 功能并无法获取root权限。
userdebug:设定属性 ro.secure=1,打开安全检查功能。设定属性 ro.debuggable=1,启用应用调试功能。默认打开 adb 功能
eng:设定属性 ro.secure=0,关闭安全检查功能。设定属性 ro.debuggable=1,启用应用调试功能。默认打开 adb 功能。