zoukankan      html  css  js  c++  java
  • 简便方法搞定第三方SDK的Jar包在DelphiXE5中的引入

    简便方法搞定第三方SDK的Jar包在DelphiXE5中的引入

      (2014-02-21 17:30:17)
    标签: 

    android

     

    delphi

     

    xe5

     

    jar

     

    sdk

    分类: 编程杂集

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

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

    Delphi XE5 Update2

    Windows7 64bit

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

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

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

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

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

    C:Program Files (x86)EmbarcaderoRAD Studio12.0libandroiddebug

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

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

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

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

    @echo off

    setlocal

    set DX_LIB="%ANDROID_HOME%uild-toolsandroid-4.3lib"

    echo.

    echo 转换第三方jar为dex格式

    echo.

    call dx --dex --verbose --output=D:WorkSpaceweather.dex --positions=lines D:WorkSpaceweather.jar

    echo.

    echo 合并dex文件

    echo.

    java -cp %DX_LIB%dx.jar com.android.dx.merge.DexMerger D:WorkSpaceclasses.dex D:WorkSpaceweather.dex D:WorkSpacedelphi-classes.dex

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

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

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

    简便方法搞定第三方SDK的Jar包在DelphiXE5中的引入
    至此,将“jar打进dex”这事儿就这么轻松搞定了。

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

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

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

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

    介绍就到这里。

  • 相关阅读:
    转:CRF++
    ProBase
    图形数据库 Neo4j 开发实战
    Linux 下升级python和安装pip
    TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载
    开源项目kcws代码分析--基于深度学习的分词技术
    文本情感分类(二):深度学习模型
    文本情感分类(一):传统模型
    重要博文
    LSTM 文本情感分析/序列分类 Keras
  • 原文地址:https://www.cnblogs.com/westsoft/p/8443266.html
Copyright © 2011-2022 走看看