首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在构建Android镜像时,build/core查找Android.mk/.bp时排除目录?

在构建Android镜像时,可以通过在build/core/main.mk文件中定义一些变量来排除特定目录,以避免build/core查找Android.mk/.bp文件。

以下是一种常见的方法,在build/core/main.mk文件中添加以下内容:

代码语言:txt
复制
# 定义需要排除的目录
EXCLUDE_DIRS := path/to/exclude/dir1 path/to/exclude/dir2

# 定义一个函数,用于检查目录是否需要排除
define check_dir
    $(foreach dir,$(EXCLUDE_DIRS),$(if $(findstring $(dir),$1),,$(call message,Checking $1,$(dir))))
endef

# 重写查找Android.mk的函数
find-makefile-dir = $(strip \
    $(call check_dir,$(1)) \
    $(wildcard $(1)/Android.mk) \
    $(wildcard $(1)/Android.bp) \
    $(foreach subdir,$(filter %/,$(wildcard $(1)/*/)), \
        $(call find-makefile-dir,$(subdir))))

通过以上修改,构建系统将在查找Android.mk/.bp文件时排除指定的目录。

请注意,"path/to/exclude/dir1"和"path/to/exclude/dir2"应替换为您希望排除的目录的实际路径。

这种方法可以用于构建Android镜像时排除指定目录,以便更好地控制构建过程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android高版本PQR源码编译指南

为模块的名称,这种编译方法通常运用在整个Android工程没有构建,但是想快速编译一个模块可以使用,可以加快单个模块构建速度 make targets will print a list of all...由于Android.mk的数量巨大且复杂,不可能把所有的Android.mk改写成ninja的构建规则,因此Google搞了个kati工具,用于将Androd.mk转换成ninja的构建规则文件build.ninja...同时还引入Soong这个工具,用于将Android.bp转换为ninja的构建规则文件build.ninja,再使用ninja来进行构建工作。...无论是Android.mk还是Android.bp最后都是转化成ninja的构建规则,再进行编译的。...Blueprint和Soong都是由Golang写的项目,从Android 7.0,prebuilts/go/目录下新增Golang所需的运行环境,在编译使用。

2.6K10
  • Android 项目构建编译概述

    下载Android源代码树 2.4. Soong编译系统 2.4.1. Make和Soong比较(Android.mkAndroid.bp) 2.4.2....构建下载源码 2.1. ubuntu构建环境 如果是ubuntu 18.04的版本,则下载以下软件: sudo apt-get install git-core gnupg flex bison build-essential...每个 Soong 模块都会被视为处于 Android.bp(位于当前目录或最近的父级目录中的 soong_namespace 文件内)定义的命名空间中。...此模块目标在此处,因为默认目标需要名称 m all会构建所有内容,以确保包含在树中且包含Android.mk文件的所有元素都会构建 m: 从树的顶部运行构建系统。...这很有用,因为可以在子目录中运行make。如果设置了TOP环境变量,它便会使用此变量。如果未设置此变量,它便会从当前目录查找相应的树,以尝试找到树的顶层。

    3.2K20

    深入理解Android Build系统

    如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商的定制扩展,Android系统如何解决这些问题呢?...Android build分类: build/core 目录下的文件,这是Android Build的系统框架核心; device目录下的文件,存放的是具体的产品配置文件; 各个模块的编译文件:Android.mk...Android Build系统核心 Android Build系统核心在目录build/core,这个目录中有mk文件、shell脚本和per脚本,他们构成Android Build系统的基础和架构。...Build 生成的镜像文件 Build 的产物中最重要的是三个镜像文件,它们都位于 /out/target/product// 目录下: system.img:包含了 Android OS 的系统文件,...Build 系统会扫描名称为“Android.mk”的文件,并根据该文件中内容编译出相应的产物。

    1.9K60

    Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V ...., 是 CMake 工具内置的变量 # Android CMake 也内置了一些变量 , ANDROID_ABI ${CMAKE_SOURCE_DIR}...配置 CMake 构建脚本 CMakeList.txt 路径 : 在 Module 级别的 build.gradle 脚本中配置 Android.mk 构建脚本的路径 ; // III ....x86 message("CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}, ANDROID_ABI : ${ANDROID_ABI}") # 到预设的目录查找 log...# 不同的 Android 版本号 和 CPU 架构 需要到对应的目录查找 , 此处是 29 版本 32 位 ARM 架构的日志库 # # 可以不配置 : # 可以不进行该配置

    9.1K20

    详解sh ndk-build.cmd command not found

    这个错误通常出现在使用Windows操作系统进行NDK编译。问题描述一般来说,当我们使用NDK进行Android原生代码的编译,需要在命令行中使用ndk-build来执行编译操作。...ndk-build.cmd 可以与基于 CMake 构建系统的项目一起使用,并支持基于 Android.mk 和 Application.mk 构建文件的旧版 Makefile 构建系统。...构建配置文件(Android.mk 和 Application.mk): ndk-build.cmd 会根据配置文件(Android.mk 和 Application.mk)中的设置来构建本地代码。...Android.mk 是一个 Makefile 脚本,用于指定构建规则、源文件、依赖项等。Application.mk 则用于指定全局的构建配置选项。...它会在指定的构建目录中生成所需的库文件和可执行文件。默认情况下,ndk-build.cmd 会构建所有配置文件中指定的模块,并生成对应的库文件。

    34310

    (NDK编译)详解使用Android.mk编译的CC++程序过程

    想要在Android设备上运行C/C++程序可执行文件,可采用一个方法就是使用NDK编译,很多时候要比gcc编译更适合,这里我采用的是imx6q开发板上面装载了自己编写的Android6.0.1镜像,在..., LOCAL_PATH := $(call my-dir) 首先必须定义好LOCAL_PATH变量,用于在开发树中查找源文件。...宏函数my-dir由编译系统提供,用于返回当前路径(即包含Android.mk文件的目录)。...+= -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE 在起初我没有添加这两行代码,也可使用NDK成功编译出可执行文件,但放在Android系统的开发板上无法运行并报错...APP_BUILD_SCRIPT=Android.mk 成功编译后,在当前目录下出现了两个新的文件夹,生成的可执行程序都放在libs目录下 libs目录下可以看到有多个版本,适合我的imx6q开发板的是

    2.5K20

    Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    CMake 与 Android.mk : Google 逐渐放弃了对 Android.mk 的支持 , 目前新项目推荐使用 CMake 构建本地库 , 旧的项目建议将 Android.mk 转为 CMake...配置 CMake 构建脚本 CMakeList.txt 路径 : 在 Module 级别的 build.gradle 脚本中配置 Android.mk 构建脚本的路径 ; // III ....当本次编译 armeabi-v7a CPU 架构 , ${ANDROID_ABI} 值为 armeabi-v7a # 当本次编译 x86 CPU 架构 , ${ANDROID_ABI...x86 message("CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}, ANDROID_ABI : ${ANDROID_ABI}") # 到预设的目录查找 log...不同的 Android 版本号 和 CPU 架构 需要到对应的目录查找 , 此处是 29 版本 32 位 ARM 架构的日志库 find_library( log-lib

    2.7K40

    Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    构建脚本路径 // 使用该配置 , 将 cmake 配置注释掉 /*ndkBuild{ path "src/main/cpp/Android.mk...native-lib.c) # 到预设的目录查找 log 库 , 将找到的路径赋值给 log-lib # 这个路径是 NDK 的 ndk-bundle\platforms\android-29\...arch-arm\usr\lib\liblog.so # 不同的 Android 版本号 和 CPU 架构 需要到对应的目录查找 , 此处是 29 版本 32 位 ARM 架构的日志库 find_library...Android.mk 配置示例 : # my-dir 是 NDK 内置的函数 , 获取当前的目录路径 # 在该案例中就是 Android.mk 文件所在的目录的绝对路径 , 工程根目录/app/src/...构建脚本路径 // 使用该配置 , 将 cmake 配置注释掉 ndkBuild{ path "src/main/cpp/Android.mk

    2.9K20

    Android.bp文件简介

    Android.bp是用来替换Android.mk的配置文件,它使用Blueprint框架来解析。Blueprint是生成、解析Android.bp的工具,是Soong的一部分。...6、格式控制工具 bpfmt是一个bp文件的格式控制工具,包括4个空格的缩进、列表有多个元素每个元素一行、列表和map的最后一个元素多一个冗余的逗号等等。...工具目录为:build/blueprint/bpfmt/ 在当前目录下执行以下命令: 7、Android.mk转为Android.bp androidmk工具可以把mk文件转换为bp文件,但一些复杂的用法和自定义的规则需要手动转换...工具目录为:build/soong/androidmk/ androidmkAndroid.mk>Android.bp 8、支持的模块类型 Android.bp可以支持android_app、cc_binary...9、支持预编译类型 Android.bp可以支持5种预编译类型,如下图所示: ? 10、模块名称解析 soong提供了可以在不同目录中配置相同的模块名称,只要每个模块的名称在不同的命令空间中声明。

    2.1K20

    Android.mk的用法和基础 && m、mm、mmm编译命令「建议收藏」

    它用于在开发树中查找源文件。在这个例子中,宏函数‘my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。...2,include ( CLEAR_VARS),CLEAR_VARS由编译系统提供((可以在 android 安装目录下的/build/core/config.mk 文件看到其定义,为 CLEAR_VARS...Android.mk的列表。...所以要想使用这些命令,首先需要在android源码根目录执行build/envsetup.sh 脚本设置环境。...m:编译所有的模块 mm:编译当前目录下的模块,当前目录下要有Android.mk文件 mmm:编译指定路径下的模块,指定路径下要有Android.mk文件 下面举个例子说明,假设我要编译android

    4.1K11

    Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 )

    ; 之前使用 Eclipse + ADT 开发 NDK 功能使用 Android.mk 构建 C/C++ 程序 , 使用 Android Studio 之后 , 就开始使用 CMakeLists.txt..., 该构建脚本需要进行配置 , 在第 2 换行添加如下配置 , 表示使用 NDK 进行编译 , 生成 so 动态库 , 以方便在 Android 中使用 ; ENABLE_SHARED := 1...NDK 编译构建脚本参考文档 : ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build Android.mk.../ndk/guides/ndk-build Android.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk Application.mk...NDK 编译构建脚本参考文档 : ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build Android.mk

    1.1K20

    Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )

    构建脚本示例 四、参考资料 前置博客 : 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so...jni\Android.mk 中的 -I 引入头文件参数中 , 涉及的头文件目录 ; # 设置编译器参数 # -I 指定头文件引入目录 , 会引入后面目录中所有的 .h 头文件 LOCAL_CFLAGS...---- 1、导入动态库 导入动态库 : 参考 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库...armeabi-v7a CPU 架构 , ${ANDROID_ABI} 值为 armeabi-v7a # 当本次编译 x86 CPU 架构 , ${ANDROID_ABI} 值为...NDK 编译构建脚本参考文档 : ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build Android.mk

    2.9K20

    Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )

    文章目录 一、修改 7zr 交叉编译脚本 Android.mk 二、完整的 7zr 交叉编译脚本 Android.mk 三、交叉编译 lib7zr.a 静态库 四、Android Studio 导入 lib7zr.a...7zr 项目的构建脚本 Android.mk 和 Application.mk , 主要使用该构建脚本交叉编译出 可执行文件 7zr 静态库 lib7zr.a ; 进入 7zr 目录下 , 有一个 jni...目录 和 makefile 文件 , jni 目录中是 Android.mk 和 Application.mk 两个构建脚本 , 可以使用 ndk-build 进行编译 ; 打开该 makefile...交叉编译脚本 Android.mk ---- 修改完成的构建脚本 : # # build 7zr for armeabi and armeabi-v7a CPU # # WARNING : file...NDK 编译构建脚本参考文档 : ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build Android.mk

    3.1K30
    领券