apklug插件托管服务开发教程之按条件查询云端插件-01
2014-05-21 21:09
453 查看
注:本文是基于托管服务TuoCloudService1.0.0讲解的 项目地址为http://git.oschina.net/plug/ApkplugCloudServiceDemo
一,插件托管服务支持的功能
v1.0.0支持的功能如下:
注:它们都是以OSGI服务对外提供服务的,关于OSGI可百度查询,但同时我们提供模板代码,我们希望大家可以利用模板代码渐进式的学习 <apkplug中OSGI服务基本原理>
1.插件托管:
开发者可将宿主应用与插件上传到服务器上,并随意绑定宿主与插件的对应关系。
2.客户端多条件查询:
OSGI服务名:"com.apkplug.service.SearchApp.appSearch"
目前支持的插件查询条件有 插件名(appname) 设置的关键词(b_keywords) 可按插件添加日期排序
注:插件必须与宿主绑定才可被查询到
3.插件版本状态查询:
OSGI服务名:com.apkplug.service.update.checkupdate
可批量查询该宿主对应的插件版本状态
4.插件文件下载:
OSGI服务名:"com.apkplug.service.download.AppDownload"
通过查询(2)或插件版本更新功能(3)可获取appBean,通过它可下载插件文件。
二,宿主应用集成插件托管服务
1)插件托管服务是一个jar包我们只需要将其放置于宿主文件夹的libs目录中即可。如图
2)将插件托管的OSGI服务注册到apkplug框架中
详细代码在 com.apkplug.cloudservicedemo.ProxyApplication 类中
三, 使用插件托管服务接口查询
上一步我们将托管服务已经全部注册到apkplug框架里面了,所以当使用时只需要找到服务,如下为模板代码:
注:代码位置 com.apkplug.cloudservicedemo.activity.SearchActivity
以上有两个需要我们填充
appSearchBean bean 是插件条件bean ,我们可以通过填充它来设置一些查询条件
AppSearchCallBack callback 查询过程或结果将通过该接口返回
注:查询完成后返回的appSearchBean arg2可以获取到该条件下服务端插件总体数量以及当前返回页
一,插件托管服务支持的功能
v1.0.0支持的功能如下:
注:它们都是以OSGI服务对外提供服务的,关于OSGI可百度查询,但同时我们提供模板代码,我们希望大家可以利用模板代码渐进式的学习 <apkplug中OSGI服务基本原理>
1.插件托管:
开发者可将宿主应用与插件上传到服务器上,并随意绑定宿主与插件的对应关系。
2.客户端多条件查询:
OSGI服务名:"com.apkplug.service.SearchApp.appSearch"
目前支持的插件查询条件有 插件名(appname) 设置的关键词(b_keywords) 可按插件添加日期排序
注:插件必须与宿主绑定才可被查询到
3.插件版本状态查询:
OSGI服务名:com.apkplug.service.update.checkupdate
可批量查询该宿主对应的插件版本状态
4.插件文件下载:
OSGI服务名:"com.apkplug.service.download.AppDownload"
通过查询(2)或插件版本更新功能(3)可获取appBean,通过它可下载插件文件。
二,宿主应用集成插件托管服务
1)插件托管服务是一个jar包我们只需要将其放置于宿主文件夹的libs目录中即可。如图
2)将插件托管的OSGI服务注册到apkplug框架中
详细代码在 com.apkplug.cloudservicedemo.ProxyApplication 类中
try{ //com.apkplug.appServiceManager 为TuoCloudService1.0.0.jar包提供的插件托管服务启动BundleActivator List activators=new java.util.ArrayList<BundleActivator>(); //将服务加入框架,框架将在启动时启动这些服务 activators.add(new appServiceManager()); frame=FrameworkFactory.getInstance().start(activators,this,new MyProperty(this.getApplicationContext())); }catch (Exception ex){ System.err.println("Could not create : " + ex); ex.printStackTrace(); int nPid = android.os.Process.myPid(); android.os.Process.killProcess(nPid); }
三, 使用插件托管服务接口查询
上一步我们将托管服务已经全部注册到apkplug框架里面了,所以当使用时只需要找到服务,如下为模板代码:
注:代码位置 com.apkplug.cloudservicedemo.activity.SearchActivity
/** * appSearch 插件搜索服务 * @param context 插件上下文 * @param bean 查询条件填充 bean * @param callback 查询结果回调接口 */ public void search(BundleContext context,appSearchBean bean,AppSearchCallBack callback){ ServiceReference reference=context.getServiceReference(appSearch.class.getName()); if(null!=reference){ appSearch service=(appSearch)context.getService(reference); if(service!=null){ service.search(bean,callback); } context.ungetService(reference); } }
以上有两个需要我们填充
appSearchBean bean 是插件条件bean ,我们可以通过填充它来设置一些查询条件
AppSearchCallBack callback 查询过程或结果将通过该接口返回
public void updataDate(BundleContext context){ bean=new appSearchBean(); //按插件被添加到分组(宿主)的时间逆序查询 bean.setG_order(appSearchBean.order_desc); //插件的关键词keyword bean.setB_keywords("工具"); bean.setPagenum(10); bean.setPage(0); //查询 search(context,bean,new impAppSearchCallBack()); }
class impAppSearchCallBack implements AppSearchCallBack{ public void onFailure(int arg0, final String arg1) { //服务查询失败 } public void onSuccess(int stutas, CallBackMSG msg,appSearchBean arg2) { //服务查询成功 if(stutas>=0){ if(msg.getStutes()>=0){ //查询正确 //获取查询到的插件 List<appBean> aps=(List)msg.getMsg(); }else{ //查询条件异常 } }else{ //网络异常 } } }
注:查询完成后返回的appSearchBean arg2可以获取到该条件下服务端插件总体数量以及当前返回页
相关文章推荐
- apklug插件托管服务开发教程之查询已安装插件版本状态-03
- apklug插件托管服务开发教程之上传应用到云端-04
- apklug插件托管服务开发教程之下载插件-02
- 【Android 开发教程】条件查询、过滤和排序
- 在Bootstrap开发框架中使用bootstrapTable表格插件和jstree树形列表插件时候,对树列表条件和查询条件的处理
- 使用Eclipse插件EGit进行Git代码托管和协同开发教程
- apkplug插件托管服务简化与简介-05
- MyEclipse使用Git代码托管服务——01.安装插件
- Flex学习教程,第一步,如何安装Flex开发环境(For Eclipse 插件)
- PDF教程 - 如何开发Firefox插件
- WCSF教程01☞配置开发环境
- Firefox扩展开发 (插件开发) Extension开发 入门教程 5步走 五步走
- web开发中的多条件查询处理技巧1则
- [教程]使用google code在线代码托管服务管理你的项目源码
- Web服务开发的相关教程(不断更新中…)
- 【转载】黑莓开发学习(入门教程)01-前言
- [图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子
- ArcGIS Engine基础开发教程之地图查询
- discuz论坛插件开发小教程