使用apkplug实现Android客户端插件化
2015-05-15 16:49
211 查看
今天学习下使用apkplug实现Android客户端插件化,apkplug代码虽然不是开源的,但是说明文档比较全,可以很快到实现客户端插件化开发,参考文档:http://www.apkplug.com/
由于文档非常详细,这里记录些概念xìng的东西,加深记忆,具体使用看官方文档吧。
apkplug 介绍:
apkplug 是一个androidpíng台下免费的OSGI框架,是android程序插件化,模块化开发利器
apkplug 是一个极简的android插件化,模块化,轻应用解决方案,可以轻松的将android转化为模块化的轻应用
apkplug框架可以实现应用内部动态更新,绕过频繁提jiāo应用商店的难题
丰富灵活的通讯方式,可以让插件,主应用之间更加紧密的结合在一起。通用的OSGI服务接口又可以使插件之间保持最佳的耦合度降低应用复杂xìng
apkplug框架拥有灵活的通信接口定义方式
通过提前在宿主AndroidManifest.xml声明,插件可以支持Service组件
apkplug 可用于app的任何位置,也可以只作为一个小模块。它与应用融合在一起
我们可提供特殊的API接口,通过这些接口你可以设计出更加出sè的通用插件,诚挚希望与您合作
apkplug与其他android模块化框架有何不同
1.目前大部分模块化框架是基于android:sharedUserId方式开发的,插件apk需要独立安装,而apkplug插件与主应用融为一体不需要独立安装
2.目前大部分模块化框架需要开发者在开发插件时约定UI开发模式和通讯规则,而apkplug框架沿用了android原生的UI开发方式
3.apkplug与主程序的通讯方式除了支持访问数据库与SharedPreferences外还引入了OSGI服务的方式,增加了通讯灵活xìng与数据jiāo互扩展xìng
你可以用apkplug做什么?
1.将应用模块化可以轻易实现功能更新!最大的优势是在一个极小的功能更新时无需更新整个应用
2.通过插件化,模块化的方式减轻你的APP负担,彻底摆脱APP无限增大的问题
3.对用户而言可定制模块以让用户选择xìng安装,提供一套简洁的体验
4.简化开发流程,可将不同的功能jiāo由工程师负责开发,最终以插件的形式组合起来
5.将自己的APP变成一个轻应用píng台
使用apkplug的优势
1.模块化插件化开发与部署实现更快的迭代速度
2.提升用户体验,以模块化的部署方式可以减轻APP重量
3.轻松使用通用功能扩展模块如页面统计,主题切换等
4.降低应用的复杂度,插件化模块化的开发方式将各个功能分割开发。
apkplug插件注意事项
1.apkplug宿主应用的接入极为简单,开发者可参考demo代码模板在宿主应用任何位置启动框架
2.插件开发必须遵循一个规则:插件中不能存在宿主应用中相同的类(类包名+类名)
开发大体流程描述:
一.创建宿主项目(将插件píng台集成到了你的APP)
1、配置应用权限,就是些常规权限
2、配置工程,就是加入bundle.jar、libndkfoo.so、android-support-v4.jar包。
3、编写启动píng台需要的接口类
4、启动apkplug框架框架可以在宿主应用的任何一个activity里面启动。
二。创建一个插件
1、配置插件工程,osgi.jar(加入最新osgi.jar包)引入工程中,注意:osgi.jar不可打包到插件apk文件中,但你可以在调试过程中选择,而在最终打包是去掉以方便调试。
2、编写 BundleActivator,BundleActivator只是一个接口他有两个函数 分别是 start(BundleContext context) ,stop(BundleContext context) 框架启动和关闭插件时会分别调用
3、添加插件配置文档,plugin.xml 是一个配置表,通过它框架可以获取插件有关的信息,
三、在宿主应用中使用插件
1、将生成的插件apk文件加入主应用。当然你也可以在适当的时候通过网络下载插件,并且利用SDK提供的系统服务安装到框架中。
2、在宿主应用中启动插件。插件apk可以通过SDK提供的服务安装到框架中,也可以在PropertyInstance接口(宿主应用)中设置该插件为自动启动安装。
3、启动插件中的activity。注意:在插件中启动activity(包括启动其他插件或宿主应用的activity)不需要使用模板代码,它与android启动activity一样就可以了。
由于文档非常详细,这里记录些概念xìng的东西,加深记忆,具体使用看官方文档吧。
apkplug 介绍:
apkplug 是一个androidpíng台下免费的OSGI框架,是android程序插件化,模块化开发利器
apkplug 是一个极简的android插件化,模块化,轻应用解决方案,可以轻松的将android转化为模块化的轻应用
apkplug框架可以实现应用内部动态更新,绕过频繁提jiāo应用商店的难题
丰富灵活的通讯方式,可以让插件,主应用之间更加紧密的结合在一起。通用的OSGI服务接口又可以使插件之间保持最佳的耦合度降低应用复杂xìng
apkplug框架拥有灵活的通信接口定义方式
通过提前在宿主AndroidManifest.xml声明,插件可以支持Service组件
apkplug 可用于app的任何位置,也可以只作为一个小模块。它与应用融合在一起
我们可提供特殊的API接口,通过这些接口你可以设计出更加出sè的通用插件,诚挚希望与您合作
apkplug与其他android模块化框架有何不同
1.目前大部分模块化框架是基于android:sharedUserId方式开发的,插件apk需要独立安装,而apkplug插件与主应用融为一体不需要独立安装
2.目前大部分模块化框架需要开发者在开发插件时约定UI开发模式和通讯规则,而apkplug框架沿用了android原生的UI开发方式
3.apkplug与主程序的通讯方式除了支持访问数据库与SharedPreferences外还引入了OSGI服务的方式,增加了通讯灵活xìng与数据jiāo互扩展xìng
你可以用apkplug做什么?
1.将应用模块化可以轻易实现功能更新!最大的优势是在一个极小的功能更新时无需更新整个应用
2.通过插件化,模块化的方式减轻你的APP负担,彻底摆脱APP无限增大的问题
3.对用户而言可定制模块以让用户选择xìng安装,提供一套简洁的体验
4.简化开发流程,可将不同的功能jiāo由工程师负责开发,最终以插件的形式组合起来
5.将自己的APP变成一个轻应用píng台
使用apkplug的优势
1.模块化插件化开发与部署实现更快的迭代速度
2.提升用户体验,以模块化的部署方式可以减轻APP重量
3.轻松使用通用功能扩展模块如页面统计,主题切换等
4.降低应用的复杂度,插件化模块化的开发方式将各个功能分割开发。
apkplug插件注意事项
1.apkplug宿主应用的接入极为简单,开发者可参考demo代码模板在宿主应用任何位置启动框架
2.插件开发必须遵循一个规则:插件中不能存在宿主应用中相同的类(类包名+类名)
开发大体流程描述:
一.创建宿主项目(将插件píng台集成到了你的APP)
1、配置应用权限,就是些常规权限
2、配置工程,就是加入bundle.jar、libndkfoo.so、android-support-v4.jar包。
3、编写启动píng台需要的接口类
4、启动apkplug框架框架可以在宿主应用的任何一个activity里面启动。
二。创建一个插件
1、配置插件工程,osgi.jar(加入最新osgi.jar包)引入工程中,注意:osgi.jar不可打包到插件apk文件中,但你可以在调试过程中选择,而在最终打包是去掉以方便调试。
2、编写 BundleActivator,BundleActivator只是一个接口他有两个函数 分别是 start(BundleContext context) ,stop(BundleContext context) 框架启动和关闭插件时会分别调用
3、添加插件配置文档,plugin.xml 是一个配置表,通过它框架可以获取插件有关的信息,
三、在宿主应用中使用插件
1、将生成的插件apk文件加入主应用。当然你也可以在适当的时候通过网络下载插件,并且利用SDK提供的系统服务安装到框架中。
2、在宿主应用中启动插件。插件apk可以通过SDK提供的服务安装到框架中,也可以在PropertyInstance接口(宿主应用)中设置该插件为自动启动安装。
3、启动插件中的activity。注意:在插件中启动activity(包括启动其他插件或宿主应用的activity)不需要使用模板代码,它与android启动activity一样就可以了。
相关文章推荐
- 使用apkplug实现Android客户端插件化
- android使用apkplug实现插件化开发
- [置顶] android:使用small一步步实现插件化与热更新
- Android中MaterialDesign的使用,以及实现仿网易新闻客户端的UI效果(一)
- Android中MaterialDesign的使用,以及实现仿网易新闻客户端的UI效果(二)
- Android中MaterialDesign的使用,以及实现仿网易新闻客户端的UI效果(三)
- Android中MaterialDesign的使用,以及实现仿网易新闻客户端的UI效果(四)
- Android中MaterialDesign的使用,以及实现仿网易新闻客户端的UI效果(五)
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(六)使用domoticz联合arm上的mosquitto实现Android客户端远程控制
- 使用CrossApp实现版本更新管理(iOS端给AppStore链接,android端下载apk并替换)
- Mina框架使用---Android客户端的实现,断线重连,粘包处理(服务端非mina)
- Android开发使用json实现服务器与客户端数据的交互功能示例
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(八)使用domoticz+mosquitto+Android客户端实现控制mini2440上的LED(一)
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(九)使用domoticz+mosquitto+Android客户端实现控制mini2440上的LED(二)
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(十一)使用domoticz+mosquitto+Android客户端实现控制STM32板上的LED(二)
- Android使用网络技术实现新闻客户端实验
- Android中apk动态载入技术研究(2)android插件化及实现
- Android插件化(二):使用DexClassLoader动态载入assets中的apk
- android插件化-apkplug从宿主启动插件Activity-06
- Android客户端之“微服私访”App的系统学习(四)使用ViewPager+Fragment实现Tab