我在AOSP中使用Nfc代码研究了HIDL。
据我所知,当编译INfc.hal时,将自动生成INfc.h,如下图所示。
在NxpService.cpp中,有类似以下的代码
#include <android/hardware/nfc/1.1/INfc.h>
但是,我找不到那条路。 android / hardware / nfc / 1.1 / INfc.h的真实路径在哪里?
此外,我很好奇gcc编译如何在使用INfc.h的NxpService.cpp中工作。 您能解释一下gcc编译器如何找到INfc.h并在没有编译错误的情况下工作吗?
INfc.hal 路径:/hardware/interfaces/nfc/1.1/INfc.hal
Android.bp
hidl_interface {
name: "android.hardware.nfc@1.1",
root: "android.hardware",
NxpService.cpp 路径:/hardware/nxp/nfc/1.1/NxpService.cpp
#include <android/hardware/nfc/1.1/INfc.h>
...
int main(){
sp<INfc> nfc_service = new Nfc();
status_t status = nfc_service->registerAsService();
答案 0 :(得分:1)
android.hardware.nfc@1.1
位于hardware/interfaces/nfc/1.1/
memories, guesses, and apologies。
此处here显示了Android提供的接口到其实际位置的映射。
答案 1 :(得分:0)
您要查找的文件都是由hidl-gen自动生成的,它们通常位于out
目录中,例如
$ANDROID_ROOT/out/soong/.intermediates/hardware/interfaces/nfc/1.1/android.hardware.nfc@1.1_genc++_headers/gen/android/hardware/nfc/1.1