delphi 调用java库_学习使用Delphi for android 调用Java类库

Android是一套非常优秀的移动端操作系统,Delphi Xe5中也能直接调用SDK中提供的各项API,但是delphi自己封装的AndroidAPI非常少,在安装目录的 source\rtl\android 中,而且所提供的android API也没有明确sdk版本区别,很多事情都得我们自己来封装了完成。

在Delphi中将java类的通过接口进行包装,分为类方法接口及类实例方法接口两个部分,然后通过一种工厂方法将这两种接口混合起来,对外提供统一的java实例服务;

类方法:顾名思义就是属于类本身,不依赖类实例化就可调用的方法,类方法包装,主要是指包装java中静态属性,静态方法,构造方法(构造函数包装需要将构造函数命名为init,缺省是一个,也可以多个或者没有);

类实例:就是依赖实例化类后才能调用的方法;

有了上面的概念,下面针对java的接口包装及类包装分别进行说明,所引用的代码为Jeff编写的android API 19 的语音朗读引擎接口包android.speech.tts.TextToSpeech的Delphi实现Androidapi.JNI.TTS.pas;

l 接口(java)

1. 类方法包装(继承IJavaClass)

JTextToSpeech_OnInitListenerClass = interface(IJavaClass)

['{58D32EFB-6528-4EC6-BA4F-28B22FE8E573}']

end;

注意命名规范,这样利于你,也利于大家J打头Class结尾,大小写保持后Java一致

2. 实例方法包装(继承IJavaInstance)

[JavaSignature('android/speech/tts/SynthesisCallback')]

JSynthesisCallback = interface(IJavaInstance)

['{190C13DE-BC7E-44CE-94F6-4AF1A84A4612}']

function audioAvailable(buffer: TJavaArray; offset: Integer; length: Integer): Integer; cdecl;

function done: Integer; cdecl;

procedure error; cdecl;<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值