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;
}
};