第三方JNI SDK开发——Delphi xe5

(* ************************************************ *)
(*                                                                                                  *)
(*                   编写:爱吃猪头肉 & Flying Wang                  *)
(*               上面的版权声明请不要移除。        *)
(*                                                                                                  *)
(* ************************************************ *)


请大家从群共享下载(① FireMonkey[DELPHI XE5]  165232328)
java 文件 Classes.DEX 合并.zip
里头的
BuildDex.bat.utf8.txt
就是我们要讨论的重点。


我发现现在的 第三方 SDK 分 3 种。
1. HTTP 类的。webservice rest 等。用  INDY 控件 或 webservice rest 控件即可。
2. NDK SO 类的。大家看看 Androidapi.inc 和 Androidapi.NativeWindowJni 的内容,大家就知道如何调用了。EMB 代码中还有其他 SO 的。简单的说和 调用 DLL 差不多,就是不能 LoadLibrary。要静态定义接口。
3. JNI SO 类的。这种接口,给您 SO 的同时。会给您一些 JAVA 文件。

其中第 3 种里头还分 2 种。
3.1 JAVA 文件只有一个,就是 SO 文件的接口。
3.2 JAVA 文件很多,是对 SO 文件的再次封装。

我目前只知道 3.1 类型的做法。

先将 SO 文件发布到工程中。
打开工程后。
Project -> Deployment
打开的界面中
选择 configuration
选到 All configurations - All platforms 或者 All configurations - xxx platform。
在这个状态下 增加 或 删除 文件。
选择 新增 按钮,将 SO 文件加入。 然后编辑 RemotePath 列。路径是 \lib\armeabi ,就是和您的工程生成的 SO 文件放同一个目录。


然后 将 SDK 中的 JAVA 接口文件 带上路径 放入 SRC 目录。当然之前 SRC 里的文件目录都删了吧。
修改 BuildDex.bat 。
将里头的 JAVA 路径修改成您现在的路径。

顺便修改 BAT 中的各种路径定义。确保路径是正确的。

然后运行 BuildDex.bat 。

这样您就得到了带有 SDK 的 DEX 文件了。

这次您需要将 classes.dex 的发布修改下。不再从 EMB 的安装目录找这个文件,而是使用这个新生成的文件。

最后,您按照 群共享的文档 JNI 翻译 转 Delphi 的 经验 方法.txt 里头的说明,将您的 JAVA 接口文件翻译成对应的 JNI PAS 文件。

对于 3.2 类型的 SDK。
目前只能猜想
1. 直接将 JAR 和 DEX 合并,翻译 JAR 中的 大部分或者是有 JAVA 接口文件。
2. 想办法将 SDK 中的 JAVA 文件和 JAR 都和 DEX 合并。但是接口文件好像还是需要翻译的。

具体开参考 jar 文件Classes.DEX 合并——Delphi导入(sdk)jar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值