技术库 > Java

android插件化-apkplug插件开发

技术库:tec.5lulu.com

1 插件工程结构

from:tec.5lulu.com

    apkplug插件只比普通app多三个特殊文件

    1.org.osgi.framework.BundleActivator --插件入口类

    2.plugin.xml                                    --插件配置文件  与AndroidManifest.xml类型相似

    3.osgi1.6.3.jar                                 --osgi.jar 文件定义了一些插件通信接口 BundleActivator就在其中

 

2 入口类BundleActivator编写

    BundleActivator就两个函数它们是public void start(BundleContext context),public void stop(BundleContext context)。它们分别在插件启动 停止的时候被apkplug框架调用,我们可以再start函数中获取插件上下文BundleContext 并且初始化或注册一些插件提供的OSGI服务

3 plugin.xml文件说明

    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是相互配合的,但如果插件不需要与外部互交的话就无需配置它们。而我们也应该尽量少使用这两个属性

    因为它们是插件直接耦合度增加不利于热插拔更新。

android插件化-apkplug插件开发


标签: xml osgi本文链接 http://tec.5lulu.com/detail/110dpn2ehcg9m85f5.html

我来评分 :6.5
1

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com