有关android 应用的plugin框架调研

1. 借助android提供的shareduserid属性使多个不同的apt共用一个userid,以扫除权限壁垒,获取插件context,继而获取view并加载插件。这种方式是建立在已经安装完成的apt基础上的。

例子和参考:

1) 工作原理介绍:http://892848153.iteye.com/blog/1976988

http://www.cnblogs.com/hangxin1940/archive/2011/12/14/2288169.html

                                http://www.cnblogs.com/hangxin1940/archive/2011/12/17/2291380.html

相应框架例子: 安卓应用程序插件化开发框架 -AAP Framework

2) xCombine

工作原理介绍:http://wyouflf.blog.51cto.com/1553038/1305482

源码及简介地址:https://github.com/wyouflf/xCombine


2. 不安装插件,插件以.dex或.apt方式保存在手机的某个可被插件框架应用访问的空间,然后框架使用DexClassLoader加载插件类,然后通过createPackageContext方法为插件创建context,之后使用该context获取插件的资源,比如view, 然后将资源等在主框架中呈现

工作原理介绍:http://my.oschina.net/mutour/blog/179242

例子程序:http://pan.baidu.com/s/1td9cO


3. 不安装插件,插件以apt方式保存在手机上。插件框架使用DexClassLoader加载插件类。与第二种方法不同之处在于,方法二加载插件以获取资源,而本方法确是在获得Activity实例后,将框架的context植入插件,并强制插件在植入的context上运行。

工作原理介绍:探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

例子程序:source


4. 使用OSGI 框架

OSGI作为一个成熟的面向模块化的框架标准被许多诸如Eclipse等大型软件采纳以提供插件服务。其中OSGI的主流实现框架,比如Felix(Apache Felix Framework and Google Android)及子项目iPOJO(iPOJO on Android),还有knopflerfish都已提供了对android平台的支持。

实现例子:安织云apkplug (不开源)

                   Developing Android Application with Apache Felix - OSGi Framework


5. 其他参考:

1) Android动态加载jar、apk的实现


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值