android插件化-安装apkplug插件-04
2014-05-14 13:12
471 查看
本节我们将练习怎样安装(更新)一个插件。本文章基于v1.6.7版本进行说明,最新的方式以官网为准
可下载最新的apkplugdemo源码http://git.oschina.net/plug/apkplugDemos
一 apkplug插件
apkplug插件是一个apk文件,它与普通的android APP基本相同(开发方式),本节只讲插件安装接口而插件开发将在后面的章节详细讲解
二 apkplug 插件安装服务
apkplug内嵌一个OSGI服务,所以框架大部分接口都是通过OSGI服务发布的,在这里你可以不用详细了解OSGI服务的原理,一下我们将给出调用插件安装服务的模板代码。你在开发时可以直接套用。
三 BundleControl接口
插件安装服务接口为 org.apkplug.Bundle.BundleControl
// startlevel =2 isCheckVersion=true
Bundle install(BundleContext context,String loaclFilePath,installCallback callback)
// v1.6.7 新增接口 建议使用最新的这个调用接口
Bundle install(BundleContext context,String loaclFilePath,installCallback callback,int startlevel,boolean isCheckVersion)
* loaclFilePath --- 插件apk文件的路径 格式为 "file:"+apk文件绝对路径
* installCallback ---插件安装的回调函数 通过它可获知插件安装状态
* startlevel ---插件启动级别 ,小于default_startlevel的插件会在框架启动时自起 default_startlevel=2
* isCheckVersion ---安装时是否检测已有插件版本 true 检测版本如果已安插件版本与现有插件版本相同将不安装 false 不检测覆盖安装
四 获取BundleControl服务
获取服务的模板代码为:
调用函数安装插件
//插件启动级别为1(会自启) 并且不检查插件版本是否相同都安装
install("file:"+filepath[0],new myinstallCallback(),1,false);
五 插件卸载
Bundle.uninstall();
官网www.apkplug.com
QQ交流群:132433459
可下载最新的apkplugdemo源码http://git.oschina.net/plug/apkplugDemos
一 apkplug插件
apkplug插件是一个apk文件,它与普通的android APP基本相同(开发方式),本节只讲插件安装接口而插件开发将在后面的章节详细讲解
二 apkplug 插件安装服务
apkplug内嵌一个OSGI服务,所以框架大部分接口都是通过OSGI服务发布的,在这里你可以不用详细了解OSGI服务的原理,一下我们将给出调用插件安装服务的模板代码。你在开发时可以直接套用。
三 BundleControl接口
插件安装服务接口为 org.apkplug.Bundle.BundleControl
// startlevel =2 isCheckVersion=true
Bundle install(BundleContext context,String loaclFilePath,installCallback callback)
// v1.6.7 新增接口 建议使用最新的这个调用接口
Bundle install(BundleContext context,String loaclFilePath,installCallback callback,int startlevel,boolean isCheckVersion)
* loaclFilePath --- 插件apk文件的路径 格式为 "file:"+apk文件绝对路径
* installCallback ---插件安装的回调函数 通过它可获知插件安装状态
* startlevel ---插件启动级别 ,小于default_startlevel的插件会在框架启动时自起 default_startlevel=2
* isCheckVersion ---安装时是否检测已有插件版本 true 检测版本如果已安插件版本与现有插件版本相同将不安装 false 不检测覆盖安装
四 获取BundleControl服务
获取服务的模板代码为:
01 | public void install(String path,installCallback callback, int startlevel, boolean isCheckVersion) throws Exception{ |
02 | System.out.println( "安装 :" +path); |
03 | BundleContext mcontext=frame.getSystemBundleContext(); |
04 | ServiceReference reference=mcontext.getServiceReference(BundleControl. class .getName()); |
05 | if ( null !=reference){ |
06 | BundleControl service=(BundleControl) mcontext.getService(reference); |
07 | if (service!= null ){ |
08 | service.install(mcontext, path,callback, startlevel,isCheckVersion); |
09 | } |
10 | mcontext.ungetService(reference); |
11 | } |
12 | } |
//插件启动级别为1(会自启) 并且不检查插件版本是否相同都安装
install("file:"+filepath[0],new myinstallCallback(),1,false);
五 插件卸载
Bundle.uninstall();
官网www.apkplug.com
QQ交流群:132433459
相关文章推荐
- android插件化-监听apkplug插件安装/卸载状态-05
- android插件化-获取apkplug框架已安装插件-03
- android插件化-获取apkplug框架已安装插件-03
- android插件化-apkplug插件开发-07
- android插件化-apkplug从宿主启动插件Activity-06
- android插件化-apkplug从宿主启动插件Activity-06
- android插件化-apkplug框架启动-02
- Android插件技术——(四)加载未安装apk
- android 插件化 模块化开发(apkplug)
- Android插件化开发,运行未安装apk中的Service
- android 插件形式运行未安装apk
- Android插件化(三)加载插件apk中的Resource资源
- Android插件化开发---执行未安装apk中的Service
- Android 插件化技术 加载任意未安装apk
- android插件化-apkplug中以监听方式获取OSGI服务-09
- Android插件技术——(三)加载未安装apk
- android插件化-apkplug框架基本结构-01
- 使用apkplug实现Android客户端插件化
- android插件化-apkplug中以监听方式获取OSGI服务-09
- android插件化-apkplugdemo源代码阅读指南-10