• android 编译make指令


    一、编译指令

    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/

  • 相关阅读:
    【机器学习】机器学习是什么?
    XAMPP的MySQL配置
    form-serialize插件,快速收集表单元素的值
    MySQL数据库更换数据路径
    计算摄影——图像去噪(一)
    『网易实习』周记(二)
    python LeetCode 刷题记录 26
    paddlespeech on centos7
    【神策数据面试】手撕题
    八股八股八
  • 原文地址:https://blog.csdn.net/jx232515/article/details/127766453