有关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

有关android 应用的plugin框架调研

时间: 2024-10-08 15:54:00

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

Android动态加载框架DL的架构与基本原理解析

转载请注明出处,本文来自[ Mr.Simple的博客 ]. 我正在参加博客之星,点击这里投我一票吧,谢谢~ 前言 最近这一两年,Android App使用插件化技术开发的数量越来越大,其实还是业务地快速膨胀导致,需求越来越多,App越来越臃肿.虽然手机的内存空间不断地的增大,但是太大的安装包给用户也造成了心理压力.于是大家都会想到插件化的开发方式,把App做成一个平台,而不是一个独立的app.平台上可以集成各种各样的功能,功能模块也插件的形式添加进来,这些插件不需要安装,只需要用户按需下载到某个

android后台信息推送调研

android后台信息推送调研 前言 我们已经开发了一个应用,这里称为A应用,类似于天气weather那种.现在的任务就是如果这些A应用有新版本了,或者天气出现比较恶劣的状况,要及时在手机上进行消息的推送,提示有新的应用可以更新了,和天气将要变遭了,提醒用户需要注意的情况.及需要实现消息推送机制. 推送方式基础知识 要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现.第二种就是 服务器使用Pu

android插件化-apkplug框架基本结构-01

由于框架开发更新频繁的原因一直都没有时间写出框架的基本架构让大家云里雾里的,现在框架已基本稳定和完善,我就抽出时间写写关于apkplug框架的基本架构和原理,同时也跟大家一起研究利用apkplug框架玩出更新的功能. 一 apkplug的基本架构 apkplug简单的说是一个容器它将apk文件解析并映射成Bundle ,下文我们简称Bundle为插件.如下图 每一个apk插件被映射到apkplug框架中就是一个Bundle对象,完整路径为 org.osgi.framework.Bundle .通

Android 主题动态切换框架:Prism

Prism(棱镜) 是一个全新的 Android 动态主题切换框架,虽然是头一次发布,但它所具备的基础功能已经足够强大了!本文介绍了 Prism 的各种用法,希望对你会有所帮助,你也可以对它进行扩展,来满足开发需求. 先说一下 Prism 的诞生背景.其实我没打算一上来就写个框架出来,当时在给 Styling Android 博客写一些使用 ViewPager 来实现 UI 动态着色的系列文章,文中用到的代码被我重构成适合讲解用的组件,然后我发现这些代码可以整理成一个简洁的 API,于是乎便有了

Android Bitmap 开源图片框架分析(精华三)

主要介绍这三个框架,都挺有名的,其他的框架估计也差不多了 Android-Universal-Image-Loaderhttps://github.com/nostra13/Android-Universal-Image-Loader ImageLoaderhttps://github.com/novoda/ImageLoader Volley(综合框架,包含图片部分)https://github.com/mcxiaoke/android-volley 扯淡时间,可以跳过这段这些开源框架的源码还

Android Bitmap 开源图片框架分析(精华四)

disk缓存主要难点在于内存缓存,disk缓存其实比较简单,就是图片加载完成后把图片文件存到本地方便下次使用 同样,先贴一下官方主页的介绍(主页地址见文章最开始处)和内存缓存差不多,根据算法不同提供了几种类别,可以自行通过ImageLoaderConfiguration.discCache(..)设置<ignore_js_op> 硬盘缓存,保存是以文件的形式框架提供了4种类型,具体算法规则不同,看名字我们大概也能知道对应意思 UnlimitedDiscCache                

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

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

转:Android preference首选项框架

详解Android首选项框架ListPreference 探索首选项框架 在 深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景.假设你正在编写一个应用程序,它提供了一个搜索 飞机航班的工具.而且,假设该应用程序的默认设置是根据机票价格由低到高的顺序显示航班,但用户可以将首选项设置为始终根据最少停站数或特定航线来航班. 如何实现这一场景? ListPreference 显 然,必须为用户提供UI 来查看排序选项列表.该列表将包含每个选项的单选按钮,

Android 多线程多任务下载框架的实现(一)

什么是多线程多任务下载框架: Android 多线程多任务下载框架 封装了一个下载工具类,该下载工具支持多线程下载,下载任务队列,下载进度更新,取消下载等.可用于应用市场app的下载,音乐下载等. 为什么需要多线程多任务下载框架: 我们在开发Android 应用市场的时候需要下载apk,这个时候用户希望能同时下载多个apk并且显示正确的进度条信息,且下载速度快,那么我们就需要多线程多任务下载框架来支持这些功能,来达到很好的用户体验. 怎么实现多线程多任务下载框架: 涉及到的知识点: 1.线程操作