由于项目需求以后需要使用Zeroc Ice,所以对改内容进行了一下简单学习,如果有错误希望大家纠正。由于本人的是windows系统,所以就以此为例(由于官方需要加载了Google的Js,所以你懂得)
1.去官网下载 ice
https://zeroc.com/downloads/ice
下载完成安装(配置Ice-3.7.0/bin路径),然后用cmd打开命令界面,输入slice2java -v
返回版本号,证明配置成功
2.用Slice生成java文件
由于我们后端已经定义好了ice文件的接口,我只需要把接口文件用slice语言生产java文件就行了,这里可以使用bat命令
slice2java --output-dir generated EmsIceInterface.ice
::copy .\generated\*.java
执行之后会在generated文件夹下生产java文件
3.配置Android项目
3.1首先在app目录下的build.gradle添加
dependencies {
compile 'com.zeroc:ice:3.7.0'
}
如何不想这样也可以以第三方加载ice.jar,下载地址
http://download.csdn.net/download/bingsman/10147688
3.2然后将2中生成的java文件复制到src/main/java文件夹下
4.开始使用ice进行数据请求
注意Android的http请求需要在子线程中
Runnable mRunnable = new Runnable() {
@Override
public void run() {
try(com.zeroc.Ice.Communicator communicator
= com.zeroc.Ice.Util.initialize())
{
com.zeroc.Ice.ObjectPrx base = communicator.stringToProxy("SimplePrinterCreater:ws -h 192.168.16.216 -p 6788");//请求的协议以及你的Ip和端口,我这是websocket所以是ws
printer = Ems.FontInterfacePrx.checkedCast(base);//本地ice object的代理对象
if(printer == null)
{
throw new Error("Invalid proxy");
}
int a = printer.GetNodeLevel(tokens[1], "linkID");//后台定义的ice方法
System.out.println(a);
};
}
};
new Thread(mRunnable).start();
已经可以通信了