Android的插件机制


Android下几种不同不同层次的插件介绍


什么是插件

百度百科是这样定义插件的:

插件的定位应该是开发实现原纯净系统平台/应用软件平台不具备的功能的程序,其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。

第0层插件 —— APK

根据百度百科的定义,我们可以认为Android系统本身就是一个巨大的插件系统。

而我们所开发的APK,就是针对Android系统的插件。

第1层插件 —— 资源/实现 替换

本层的代表是 友盟实验室 放出的 APF(Android Plugin Framework)。

这种插件实现方式,主要适用于将程序逻辑与界面分离,以便通过插件替换现有的实现逻辑。

如 APF所举的例子: 对同一款游戏,提供两个不同的插件,一个实现“低难度”的算法,另一个实现 “高难度”的算法。

代码下载地址

第2层插件 —— Activity 替换

本层的代表是 腾讯的手机游戏平台。

虽然 腾讯 没有对外发布源码,但我们可以通过以下文章对其有一个大致的了解。

探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

第3层插件 —— Fragment 替换

Fragment 是 Android 3.0 引入的。它同 Activity 一样,具有自己的生命周期,能够与用户交互。从理论上,我们可以只写一个Activity,然后将所有界面都通过不同的 Fragment 来实现。

本层的代表是 mmin18 所放出的一个Demo。

代码下载地址


声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权,转载请注明出处。