c++层使用和编译aidl文件可以参考av/camera里的例子

这里给出了一个简化版的工程例子

测试的工程路径为源码路径下的frameworks/native/cmds/bitTube

aidl文件

ITest.aidl

package android.hardware;

interface ITest

{

int getData();

}

在工程中创建目录aidl\android\hardware

把ITest.aidl放到该目录下

在mk文件中添加

LOCAL_AIDL_INCLUDES := frameworks/native/cmds/bitTube/aidl

LOCAL_SRC_FILES:= \

service.cpp BitTube.cpp \

aidl/android/hardware/ITest.aidl

编译,

在out中会生成对应的out/target/product/Test1/obj/EXECUTABLES/***_intermediates/aidl-generated目录

out/target/product/Test1/obj/EXECUTABLES/serverBiT_intermediates/aidl-generated/

tree –A Path

vi out/target/product/Test1/obj/EXECUTABLES/serverBiT_intermediates/aidl-generated/include/android/hardware/BnTest.h

在cpp中include一下,就可以直接使用生成的对象了

#include "android/hardware/ITest.h"

#include "android/hardware/BnTest.h"

//or declare using namespace and use BnTest derectly

class testManager : public android::hardware::BnTest

{

int getData()

{

return 1;

}

};

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐