Android.bp 中的 visibility详解
时间: 2023-11-24 11:28:58 浏览: 80
在 Android.bp 文件中,visibility 用于控制模块可见性。它确定了模块是否可以被其他模块依赖和使用。
visibility 可以设置为如下三种值:
- ["//visibility:public"]:模块将对所有其他模块可见。
- ["//visibility:private"]:模块只能在同一个 package 内使用,不能被其他 package 中的模块使用。
- ["//visibility:legacy_public"]:模块将对所有其他模块可见,但是不符合模块化规范,因此不推荐使用。
如果不指定 visibility,则默认为 ["//visibility:private"]。
需要注意的是,如果一个模块依赖于另一个模块,那么被依赖的模块的 visibility 必须大于等于依赖它的模块的 visibility,否则会编译失败。
例如,如果一个模块的 visibility 设置为 ["//visibility:private"],那么它只能被同一个 package 中的模块所依赖,而不能被不同 package 中的模块所依赖。如果某个模块依赖于该模块,那么该模块的 visibility 必须设置为 ["//visibility:private"] 或者 ["//visibility:public"],否则编译会失败。
相关问题
android.bp 中如何添加 androidx.annotation
在 Android 构建系统中,如果你要在 Android.bp 文件中添加 androidx.annotation 库的依赖,你可以通过以下方式来实现:
1. 在 Android.bp 文件中定义一个 `android_library` 模块,例如:
```bp
android_library {
name: "mylibrary",
srcs: ["MyLibrary.java"],
visibility: ["//visibility:public"],
libs: ["androidx.annotation_annotation"],
}
```
2. 在 `libs` 中添加 `androidx.annotation_annotation` 依赖。这个依赖表示你要使用 androidx.annotation 库中的注解。
3. 如果你的项目中没有 androidx.annotation 库的源码,你还需要在 Android.bp 文件中定义一个 `prebuilt_apis` 模块,例如:
```bp
prebuilt_apis {
name: "androidx_annotation",
sdk_version: "current",
api_dirs: ["path/to/androidx/annotation/sources"],
}
```
4. 在 `api_dirs` 中指定 androidx.annotation 库的源码路径。
5. 如果你的项目中已经依赖了 androidx.annotation 库,则可以直接在 `libs` 中添加 `androidx.annotation` 依赖,例如:
```bp
android_library {
name: "mylibrary",
srcs: ["MyLibrary.java"],
visibility: ["//visibility:public"],
libs: ["androidx.annotation"],
}
```
这样,Android.bp 文件就可以正确引用 androidx.annotation 库了。
androidstudio应用设置android.bp文件引包
在Android Studio中设置android.bp文件引包的步骤如下:
1. 首先,在项目的app模块目录下创建一个名为.bp的文件夹。可以在项目的app目录下的主模块文件夹中找到该目录。
2. 在该.bp文件夹下,创建一个名为android.bp的文件。可以使用文本编辑器来创建该文件。
3. 在android.bp文件中,可以使用类似于build.gradle中的语法来引入和设置相关的包依赖。写入类似以下的代码:
```
java_library {
name: "android_bp_example"
srcs: ["src/main/java/**/*.java"]
static_libs: [
"androidx.annotation", "androidx.appcompat", "com.google.android.material"
]
visibility: ["//visibility:public"]
}
```
这个示例代码表示引入了三个包依赖,分别是androidx.annotation、androidx.appcompat和com.google.android.material。你可以根据自己的需求添加和设置相应的包依赖。
4. 保存并关闭android.bp文件。
5. 在Android Studio中点击 "Sync Project with Gradle Files" 来同步项目,这将使应用程序重新构建以反映新的依赖设置。
通过上述步骤设置android.bp文件引包后,Android Studio将会根据配置的包依赖来编译和构建你的项目。请注意,这种方式与使用build.gradle文件设置依赖的方式类似,但是使用android.bp文件可以更加灵活和可扩展。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)