VNDK基本概念
在Android的Treble架构中为了规范和约束system/vendor组件之间的耦合关系,对Native库进行几大类的划分,通过定义不同类型的相互耦合程度和使用约束来达到管控system/vendor组件之间模块的耦合度。
| 类型 | 描述 | so位置 | BP格式示例 |
|---|---|---|---|
| core library | 仅在系统镜像内使用 | system | cc_library { name: "libThatIsCore", ... } |
| vendor-only | 仅供供应商自己使用 | vendor | cc_library { name: "libThatIsVendorOnly", proprietary: true, ... } |
| vendor_available | 被vendor镜像使用,同时存在vendor和core变体 | vendor &System | cc_library { name: "libThatIsVendorAvailable", vendor_available: true, ... } |
| vndk | vendor使用 | system | cc_library { name: "libThatIsVndk", vendor_available: true, vndk: { enabled: true, } ... } |
| vndk-sp | 直接被vendor使用,间接被系统镜像使用 | system | cc_library { name: "libThatIsVndkSp", vendor_available: true, vndk: { enabled: true, support_system_process: true, } ... } |
| llndk | 由Google维护,被系统和供应商镜像共同使用,可以双重加载 | system | llndk_library { name: "libThatIsLlndk", ... } |
依赖关系
img-blog.csdnimg.cn/img_convert…