项目中需要把连接服务器的部分做成一个service并生成一个jar模块。其他产品就可通过这个包来快速的开发连接服务器的应用软件。做成一个service的优点是:
1. 在后台运行,可以一直保持与服务器的连接
2. 服务可以只对外提供接口,具体功能在服务内部实现
3. 增加项目代码的耦合性
打开几个我使用的第三方sdk的jar包看看:
这是微信的语音识别sdk的jar包的内容
我们一般开发一个sdk当然是定义远程的service,也就是通过bingservice启动的方式来启动的服务。
同时,应用和服务通信的方式有Messenger和aidl,具体区别看别人的文章吧。
我们这里是开发一个sdk,因此选择了使用aidl,当然如果你的sdk并不包含任何服务,就没有这回事儿了。
现在以一个例子描述创建一个服务并调用的过程。例子的功能是设置一个数字的值到服务里,然后在从服务里读出来。主界面用于放置了两个按键用于触发以上两个动作,调用的结果在logcat里显示。
首先创建一个工程,,然后在项目src下面创建一个包,用于放置服务的代码以及一个包用于放置aidl文件。包内依次放置了服务类和aidl文件。创建完之后,内容如下。
其中CloudServiceInterface.aidl文件内容如下:
packagecom.rayleigh.aidl;
interfaceCloudServiceInterface {