android 编译make指令

这篇博客详细介绍了Android系统编译的相关指令,包括make-jXX用于多核编译,mm/mm-B用于单个模块的编译和调试,以及makeinstallclean用于清除编译缓存。此外,还讲解了如何推送文件到设备,并提供了编译sepolicy及验证的步骤。内容涵盖了从整体编译到单个模块的编译,对于Android开发者来说是宝贵的参考资料。
摘要由CSDN通过智能技术生成

一、编译指令

1.make -jX X表示数字,这个命令将编译Android系统并生成镜像,XX表示可以使用到的CPU核数,

2.make snod 这条命令将重新生成镜像,消耗的时间很少,类似WinCE的makeimg过程,如果你修改了一些数据文件(如音乐、视频)等文件时比较有用。

3.make cts 这条命令将编译CTS套机,编译出的结果放在out目录对应版的data/app目录下面。CTS测试时有用

4.make installclean 这条命令清除out目录下对应板文件夹中的内容,也就是相当于make clean,通常如果改变了一些数据文件(如去掉)、最好执行以下make installclean,否则残留在out目录下的还会被打包进去。

5.mm/mm -B 开发调试中最喜欢这条命令了,在修改了的目录下执行这条命令,就能智能地进行编译,输出的文件在通过adb推送到目标机,可以很方便地调试

二、单编

1. make: 不带任何参数则是编译整个系统; 
   make MediaProvider  #单个模块编译,会把该模块及其依赖的其他模块一起编译(会搜索整个源代码来定位MediaProvider模块所使用的Android.mk文件,还要判断该模块依赖的其他模块是否有修改); 
2.  mmm packages/providers/MediaProvider # 编译指定目录下的模块,但不编译它所依赖的其它模块; 
3.  mm  # 编译当前目录下的模块,它和mmm一样,不编译依赖模块; 
4.  mma # 编译当前目录下的模块及其依赖项 .

mmma:# 编译指定目录下的模块,编译它所依赖的其它模块; 

以上三个命令都可以用-B选项来重新编译所有目标文件。

  • make systemimage - system.img
  • make userdataimage - userdata.img
  • make ramdisk - ramdisk.img
  • make snod - 快速打包system.img 

单编sepolicy并快速验证
(1)source  bulid/envsetup.sh

(2)lunch  

(3)mmm system/sepolicy
(4)adb push out\..\vendor\etc\selinux\.  /vendor/etc/selinux
 adb push out\..\system\etc\selinux\.  /system/etc/selinux
(5)adb reboot

make  -j32 2>&1 | tee build.log 

模块                       make命令                                  mmm命令
init                          make init                                   mmm system/core/init
zygote                    make app_process                   mmm frameworks/base/cmds/app_process
system_server       make services                          mmm frameworks/base/services
java framework      make framework                       mmm frameworks/base
framework资源      make framework-res                 mmm frameworks/base/core/res
jni framework         make libandroid_runtime          mmm frameworks/base/core/jni
binder                    make libbinder                          mmm frameworks/native/libs/binder

make systemimage - system.img

make userdataimage - userdata.img

make ramdisk - ramdisk.img

make snod - 快速打包system.img 

三、push 文件

push 文件

adb push /xxx/system/etc/selinux/*  /system/etc/selinux/
adb push /xxx/vendor/etc/selinux/*  /vendor/etc/selinux/
adb push /xxx/system/system_ext/etc/selinux/*  /system/system_ext/etc/selinux/
adb push /xxx/system/product/etc/selinux/*  /system/product/etc/selinux/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值