"VNDK编译及HIDL1:启用NDK,编译系统类型及目录结构"

需积分: 0 6 下载量 168 浏览量 更新于2024-01-31 收藏 1.94MB DOCX 举报
VNDK编译及HIDL是Android系统中的两个重要组件,用于管理和编译系统库和二进制文件。在使用VNDK和HIDL之前,需要对系统进行一些配置和修改。 首先,在编译系统中启用NDK,我们需要在BoardConfig.mk文件中添加BOARD_VNDK_VERSION定义。目前,我们的项目尚未开始使用VNDK功能。启用NDK后,系统会在编译完成后,在对应的lib目录下生成与vndk相关的目录。 VNDK编译系统包含多种类型的对象,其中包括库和二进制文件。首先是core类型的库,这些库位于system.img中,由系统进程使用。注意,vendor、vendor_available、vndk或vndk-sp库不能使用core类型的库。在编译过程中,我们使用cc_library命令来定义core类型的库,并指定其名称和一些其他属性。 其次是vendor-only类型的库,这些库位于vendor.img中,仅供vendor进程使用。同样,我们使用cc_library命令来定义vendor-only类型的库,并设置vendor属性为true,以便系统知道这些库只能供vendor使用。 还有一种类型是vendor_available类型的库,这些库同样位于vendor.img中,但是可以从可编译的代码上验证它们被编译到了system.img中,从而供vendor进程使用。与之前的库类型不同,我们在cc_library命令中使用name属性来定义vendor_available类型的库。 除了库以外,VNDK编译系统还包含二进制文件。我们可以使用类似的方式进行编译和定义,但需要注意设置的属性和类型。 值得注意的是,VNDK编译系统的相关配置对于Android系统的发行版至关重要。通过使用VNDK和HIDL,我们能够更好地管理和组织系统库和二进制文件,提高系统的效率和稳定性。 综上所述,VNDK编译及HIDL是Android系统中的重要组件,用于管理和编译系统库和二进制文件。通过配置和定义不同类型的库和二进制文件,我们可以更好地组织和管理系统的各个组件,提高系统的性能和可靠性。希望在今后的项目中,我们能够充分利用VNDK和HIDL的功能,优化我们的系统。