当前位置: 首页 > news >正文

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

2)  使用android的Intent, broadcast service及iPC机制
Plugins with user interface
INTENT + SERVICE + CONTENT PROVIDER = PLUGIN ARCHITECTURE

相关文章:

  • 数据结构之查找(php代码实现)
  • redis常用命令
  • (太强大了) - Linux 性能监控、测试、优化工具
  • Centos 源代码以及编译过程
  • PHP_NoteBook
  • 利用mongo profile 分析mongo慢查询
  • GlusterFS源代码解析 —— GlusterFS 简单介绍
  • rem是什么?
  • SYSOPER和SYSDBA特权的区别与联系
  • 混沌的艺术--- YChaos通过数学公式生成混沌图像
  • 高维数据的重要属性
  • andorid中xml相关
  • linux 下压缩大批量文件
  • 跟着实例学习ZooKeeper的用法: Curator扩展库
  • 如何从github上面拷贝源码
  • Bootstrap JS插件Alert源码分析
  • CAP理论的例子讲解
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JavaScript学习总结——原型
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Linux中的硬链接与软链接
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • node学习系列之简单文件上传
  • PHP 7 修改了什么呢 -- 2
  • PHP变量
  • scrapy学习之路4(itemloder的使用)
  • Spring Boot快速入门(一):Hello Spring Boot
  • 从0到1:PostCSS 插件开发最佳实践
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 记录:CentOS7.2配置LNMP环境记录
  • 前端面试之闭包
  • 突破自己的技术思维
  • elasticsearch-head插件安装
  • Python 之网络式编程
  • ​低代码平台的核心价值与优势
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #QT项目实战(天气预报)
  • #Ubuntu(修改root信息)
  • #传输# #传输数据判断#
  • $.ajax()方法详解
  • ()、[]、{}、(())、[[]]命令替换
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (五)网络优化与超参数选择--九五小庞
  • (一)WLAN定义和基本架构转
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献