下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】用djinni自动生成JNI相关文件
一、djinni是什么djinni是个工具,用来生成JNI相关接口。现在很多人都是只懂java,或者只懂C++,很少有人两头都精通;即使两头都精通,自己写JNI接口也很复杂。这时候djinni就能很好的解决这些问题,我们只要按要求配置JNI接口的对象,就能生成两边的接口。除了java与C++,还能生成ObjC与C++等接口。二、环境java1.8.0_101djinniGitHub地址msys2下载地址因为djinni中的一些命令是linux中的命令方式,所以要下载个msys2,在msys2中运行下载好后打开msys2,cd到djinni根目录下,输入以下命令来拉取库(整个过程时间很长)src/run--help三、编写djinni配置文件配置文件中可以配置如下的接口,在C++中具体实现,然后被java或ObjC或其他语言调用#ThisinterfacewillbeimplementedinC++andcanbecalledfromanylanguage.
my_cpp_interface=interface+c{
method_returning_nothing(value:i32);
method_returning_some_type(key:string):another_record;
staticget_version():i32;
#Interfacescanalsohaveconstants
constversion:i32=1;
}如果是C++调用其他语言的接口(+j指java,+o指ObjC),作如下定义#ThisinterfacewillbeimplementedinJavaandObjCandcanbecalledfromC++.
my_client_interface=interface+j+o{
log_string(str:string):bool;
}也可以定义其中需要一些实体类my_enum=enum{
option1;
option2;
option3;
}
my_flags=flags{
flag1;
flag2;
flag3;
no_flags=none;
all_flags=all;
}
my_record=record{
id:i32;
info:string;
store:set<string>;
hash:map<string,i32>;
values:list<another_record>;
#Commentscanalsobeputhere
#Constantscanbeincluded
conststring_const:string="Constantscanbeputhere";
constmin_value:another_record={
key1=0,
key2=""
};
}
another_record=record{
key1:i32;
key2:string;
}deriving(eq,ord)配置好以后调用命令生成src/run\
--java-outJAVA_OUTPUT_FOLDER\
--java-packagecom.example.jnigenpackage\
--java-cpp-exceptionDbxException\#ChoosebetweenacustomizedC++exceptioninJavaandjava.lang.RuntimeException(thedefault).
--ident-java-fieldmFooBar\#Optional,thisaddsan"m"infrontofJavafieldnames
\
--cpp-outCPP_OUTPUT_FOLDER\
\
--jni-outJNI_OUTPUT_FOLDER\
--ident-jni-classNativeFooBar\#Thisaddsa"Native"prefixtoJNIclass
--ident-jni-fileNativeFooBar\#ThisaddsaprefixtotheJNIfilenamesotherwisethecppandjnifilenamesarethesame.
\
--objc-outOBJC_OUTPUT_FOLDER\
--objc-type-prefixDB\#ApplesuggestsObjective-Cclasseshaveaprefixforeachdefinedtype.
\
--objcpp-outOBJC_OUTPUT_FOLDER\
\
--idlMY_PROJECT.djinni其中有几个重要的路径:JAVA_OUTPUT_FOLDERjava文件生成路径CP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仪表联锁管理制度应用指南
- 2024年10月自考护理学专业本科儿科护理学(一)考题含解析
- (高清版)GBT 42143-2022 压水堆核电厂钢制安全壳设计建造规范
- 2024年安徽省县乡教师选调考试《教育心理学》真题汇编带解析【含答案】
- 石榴园承包管理合同合集
- 简单版房屋退租协议书「详细版」合集
- 医院饭堂伙食承包合同合集
- 补充协议购房合同书合集
- 故意伤害人身损害的赔偿协议合集
- 私人精装铺面出租合同书合集
- 绿化病虫害防治标准
- 2024山东高速集团限公司社会招聘(1593人)公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2024届广东省东莞市南开实验校中考历史猜题卷含解析
- 膜结构车棚施工施工方案
- 2024年福建省厦门市人民政府外事办公室人秘处招聘网络管理员1人高频考题难、易错点模拟试题(共500题)附带答案详解
- 【高二下】2022-2023学年浙江省金华市卓越联盟高二(下)期末语文模拟试卷含答案
- 幸福创业智慧树知到期末考试答案2024年
- 家具工厂管理制度 工厂管理制度(三篇)
- 医院被服洗涤服务投标方案(技术方案)
- 私法英语表达智慧树知到期末考试答案2024年
- 【农业企业发展战略探究文献综述3600字】
评论
0/150
提交评论