先声明,本人对osgi了解不深,甚至在使用apkplug前对osgi一无所知,对osgi理解有误的地方请指出
因为官网的手册介绍过于简略,很多需要配置的属性和需要实现的方法没有详细写出,导致项目无法运行,需要对照demo一点一点寻找、纠正,比较费时。写这系列博文,一是为了让自己以后在正式使用时少花点时间,二是让其他小白在使用这个平台时少走弯路。
先复制一段apkplug首页的介绍
apkplug 是一个android平台下免费的OSGI框架,是android程序插件化,模块化开发利器
简单的说apkplug 是一个可以使用未安装apk文件内部各种代码资源的开发框架
apkplug 是一个极简的android插件化,模块化,轻应用解决方案,可以轻松的将android转化为模块化的轻应用
需要准备:
1. android开发环境
2. apkplug开发包(下载位置:http://www.apkplug.com/download/)
接下来开始搭建:
步骤1:新建android项目
步骤2:将开发包中以下文件复制到项目下的libs中
步骤3:
在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
并注册activity
<activity
android:name="org.apkplug.app.apkplugActivity"
android:configChanges="orientation|keyboardHidden" />
步骤4:
实现PropertyInstance 接口,这个接口的作用是为apkplug平台启动提供一些基础的系统变量
PropertyInstance 源码如下:
//可获取本地变量(必须实现)
//可将变量储存在本地(必须实现)
//启动时可自动安装插件的本地文件绝对路径
//启动时可自动启动(未安装时先安装再启动)插件的本地文件绝对路径
//是否启动调试模式 如果启动调试模式在退出app时调用FrameworkInstance.shutdown();可以清理所有已安装插件(利于下次启动重新安装新插件)
public boolean Debug()