打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(7)简便方法搞定第三方SDK的Jar包在DelphiXE5中的引入

折腾了几天终于成功,特此分享给新接触的同学,希望能有点儿帮助。

—————环境介绍————————

Delphi XE5 Update2

Windows7 64bit

A、以“中国气象(www.weather.com.cn)”的天气预报AndroidSDK为范例,它提供仅一个jar文件:SmartWeatherAPI_Android_3.0.2.jar (为描述方便,我改文件名为weather.jar)

(如有的Android SDK既有jar又有so文件,也没问题,jar继续按下面方法搞,而so文件在Delphi工程中发布到运行程序的library\lib\armeabi\目录就可以了。注:我理解so文件就类似dll,供java在虚拟机中调用的,第三方不方便公开让你看里面的细节。)

B、假设在D盘创建一个目录为D:\WorkSpace,我们的操作都在这里面进行。

——————————————————

 

第一步:把Delphi自带的classes.dex复制到D:\WorkSpace,改名为delphi-classes.dex。该文件一般在这个目录下找到:

C:\Program Files (x86)\Embarcadero\RADStudio\12.0\lib\android\debug

(注:本例子使用debug版来实验的,要用release版也同理)

 

第二步:把SDKjar文件也复制到D:\WorkSpace中来,已改名为weather.jar

 

第三步:用下面这个批处理dxANDmerge.bat来实现“第三方jar打包为dex文件,再将两个dex文件合并”的目的。(关于要用到的Android开发的Windows环境变量配置,就不赘述了,网上很多文章可看。)

————————————

@echo off

setlocal

setDX_LIB="%ANDROID_HOME%\build-tools\android-4.3\lib"

 

echo.

echo 转换第三方jardex格式

echo.

call dx --dex --verbose --output=D:\WorkSpace\weather.dex--positions=lines D:\WorkSpace\weather.jar

 

echo.

echo 合并dex文件

echo.

java -cp %DX_LIB%\dx.jar com.android.dx.merge.DexMergerD:\WorkSpace\classes.dex D:\WorkSpace\weather.dexD:\WorkSpace\delphi-classes.dex

————————————

 

这样新的classes.dex里面就有了SDK的内容了。

我们可以用dex2jar工具(另行下载)把这个新classes.dex文件转为jar文件,然后用jd-gui工具(另行下载)打开jar文件看看,可以看到除了embarcadero原有封装的内容,新增的天气预报内容也包含进去了,如下图所示:


至此,将“jar打进dex”这事儿就这么轻松搞定了。

下面要做的事情,主要有:

1)用新的classes.dex在工程的发布设置里面替换Delphi默认的;

2)按照人家SDK的说明文档指引,仔细修改AndroidManifest.template.xml

3)按照人家SDKjar反编译出来的java代码,仔细翻译成诸如JObjectJObjectClass这类型的Delphi能使用的类和接口说明。(注:我实验了调用个别类和接口成功,说明新的dex文件确实对SDK生效了,但还没有实际完成一套完整的SDK翻译工作,慢慢来吧。)

 

介绍就到这里。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
艰辛的Delphi 11.1 Android项目升级之路(成功升级的注意事项)
android支持第三方jar包,以及Eclipse如何导入jar包
自行修改android.jar使其包含隐藏api
Android 代码混淆及反编译方法
android命令行打包、签名+自动打包器
android的编译和运行过程深入分析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服