Android.mk转换到Android.bp方法_mk中的local

梦幻星辰1 2024-12-10T08:00:12+08:00
0 0 308

引言

随着 Android 8.0(Oreo)的发布,通过 AOSP(Android 开源项目) 构建 Android 系统的方式发生了重大变化。过去,我们使用 Android.mk 文件来描述构建项目的细节;而现在,我们则需要使用更为现代化的 Android.bp 文件。

在 Android.mk 文件中,我们经常使用 local 变量来定义模块的属性和行为。本文将介绍如何将 Android.mk 文件中的 local 转换为 Android.bp 的方式,并提供一些注意事项和实用技巧。

步骤

以下是将 local 转换为 Android.bp 格式的步骤:

  1. 在 Android.bp 文件顶部,添加模块的注释和 package 属性。例如:

    // 本模块用于构建示例应用
    java_library {
        name: "example",
        package: "com.example",
    }
    

    这将创建一个名为 example 的 Java 库模块,并指定其包名为 com.example。

  2. LOCAL_ 前缀的属性更改为对应的属性。例如,将 LOCAL_MODULE 更改为 nameLOCAL_SRC_FILES 更改为 srcsLOCAL_STATIC_LIBRARIES 更改为 static_libs,等等。

    java_library {
        name: "example",
        package: "com.example",
        srcs: [
            "Example.java",
        ],
        static_libs: [
            "libexample",
        ],
    }
    
  3. 添加其他属性和行为。Android.bp 提供了更多的灵活性和功能。例如,我们可以添加 visibilityversionrequired_apy_versions 等属性。还可以通过添加 compile_multilibarchtarget 等属性,指定特定的构建目标。

    java_library {
        name: "example",
        package: "com.example",
        srcs: [
            "Example.java",
        ],
        static_libs: [
            "libexample",
        ],
        visibility: [
            // 可见范围为仅限当前模块及其依赖
            "PUBLIC",
        ],
        version: "1.0",
        required_apy_versions: [
            ">=8",
            "<=10",
        ],
        compile_multilib: "both",
        arch: {
            arm: {
                target: {
                    android: {
                        cflags: [
                            "-mthumb",
                        ],
                    },
                },
            },
        },
        target: {
            android: {
                compile_multilib: "both",
            },
        },
    }
    

注意事项和实用技巧

  • 如果你需要构建 C/C++ 代码,也可以使用 Android.bp 文件来代替 Android.mk 文件。只需在文件开头添加 cflagscppflagsldflags 等属性,并指定对应的编译器选项和库依赖。

  • 当转换较大型的 Android.mk 文件时,可以利用 for 循环和函数封装的方式,减少代码量。

  • Android.bp 文件中的注释使用 // 行注释,不支持 /* */ 块注释。

  • 如果在转换后的 Android.bp 文件中遇到语法错误,可以在终端中使用 mm 命令进行语法检查。

    mma YOUR_MODULE -n
    

    这将在编译模块之前进行语法检查,并输出错误提示信息。

结论

通过将 local 变量转换为 Android.bp 格式,我们可以更好地利用 Android 构建系统的新功能和灵活性。本文提供了转换步骤和一些实用技巧,希望能帮助您顺利开始使用 Android.bp 文件进行项目构建。

相似文章

    评论 (0)