经常碰到mre sdk功能不够完善的情况,没有实现功能的API,这个时候怎么办呢?在mtk 的Native端(也就是CodeBase里)增加接口,扩展到mre的sdk中。下面是扩展mtk Mre sdk接口的具体步骤。现在以vm_extra_add(int a, int b),这个接口为例,扩展这个接口,将接口定义在native端,然后再mre应用中调用之。类似的,如果要将mtk native端其他的函数扩展到mre应用中调用,都类似的可参考。

1、增加接口,找到native端 mre\engine\framework下的Vmpromng.c,在里面增加如下函数


VMINT vm_extra_add(VMINT a, VMINT b)
{return a + b;
}

2、native端扩展接口,找到Vmpromng.c中的VMINT vm_get_sym_entry(char* symbol)函数,其实很多mre的接口都在这里扩展,可以看到类似下面的代码

   if(strcmp(symbol,"vm_pn_is_support") == 0)return (VMINT)vm_pn_is_support;if(strcmp(symbol,"vm_pn_get_global_setting") == 0)return (VMINT)vm_pn_get_global_setting;if(strcmp(symbol,"vm_pn_reg") == 0)return (VMINT)vm_pn_reg;if(strcmp(symbol,"vm_pn_dereg") == 0)return (VMINT)vm_pn_dereg;

这其实就是扩展接口,根据symbol的值,返回不同接口的地址,现在要增加vm_extra_add接口,则增加如下line 5-6代码,remake一下。

   if(strcmp(symbol,"vm_pn_is_support") == 0)return (VMINT)vm_pn_is_support;if(strcmp(symbol,"vm_pn_get_global_setting") == 0)return (VMINT)vm_pn_get_global_setting;if(strcmp(symbol, "vm_extra_add") == 0)return (VMINT)vm_extra_add;if(strcmp(symbol,"vm_pn_reg") == 0)return (VMINT)vm_pn_reg;if(strcmp(symbol,"vm_pn_dereg") == 0)return (VMINT)vm_pn_dereg;

3、在mre应用中使用新增加的vm_extra_add接口,以下是mre2.0的使用新增接口的使用,只需保证MRE_ENTRY("vm_extra_add");中的红色字体和if(strcmp(symbol, "vm_extra_add") == 0)中红色字体一致即可获取出函数地址。


#include "vmsm.h"typedef VMINT (*VmExtraAdd)(VMINT a, VMINT b);void vm_extra_add_test()
{VmExtraAdd* vm_extra_add = NULL;int a = 1, b = 2, c;vm_extra_add = (VmExtraAdd)MRE_ENTRY("vm_extra_add");if(NULL != vm_extra_add){c = vm_extra_add(a, b);}
}

当然Mre 1.0的使用接口方法会有点不同,看下面的代码


#include "vmsm.h"typedef VMINT (*VmExtraAdd)(VMINT a, VMINT b);
extern vm_get_sym_entry_t vm_get_sym_entry;void vm_extra_add_test()
{VmExtraAdd* vm_extra_add = NULL;int a = 1, b = 2, c;vm_extra_add = (VmExtraAdd)vm_get_sym_entry("vm_extra_add");if(NULL != vm_extra_add){c = vm_extra_add(a, b);}
}

mre应用和Native的交互之增加mre sdk接口相关推荐

  1. mre应用和Native的交互之消息传递

    mre应用和native的新增API接口可以实现mre单方面的调用native的代码,那如何实现native端调用mre里面的接口呢?比如现在来电话了,mre应用里面就对应的有些逻辑要处理,来电话了是 ...

  2. 【记录】python多线程的使用 线程同步(LOCK和RLOCK) python与mysql数据库交互实现增加和查找 python的格式化输出

    文章目录 多线程: _thread模块 threading模块: 线程同步(LOCK和RLOCK) 和mysql交互: 附:python的格式化输出 附录 多线程: _thread模块 例一 impo ...

  3. usb扩展坞同时接键盘鼠标_这个多功能扩展坞,增加多个接口,笔记本秒变工作站...

    原标题:这个多功能扩展坞,增加多个接口,笔记本秒变工作站 为了给笔记本电脑"减负" 越做越薄,接口也是越来越少 很多接口功能都被省去 ... 可是想接入的设备却有很多:鼠标.U盘. ...

  4. dcloud html5 sdk,DCloud H5与Android Native的交互--5+ SDK插件开发

    DCloud 5+ SDK插件开发 http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/66 开发文档的链接 首先官方文档这 ...

  5. PC软件/web网站/小程序/手机APP产品如何增加个人收款接口

    接入前准备 通过 XorPay 注册个人收款接口,原理是帮助你签约支付宝和微信(不需要营业执照)支持个人支付宝和个人微信支付接口,大概几分钟可以开通,开通后即可永久使用 PC 网站接入 效果:用户点击 ...

  6. Unity3d与iOS交互开发—接入平台SDK必备技能

    开发 手机游戏都知道,你要接入各种平台的SDK.那就需要Unity3d与iOS中Objective-C的函数有交互,所以你就需要用到如下内容: 一.Unity3d  To  iOS: 1.创建一个C# ...

  7. Lua封装增加九宫Sprite接口

    封装接口,增加九宫拉伸图片添加Sprite,支持removeTag替换 function AddScale9Sprite(png, pos, rect, innerRect, contentSize, ...

  8. Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口

    原地址:http://www.cnblogs.com/qingjoin/p/3638915.html Unity 3D 简单工程的创建.与Xcode 导出到iOS 平台请看这 Unity3D 学习 创 ...

  9. 新浪sea增加php,php接口 连接新浪云sea的mysql数据库

    自己写的时候采用了两种方式,都可以连接到新浪云sea mysql数据库数据取数 Hello, SAE! '; //echo "用户名:" .SAE_MYSQL_USER." ...

最新文章

  1. zoom:1是什么意思
  2. 491. Increasing Subsequences 递增子序列
  3. 使用PLSQL developer编辑数据
  4. 分布式锁-常用技术方案
  5. 伯颜的诗和“金佛”趣事
  6. scala 单元测试_Scala中的法律测试简介
  7. Mysql 查询返回结果空时间错误
  8. PSIM软件学习---06 元件参数文件应用
  9. 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板
  10. android 页面icon拉伸_页面转场: 忽略它可能会使你犯错
  11. c++语言“case”,C++ switch case详解
  12. linux 运行asf云挂卡,来点牛逼的,只用一条命令,ASF使用NAS群晖轻松挂卡,比图形界面还简单!...
  13. 紫光集团赵伟国:拒绝资本高手标签 做好科技产业重炮手
  14. PNG图像文件格式解析
  15. 2021!四川省科学技术厅开展瞪羚企业申报条件材料
  16. 阿里巴巴的“双11”高并发秒杀终极版教程(Java语言设计)
  17. 论文写作-引言怎么写
  18. 走进英特尔大连工厂,看英特尔存储技术赋能数据未来
  19. linux获取中括号内容,shell里使用正则表达式提取括号中的内容
  20. 刚刚,低调的DataVisor发布了“高调”的新产品“DCube”……

热门文章

  1. Fortran学习杂记(一)
  2. Ivan the Fool and the Probability Theory(思维+dp)
  3. TEAMCENTER更换许可证
  4. 网站频繁被挂马篡改 防止网站被攻击的解决妙招
  5. ambari报错总结01_李孟_新浪博客
  6. 计算机主板上的部件有哪些,主板上各部件有哪些
  7. MOXA 串口服务器的使用心得
  8. asp php主机空间域名注册
  9. php 富文本编辑器 UEditor 的使用,参数配置(保存图片路径)
  10. android 按home键 activity生命中周期,Android Activity 生命周期全解析