从文章<<apkplug框架基础结构-01>>了解到apkplug框架中的插件是普通的apk文件,本节讲解插件开发流程。 java
一 插件工程结构 app
apkplug插件只比普通app多三个特殊文件 框架
1.org.osgi.framework.BundleActivator --插件入口类 函数
2.plugin.xml --插件配置文件 与AndroidManifest.xml类型类似 post
3.osgi1.6.3.jar --osgi.jar 文件定义了一些插件通讯接口 BundleActivator就在其中 spa
二 入口类BundleActivator编写 插件
BundleActivator就两个函数它们是public void start(BundleContext context),public void stop(BundleContext context)。它们分别在插件启动 中止的时候被apkplug框架调用,咱们能够再start函数中获取插件上下文BundleContext 而且初始化或注册一些插件提供的OSGI服务 xml
三 plugin.xml文件说明 blog
plugin.xml 与AndroidManifest.xml类型类似提供插件的系统属性,咱们也能够经过它定义一些自定义的属性,经过Bundle.getHeaders().get("key")获取 接口
plugin.xml有如下几个属性比较重要
1.Bundle-Name --插件名称
2.Bundle-SymbolicName --插件惟一标识相似安卓程序应用标识
3.Bundle-Version --插件版本号 ‘主版本号.次版本号.修订版本号 如1.1.6
4.Bundle-Activator --插件入口类 ,经过它框架可在启动插件的时候找到并调用start()函数
5.Bundle-Activity --插件的 Lanucher Activity路径
6.Export-Package --提供给其余插件使用的java类须要导出对应包路径(多个包以 ‘,‘ 分割)
7.Import-Package --插件内部没有这样的java类须要从其余插件导入(多个包以 ‘,‘ 分开)
注意事项:
Export-Package,Import-Package是相互配合的,但若是插件不须要与外部互交的话就无需配置它们。而咱们也应该尽可能少使用这两个属性
由于它们是插件直接耦合度增长不利于热插拔更新。
三 编译打包
最后将编辑好的插件工程打包编译生成apk文件,该apk文件即为插件,可经过apkplug提供的服务安装到宿主应用中<apkplug插件安装方法>
QQ交流群:132433459