调用 公开 接口的 SO 的方法(安装失败了).docVIP

调用 公开 接口的 SO 的方法(安装失败了).doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
调用 公开 接口的 SO 的方法 (* ************************************************ *) (*                         *) (*  设计:爱吃猪头肉 Flying Wang 2013-12-20   *) (*      上面的版权声明请不要移除。      *) (*                         *) (* ************************************************ *) 应群里,不知道是哪位群友的要求。分析一个叫 HT518 扫描枪参考例程 的 JAVA 代码。 发现这个 代码有如下几个特点。 给出了 SO 文件。 给出了 SO 的 JAVA 定义。 SO 文件内的函数没有加密。 用 记事本打开 SO 文件如下图。 您可以找到这些接口的 定义文本。这就是没有加密。 同一个接口可能会出现 两次。 其中一个大概是预定义,另一个才是真实的定义。 上图是只有名称的定义 上图是完整的定义。 他们的顺序不一定。 所以同一个函数,请找对位置。 上图是 JAVA 文件内的定义。 两处的定义是有差别的。 我们需要将 JAVA 的定义翻译成 DELPHI 的同时,补齐丢失的参数。 以 gpio_switch_gps_bluetooth 为例。 下面是 JAVA 版的定义 static public native void gpio_switch_gps_bluetooth(int flag); 下面是 SO 中的定义 void gpio_switch_gps_bluetooth(JNIEnv*, _jobject*, int) 这个函数比 JAVA 版多了 2 个参数。 第一个 DELPHI 的定义类型是 PJNIEnv ,几乎完全一致。 第二个是 JNIObject,含义也差不多。 如果发现其他类型,请自己耐心的找对应的 DELPHI 类型。 一般都定义在 Androidapi.Jni 中。 下面是我自己翻译的结果 const HT518dll = libjni_gpio.so; _PU = ; procedure gpio_switch_gps_bluetooth(Env: PJNIEnv; Obj: JNIObject; flag: Integer) ; cdecl; external HT518dll name _PU + gpio_switch_gps_bluetooth {$IFNDEF POSIX}delayed{$ENDIF}; 注意不支持动态加载 这里告诉大家一个很不幸的消息。 很多 SO 文件的内容都看不到接口。 当然如果有 JAVA 的文件可以参考。 那么您可以试试加上 Env: PJNIEnv; Obj: JNIObject ,看看能不能用吧。 由于上述 SO 是一个硬件的东西。我无法测试。 现在我用一个叫 liaSerialPort.so 的SO 文件做测试。 现在的问题是 SO 的原始名称发布到 LIB 路径,编译过程就出错了。 换个名称,就可以边缘化过去,但是安装到机器上,偏偏少这个文件。其他文件都有了。 自己把这个文件弄好几个名称,都能发布到 LIB。就是正在用的那个,发布不过去。

文档评论(0)

kolr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档