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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐