前提:代码已经准备好。
首先要设定环境:
USER@Android_ROOT: source ./build/envsetup.sh
这个命令设定后下一条命令才可以执行:
USER@ANDROID_ROOT: lunch full-eng
这个设定了很多环境变量,不管是编译还是模拟都要用到,
然后开始编译
make -j2
-j后面带的数字有电脑的CPU决定,如有双CPU每个CPU有4个核 则 make -j8.
编译的时间很漫长,完了后就可以开始模拟运行了
emulation
注意:如果下次打开Ubuntu的终端想要再运行模拟器,要把上面两个设置环境命令再运行一次:
USER@ANDROID_ROOT: source ./build/envsetup.sh
USER@ANDROID_ROOT: lunch full-eng
否则的话会报错 ,说emulator找不到。
另外编译自己的内核 :
1. 拉模拟器的内核代码:
git clonehttps://android.googlesource.com/kernel/goldfish.git
git branch -r
gitcheckout origin/android-goldfish-2.6.29
2. 拉编译环境,并设置环境路径
$ git clonehttps://android.googlesource.com/platform/prebuilt
这个prebuilt目录建议放到android目录下面 ,和kernel同级 $ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
把prebuild设置到环境路径
3. 建立一个shell文件叫make_goldfish.sh 里面加入内容:
#!/bin/bash export ARCH=arm export SUBARCH=arm export CROSS_COMPILE=arm-eabi- makegoldfish_armv7_defconfig make -j2
即开始编译,(确保prebuild设置到环境路径)
4.使用自己的内核运行android模拟:
USER@ANDROID_ROOT: emulator -kernel./kernel/goldfish/arch/arm/boot/zImage -shell
说明:./kernel/goldfish是我的kernel源代码目录
-shell 是在当前终端打开adb shell
也可以另开终端窗口执行 adb shell (要保证本文最开始的两条设置命令已经运行过)
至此,android内核的调试之路正式开始 。