1.make -jx
x表示數字,這個命令將編譯android系統並生成映象,xx表示可以使用到的cpu核數,這在配置好的電腦上特別有用,公司的16核ubuntu伺服器執行make -j16只要不到20分鐘,而雙核pc上需要4個小時!
2.make snod
3.make cts
4.make installclean
這條命令清除out目錄下對應板資料夾中的內容,也就是相當於make clean,通常如果改變了一些資料檔案(如去掉)、最好執行以下make installclean,否則殘留在out目錄下的還會被打包進去。
5.mm/mm -b
6.make sdk
這條命令可以生成可發布的sdk,目前還沒試過,據說需要jdk1.5
7.make setting
可以單獨編譯setting這個模組,目前還沒試,猜想是不是可以單獨編譯email、music這些模組
8.make bootimage
用這條命令可以生成boot.img,這個映象檔案中包含linux kernel,ram disk,生成的boot.img只能通過fastboot進行燒寫,這在只修改了linux核心的時候有用
9.make systemimage
同上,不過是生成system.img用的。
快速編譯userdata.img,可以使用以下命令:
# make userdataimage-nodeps
但是,對於bootimage, 在不改變記憶體布局的情況下,可以使用以下命令:
#cp ./arch/arm/boot/image ./arch/arm/boot/kernel
#mkbootimg --kernel ./arch/arm/boot/kernel --ramdisk ../out/target/product/tcc8800/ramdisk.img --cmdline
console=ttytcc,115200n8 --base 0x40000000 --pagesize 8192 --output ../out/target/product/tcc8800/boot.img
其實這些生成命令都在build/core/makefile中.
生成boo.img的方法:
$(installed_bootimage_target):$(mkbootimg) $(internal_bootimage_files)
$(mkbootimg) $(internal_bootimage_args) --output $@
......
生成system.img的方法:
define build-systemimage-target
$(mkyaffs2) -f $(mkyaffs2_extra_flags) $(target_out) $(1)
生成userdata.img的方法
define build-userdataimage-target
mkdir -p $(target_out_data)
$(mkyaffs2) -f $(mkyaffs2_extra_flags) $(target_out_data) $(installed_userdataimage_target)
同樣,ramdisk.img的生成方法為:
built_ramdisk_target := $(product_out)/ramdisk.img
installed_ramdisk_target := $(built_ramdisk_target)
$(installed_ramdisk_target): $(mkbootfs) $(internal_ramdisk_files) | $(minigzip)
$(mkbootfs) $(target_root_out) | $(minigzip) > $@
為方便起見,也可以在makefile中加入以下內容:
built_ramdisk_target := $(product_out)/ramdisk.img
.phony: ramdiskimage
ramdiskimage: $
然後,就可以輸入:make ramdiskimage 來編譯ramdisk.img檔案了
最簡單的方法是:
out/host/linux-x86/bin/mkbootfs out/target/product/tcc8900/root |
out/host/linux-x86/bin/minigzip > out/target/product/tcc8900/ramdisk.img
make的 j命令(加速Linux程式編譯)
專案越來越大,每次需要重新編譯整個專案都是一件很浪費時間的事情。research了一下,找到以下可以幫助提高速度的方法,總結一下。有人說在windows下用了ramdisk把乙個專案編譯時間從4.5小時減少到了5分鐘,也許這個數字是有點誇張了,不過粗想想,把檔案放到記憶體上做編譯應該是比在磁碟上快多...
編譯android原始碼的make命令解析
摘要 本文描述了編譯android原始碼時,make命令後面隱藏的玄機,通過一步步的分析,你會發現,實際上不是想象的那麼複雜 肯定比編hello world複雜,哈 正文 1.make命令執行後,編譯的入口在 雖然我的最終目的是研究android原始碼之間的關係,但是,當我編完android原始碼後...
make命令 clean命令
先先看一下什麼是makefile makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為 makefile就像乙個shell指令碼一樣,其中也可以執行作業系統的命令。makefile帶來的好處就是 自動化編譯 一旦寫好...