Android 编译命令及选项

Android编译命令及选项

1 运行build/envsetup.sh,该文件提供m,mm,mmm等命令

#. ./build/envsetup.sh

注意: . . 之间是空格

运行之后用help查看命令

#help

m 编译整个android工程

mm 编译当前目录下的模块

mmm path 编译指定目录下的模块

2 配置参数

#tapas

运行该命令后会出现:

Build for the simulator or the device?
     1. Device
     2. Simulator

Which would you like? [1]

Build type choices are:
     1. release
     2. debug

Which would you like? [1]

Product choices are:
     1. emulator
     2. generic
     3. sim
You can also type the name of a product if you know it.
Which would you like? [generic]

以上产品选项是默认的,如果vendor/ 目录下有产品,则会自动扫描进去.

3 如何在vendor下添加产品

以HTC为例:

vendor/htc/dream-open 在配置时会出现如下错误:

build/core/product_config.mk:173: *** No matches for product "dream-open".

原因是:

vendor/htc/dream-open/htm_dream.mk 里 PRODUCT_NAME := htc_dream ,所以dream-open要改为htc_dream,还有文件夹命名不能有 – (中间),但可以有_(底下)

dream-open -> htc_dream

PRODUCT_NAME := htc_dream

PRODUCT_DEVICE := htc_dream


快速编译system.img,可以使用这个命令:

#make systemimage

快速编译boot.img,可以使用以下命令:

#make bootimage

快速编译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: ${BUILT_RAMDISK_TARGET}

然后,就可以输入: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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值