第三方JNI SDK开发

(* ************************************************ *)(* *)(*    编写:爱吃猪头肉 & 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

鸟的翅膀在空气里振动,那是一种喧嚣而凛裂的,

第三方JNI SDK开发

相关文章:

你感兴趣的文章:

标签云: