android開發-5源代碼編譯運行

一、編譯
設置ccache加快編譯速度。默認的ccache在~/.ccache文件夾下。默認的是1G大小。我在~/目錄下新建一個cache文件夾用來做緩存。
sudo mkdir ~/cache
sudo vi ~/.bashrc
裏面新增的內容是:
export USE_CCACHE=1
export CCACHE_DIR=/home/blkj/cache
然後設置cache的大小,在androidSource文件夾下,也即工程文件夾下要make的地方終端輸入命令:prebuilts/misc/linux-x86/ccache/ccache -M 10G 
官方推薦的是50-100G。


按照官方的提示,在androidSource路徑下,終端依次執行如下命令:
source build/envsetup.sh
lunch full-eng  (lunch aosp_arm-eng 之編譯arm平臺)
make -j4
最好用make -j4這個命令進行編譯,這個4等於cpu內核數*2.如果是2核就寫-j4,如果是4核就-j8.這樣可以大幅度提高編譯速度。
編譯完成後在out/target/product/generic文件夾下有3個鏡像文件:ramdisk.img system.img userdata.img,
其中, ramdisk.img是emulator的文件系統,system.img包括了主要的包、庫等文件,userdata.img包括了一些用戶數據,emulator加載這3個映像文件後,會把 system和 userdata分別加載到 ramdisk文件系統中的system和 userdata目錄下。
二、運行
1. 設置環境變量:(每次重啓後要執行)
    export PATH=$PATH:~/android/442/out/host/linux-x86/bin  
    export ANDROID_PRODUCT_OUT=~/android/442/out/target/product/generic
    其中,~/android/442/out/host/linux-x86/bin有我們要執行的emulator命令,而~/android/442/out/target/product/generic是Android鏡像存放目錄,下面執行emulator命令時會用到。
2. 運行模擬器。
進入到Android源碼目錄中執行:
source build/envsetup.sh 
lunch sdk-eng
emulator
    模擬器運行需要四個文件,分別是Linux Kernel鏡像zImage和Android鏡像文件system.img、userdata.img和ramdisk.img。執行emulator命令時,如果不帶任何參數,則Linux Kernel鏡像默認使用~/Android/prebuilt/android-arm/kernel目錄下的kernel-qemu文件,而Android鏡像文件則默認使用ANDROID_PRODUCT_OUT目錄下的system.img、userdata.img和ramdisk.img,也就是我們剛剛編譯出來的鏡像問題。
    當然,我們也可以以指定的鏡像文件來運行模擬器,即運行emulator時,即:
emulator -kernel ~/android/442/prebuilts/qemu-kernel/arm/kernel-qemu 
-sysdir ~/android/442/out/target/product/generic 
-system system.img -data userdata.img -ramdisk ramdisk.img
可以再emulator後面加&這樣終端就可以空出來執行adb命令了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章