前提:代碼已經准備好。
首先要設定環境:
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內核的調試之路正式開始 。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11