您的位置:首页 > 移动开发 > Android开发

android插件化-apkplug框架启动-02

2014-09-21 10:57 260 查看
本文章基于apkplugv1.6.7版本号编写,最新方式以官网最新消息为准

一apkplug框架所须要的库文件(宿主)可从http://git.oschina.net/plug/apkplugSDK获取最新库文件

同一时候可下载最新的apkplugdemo源代码http://git.oschina.net/plug/apkplugDemos

libs--

--libndkfoo.soarmeabiarmeabi-v7amipsx86

--Bundle(版本).jar

将以上的文件增加宿主应用的libs文件夹下

二AndroidManifest.xml权限配置

插件平台须要几个基础的权限配置,请将下面的几个权限增加到project的AndroidManifest.xml中

<!--插件平台须要的权限!-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

另外将一下增加到<application></application>节点中

<!--插件平台须要的配置!-->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
三启动apkplug框架
你能够在应用的Application中启动框架详细代码例如以下(并不限制在Application中)
publicFrameworkInstancestart(ListactivatorList,ContextappContext,PropertyInstanceproperty)

publicFrameworkInstancestart(ListactivatorList,ContextappContext,PropertyInstanceproperty,DisplayMetricsdm2)

1.activatorList是一个BundleActivator的List(能够为null)这些BundleActivator在框架启动时启动(系统级别)

2.PropertyInstance框架保存配置信息的接口
//框架通过该接口获取本地保存的变量
publicStringgetProperty(Stringkey);//框架通过该接口设置本地变量
publicvoidsetProperty(Stringkey,Stringv);//框架启动时将自己主动安装该该函数提供的文件"file:"+apk文件路径(1.6.7以后不建议使用可用BundleControl取代)

publicString[]AutoInstall();//框架启动时将自己主动安装并启动该该函数提供的文件"file:"+apk文件路径(1.6.7以后不建议使用可用BundleControl取代)

publicString[]AutoStart();//调试模式调试模式中退出APP时调用FrameworkInstance.shutdown();将删除全部插件
publicbooleanDebug();
四框架启动成功获取FrameworkInstance接口
框架启动成功以后会返回org.apkplug.app.FrameworkInstance接口,它是宿主应用与apkplug框架和插件通信的接口。

//停止框架
publicvoidshutdown();//获取框架的SystemBundleapkplug框架启动时会创建一个SystemBundle它的BundleID为0同一时候它不可停止和卸载,我们科通过它与其它插件通信

publicBundlegetSystemBundle();//SystemBundle插件的上下文BundleContext
publicBundleContextgetSystemBundleContext();
启动代码:

viewsource

print?

01
try
02
{
03
FrameworkInstanceframe=FrameworkFactory.getInstance().start(
null
,Launcher.
this
,MyProperty.getInstance(
this
.getApplicationContext()));
04
}
catch

(Exceptionex){
05
System.err.println(
"Couldnotcreate:"

+ex);
06
ex.printStackTrace();
07
StringBufferbuf=
new

StringBuffer();
08
buf.append(
"插件平台启动失败:\n"
);
09
buf.append(ex.getMessage());
10
Toast.makeText(
this
,
"插件平台启动失败"
,Toast.LENGTH_SHORT).show();
11
}
至此框架便嵌入到应用中并启动成功了,下一篇文章将解说如何通过SystemBundle获取已插件和信息等操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: