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的实现

有关android 应用的plugin框架调研的更多相关文章

  1. Android 主题动态切换框架:Prism

    Prism(棱镜) 是一个全新的 Android 动态主题切换框架,虽然是头一次发布,但它所具备的基础功能已经足够强大了!本文介绍了 Prism 的各种用法,希望对你会有所帮助,你也可以对它进行扩展, ...

  2. Android Small插件化框架源码分析

    Android Small插件化框架源码分析 目录 概述 Small如何使用 插件加载流程 待改进的地方 一.概述 Small是一个写得非常简洁的插件化框架,工程源码位置:https://github ...

  3. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  4. Android 进阶 Android 中的 IOC 框架 【ViewInject】 (下)

    上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ...

  5. android对象关系映射框架ormlite之一对多(OneToMany)

    前两天,用ormlite对单张表进行了基本的操作,但是,我们知道通常情况对于单张表格进行操作在实际情况中很前两天不现实,那么ormlite能否像Hibenate那样实现多张表之间的一对多,多对多(即O ...

  6. Android Dagger依赖注入框架浅析

    今天接触了Dagger这套android的依赖注入框架(DI框架).感觉跟Spring 的IOC差点儿相同吧.这个框架它的优点是它没有採用反射技术(Spring是用反射的),而是用预编译技术.因为基于 ...

  7. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

  8. 基于Retrofit+RxJava的Android分层网络请求框架

    目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...

  9. ThinkAndroid是简洁,快速的进行Android应用程序的框架

    ThinkAndroid简介ThinkAndroid是一个免费的开源的.简易的.遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单.快速的进行Android应用程序的开发,包含A ...

随机推荐

  1. 反射那些事儿——Java动态装载和反射技术

    一直以来反射都是只闻其声,却无法将之使用,近日尽心下来学习下,发现了很多精妙之处. Java动态装载和反射技术 一.类的动态装载 1.Java代码编译和执行的整个过程包含了以下三个重要的机制: ● J ...

  2. dom的element类型

    1)getElementById 后面的nodeName和tagName都一样 var a=document.getElementById("my_div"); console.l ...

  3. uva 10222 - Decode the Mad man

    #include <iostream> #include <string> #include <cctype> using namespace std; int m ...

  4. java学习笔记 (1) —— Strut2.3.24环境搭建

    1.打开MyEclipse,添加WebProject,名称为testStruts2 2.配置Tomcat环境. 1) 在窗口——首选项——MyEclipse——Servers下找到Tomcat6.x ...

  5. C#自定义Attribute值的获取与优化

    C#自定义Attribute值的获取是开发中会经常用到的,一般我们的做法也就是用反射进行获取的,代码也不是很复杂. 1.首先有如下自定义的Attribute [AttributeUsage(Attri ...

  6. 在git bush中如何退出vim编辑器

    写npm的pakege.json文件的files配置时,如果有不想包含的文件,那就要创建.npmignore文件排除,但windows系统又不允许创建以点开头命名的文件,咋办? 这时候就要用到linu ...

  7. Excel文件数据保存到SQL中

    1.获取DataTable /// <summary> /// 查询Excel文件中的数据 /// </summary> /// <param name="st ...

  8. Cassandra笔记--2. 安装

    1. 从apache官网下载Cassandra,我用的版本是2.1.8.压缩包解压,这里的目录是D:\cassandra\apache-cassandra-2.1.8 2. 配置环境变量  添加环境变 ...

  9. Java学习笔记--对象克隆

    转自:Edward_qing_Lee 的专栏 http://blog.csdn.net/edward_qing_lee/article/details/8249102 一.java 方法参数 理解: ...

  10. Nokia N9开启开发者模式

    最近淘宝买个二手Nokia N9,纯粹是好奇meego系统. 到手了开始折腾,官方源早关闭了,导致无法开启开发者模式,没有权限很不方便.翻了翻dospy论坛的帖子,发现了n9repomirror_0. ...