Android系统和内核常用编译命令
1.删除out/目录下所有内容
make clean
2.删除所有配置所编译输出的结果文件
make clobber
3.PRODUCT_OUT展开为out/target/product/$(TARGET_DEVICE),根据注释,执行make dataclean将会删除out目录下对应板级目录中data分区相关文件
make dataclean
4.在切换编译目标时需要执行make installclean,用以清除之前编译生成的文件
make installclean
5.添加系统API或者修改@hide的API后,需要执行如下命令,然后再make
make update-api
6.修改公共API后,需要执行如下命令,然后再make
make update-api
7.分模块编译
(1).编译boot.img
make bootimage
(2).编译userdata.img
make userdataimage
(3).编译system.img
make systemimage
(4).重新打包system.img
make snod
(5).将App预装到系统中(需要预装的App是以源码形式提供,则需要先编译)
在源码根目录执行以下命令
source build/envsetup.sh
mmm packages/apps/TestApp
编译完成后,会在out/target/product/xxx/system/app/路径下生成对应的apk文件(xxx为设备代号),如果已经有apk文件则直接放在该路径下;如果是系统应用,则应放在out/target/product/xxx/system/priv-app/路径下,接下来需要重新打包成镜像文件,回到源码根目录,执行以下命令重新打包system.img
make snod
8.Linux内核make mrproper与make clean的区别
make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件,所以几乎只在第一次执行内核编译前才用这条命令。
make clean命令则是用于删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块。所以若只想删除前一次编译过程的残留数据,只需执行make clean命令
make mrproper删除的范围比make clean大,实际上make mrproper在具体执行时第一步就是调用make clean
定制系统
内核交叉编译后未执行make mrproper进行清理,会导致Android系统源码编译时发生冲突而报错
make mrproper