android插件化-apkplug框架启动-02
2014-05-12 10:58
417 查看
本文章基于apkplug v1.6.7 版本编写,最新方式以官网最新消息为准
一 apkplug框架所需要的库文件(宿主) 可从http://git.oschina.net/plug/apkplugSDK 获取最新库文件
同时可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos
libs--
--libndkfoo.so armeabi armeabi-v7a mips x86
--Bundle(版本号).jar
将以上的文件加入宿主应用的libs目录下
二 AndroidManifest.xml 权限配置
插件平台需要几个基础的权限配置,请将以下的几个权限加入到工程的AndroidManifest.xml中
<!-- 插件平台需要的权限! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android: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中)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property,DisplayMetrics dm2)
1.activatorList 是一个BundleActivator的List(可以为null) 这些BundleActivator在框架启动时启动(系统级别)
2.PropertyInstance 框架保存配置信息的接口
//框架通过该接口获取本地保存的变量
public String getProperty(String key); //框架通过该接口设置本地变量
public void setProperty(String key,String v);
//框架启动时将自动安装该该函数提供的文件 "file:"+apk文件路径 (1.6.7以后不建议使用 可用BundleControl代替)
public String[] AutoInstall(); //框架启动时将自动安装并启动该该函数提供的文件 "file:"+apk文件路径 (1.6.7以后不建议使用 可用BundleControl代替)
public String[] AutoStart(); //调试模式 调试模式中退出APP时调用FrameworkInstance.shutdown();将删除所有插件
public boolean Debug();
四 框架启动成功获取FrameworkInstance接口
框架启动成功以后会返回org.apkplug.app.FrameworkInstance接口,它是宿主应用与apkplug框架和插件通信的接口。
//停止框架
public void shutdown(); //获取框架的SystemBundle apkplug框架启动时会创建一个SystemBundle 它的BundleID为0 同时它不可停止和卸载,我们科通过它与其他插件通信
public Bundle getSystemBundle(); //SystemBundle 插件的上下文 BundleContext
public BundleContext getSystemBundleContext();
启动代码:
view source
print?
至此框架便嵌入到应用中并启动成功了,下一篇文章将讲解怎样通过SystemBundle获取已插件和信息等操作
一 apkplug框架所需要的库文件(宿主) 可从http://git.oschina.net/plug/apkplugSDK 获取最新库文件
同时可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos
libs--
--libndkfoo.so armeabi armeabi-v7a mips x86
--Bundle(版本号).jar
将以上的文件加入宿主应用的libs目录下
二 AndroidManifest.xml 权限配置
插件平台需要几个基础的权限配置,请将以下的几个权限加入到工程的AndroidManifest.xml中
<!-- 插件平台需要的权限! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android: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中)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property,DisplayMetrics dm2)
1.activatorList 是一个BundleActivator的List(可以为null) 这些BundleActivator在框架启动时启动(系统级别)
2.PropertyInstance 框架保存配置信息的接口
//框架通过该接口获取本地保存的变量
public String getProperty(String key); //框架通过该接口设置本地变量
public void setProperty(String key,String v);
//框架启动时将自动安装该该函数提供的文件 "file:"+apk文件路径 (1.6.7以后不建议使用 可用BundleControl代替)
public String[] AutoInstall(); //框架启动时将自动安装并启动该该函数提供的文件 "file:"+apk文件路径 (1.6.7以后不建议使用 可用BundleControl代替)
public String[] AutoStart(); //调试模式 调试模式中退出APP时调用FrameworkInstance.shutdown();将删除所有插件
public boolean Debug();
四 框架启动成功获取FrameworkInstance接口
框架启动成功以后会返回org.apkplug.app.FrameworkInstance接口,它是宿主应用与apkplug框架和插件通信的接口。
//停止框架
public void shutdown(); //获取框架的SystemBundle apkplug框架启动时会创建一个SystemBundle 它的BundleID为0 同时它不可停止和卸载,我们科通过它与其他插件通信
public Bundle getSystemBundle(); //SystemBundle 插件的上下文 BundleContext
public BundleContext getSystemBundleContext();
启动代码:
view source
print?
01 | try |
02 | { |
03 | FrameworkInstance frame=FrameworkFactory.getInstance().start( null ,Launcher. this ,MyProperty.getInstance( this .getApplicationContext())); |
04 | } catch (Exception ex){ |
05 | System.err.println( "Could not create : " + ex); |
06 | ex.printStackTrace(); |
07 | StringBuffer buf= new StringBuffer(); |
08 | buf.append( "插件平台启动失败:\n" ); |
09 | buf.append(ex.getMessage()); |
10 | Toast.makeText( this , "插件平台启动失败" ,Toast.LENGTH_SHORT).show(); |
11 | } |
至此框架便嵌入到应用中并启动成功了,下一篇文章将讲解怎样通过SystemBundle获取已插件和信息等操作
相关文章推荐
- android插件化-apkplug框架启动-02
- android插件化-获取apkplug框架已安装插件-03
- android插件化-apkplug从宿主启动插件Activity-06
- android插件化-获取apkplug框架已安装插件-03
- android插件化-apkplug框架基本结构-01
- android插件化-apkplug从宿主启动插件Activity-06
- android插件化-apkplug中OSGI服务基本原理-08
- android 插件化 模块化开发(apkplug)
- android利用apkplug框架实现主应用与插件通讯(传递任意对象)实现UI替换
- android插件化-apkplugdemo源代码阅读指南-10
- android 插件化 模块化开发(apkplug)
- android下apkplug通用主题(皮肤)切换解决方案之主题包开发-02
- android使用apkplug实现插件化开发
- Android Small插件化框架--启动插件Activity源码解析(上)
- 《Android 插件化框架VirtualAPK :(一)基本集成》
- Android Small插件化框架--启动插件Activity源码解析(上)
- [置顶] 滴滴开源Android插件化框架VirtualAPK原理分析
- 使用apkplug实现Android客户端插件化
- 《Android 插件化框架VirtualAPK :(二)原理分析》
- android插件化-apkplug中以监听方式获取OSGI服务-09