当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

JMI

JNI 的 C++11/14封装
授权协议 MIT
开发语言 Java C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 葛驰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JMI 是 JNI 的 C++11/14封装,目的是为了简化JNI使用。具有以下特点:

- JNI的signature字符串由编译器辅助生成,减少代码量又不会出错

- 支持带出参的方法,如 

void SurfaceTexture.getTransformMatrix(float[] mtx)

对应的C++代码

jfloat mtx[16];
st.call("getTransformMatrix", std::ref(mtx));

 

- jclass、jmethodID、jfieldID都可缓存,使用值转型机制 

- 提供getEnv()来获得JNIEnv而 不需操心线程问题

- 接口简单易用。比如如field接口

auto f = obj.field<jint>("myIntFieldName");
f = 123;
jint value = f;


 

  • 概念介绍 SOA(面向服务的软件架构、Service Oriented Architecture),是一种软件设计模式,主要应用于不同应用组件之间通过某种协议来互操作。例如典型的  通信网络协议。因此SOA是独立于任何厂商、产品、技术的。 RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包

  • JMI JNI Modern Interface in C++ 特性 支持 Java 方法输入、输出参数 jclass、jmethodID、field 自动缓存 C++ 和 Java 方法属性一致,如静态方法对应 C++ 静态成员函数 无需操心局部引用泄漏 getEnv() 支持任意线程,无需关心 detach 编译器推导 java 类型及方法签名,并只生成一次 支持 JNI 原生的各种类型、jm

  • 近年来出现了一种新的供应链库存管理方法--联合库存管理。这种库存管理策略打破了各自为政的库存管理模式,有效地控制了供应链的库存风险,是一种新的有代表性的库存管理思想。 联合库存管理(Jointly Managed Inventory,JMI),是一种在VMI的基础上发展起来的上游企业和下游企业权利责任平衡和风险共担的库存管理模式。 联合库存管理强调供应链中各个节点同时参与,共同制定库存计划,使供应

 相关资料
  • null null null 支持值从不同于零的数字开始 支持负值 支持分段的值 支持(C++11) 支持具有任何允许的(C++11) 编译时(而不是运行时)转换为字符串, 或至少在运行时快速执行(例如不是个好主意……) (C++11,然后在C++14/17/20中放松) (C++11) C++17/C++20友好代码段 一个可能的想法是使用C++编译器的功能,在编译时使用基于和函数的元编程技巧生

  • 主要内容:1、public,2、private,3、protected,4、internal,5、protected internalC# 是一门面向对象编程语言,面向对象编程语言有三大特性,分别是封装、 继承和 多态。所谓封装就是将一个或多个项目(函数)集合在一个单元中,这个单元称之为类,我们可以根据需要通过访问权限修饰符来设定类中成员的范围和可见性。C# 中的访问权限修饰符有以下几种: public:公共的,所有对象都可以访问,但是需要引用命名空间; private:私有的,类的内部才可以访

  • 爱客服V2.9.1版本更新 Hello,三周未见,又到了爱客服更新的日子,不知各位周末是否愉快,明天便是工作日,在新的一周到来之前,爱客服如期为大家带来了V2.9.1的系统更新,至于为什么不是V3.0,因为V3.0这样的大招是需要憋一阵的,我们将对UI、系统后台、知识库等关键功能做一次系统性迭代,从而较好的提升客服系统的实用属性及易用属性,所以还请各位保持期待,爱客服将一如既往的不断优化,如果有任

  • 我想找到最快的方法来检查标准C 11、14、17或C中是否存在文件。我有数千个文件,在对它们执行操作之前,我需要检查它们是否都存在。在下面的函数中,我可以写什么来代替*/?

  • 更新至英文版January 3, 2012。 译者前言: 经过C++标准委员会的不懈努力,最新的ISO C++标准C++11,也即是原来的C++0x,已经正式发布了。让我们欢迎C++11! 今天获得Stroustrup 先生的许可,开始翻译由他撰写和维护的C++11 FAQ 。我 觉得这是一件伟大而光荣的事情,但是我又觉得压力很大,因为我的英语水平很差劲,同时自己的C++水平也很有限,很害怕在翻译

  • 我一直在阅读Unicode的主题 - 特别是,UTF-8 - C 11中的(非)支持,我希望Stack Overflow上的大师可以向我保证我的理解是正确的,或者指出我在哪里误解或遗漏了一些东西,如果是这样的话。 首先,好处是:您可以在源代码中定义UTF-8、UTF-16和UCS-4文本。此外,

  • 封装被定为义为“把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装使程序员实现所需级别的抽象。 封装使用访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: Public Private Protected Internal

  • 所有的 C++ 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。 程序数据:数据是程序的信息,会受到程序函数的影响。 封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。 数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅