Android.bp编.so与二进制文件的区别
时间: 2024-05-17 18:16:00 浏览: 144
Android.bp文件是Android构建系统中的蓝图文件,用于描述如何构建一个模块或者整个Android系统。而.so文件是编译后的动态链接库,包含可执行代码和数据。
在Android.bp文件中,我们可以指定源文件、编译选项、依赖关系等信息,来构建.so文件。而.so文件则是最终生成的可执行文件,可以被加载到内存中运行,提供特定的功能。
因此,Android.bp文件和.so文件的主要区别在于,前者是一个描述如何构建一个模块或整个系统的蓝图文件,后者是一个可执行的二进制文件,包含实际的代码和数据。
相关问题
Android.bp如何引用so文件
在 Android.bp 文件中引用 .so 文件,可以使用 `cc_library_shared` 模块,并在 `srcs` 字段中添加 .so 文件。例如:
```bp
cc_library_shared {
name: "my_so",
srcs: ["my_so.so"],
shared_libs: ["liblog"],
}
```
这里的 `srcs` 字段指定了要引用的 .so 文件,`shared_libs` 字段指定了需要链接的其他共享库,例如上面例子中的 `liblog`。在使用这个模块的时候,只需要在 `deps` 字段中添加 `my_so` 就可以使用该 .so 文件了。例如:
```bp
cc_binary {
name: "my_binary",
srcs: ["my_binary.cpp"],
shared_libs: ["my_so"],
}
```
这里的 `shared_libs` 字段添加了 `my_so`,表示该二进制文件依赖于 `my_so` 库。
Android.mk和Android.bp
Android.mk和Android.bp是Android系统中的两个构建文件。它们都是用于构建Android应用程序的脚本文件,但是它们的语法和用法有所不同。
1. Android.mk是旧的构建系统,使用GNU Make语法,主要用于编译生成Apk、静态库、动态库、可执行文件等。
2. Android.bp是新的构建系统,使用Soong语法,主要用于构建Android系统镜像和模块化组件。
3. Android.mk和Android.bp都可以引用Android的第三方(jar、aar、so)、Androidx的类库等。
阅读全文