Bundle

每一个插件被安装成功以后都被映射为一个org.osgi.framework.Bundle。即一个Bundle就是一个插件

插件的生命周期状态

Bundle.UNINSTALLED =0x01  //插件未安装
Bundle.INSTALLED   =0x02  //插件已安装但不能运行
Bundle.RESOLVED   =0x04  //插件可以运行状态
Bundle.STARTING =0x08  //插件正在启动中
Bundle.STOPPING=0x10   //插件正在停止中
Bundle.ACTIVE   =0x20   //插件处于活动状态

通过 Bundle.getState()可获取插件的当前状态。

Bundle 主要方法

public abstract int getState(); //插件当前状态

public abstract void start() //启动插件

public abstract void stop() //停止插件

public abstract void uninstall() //卸载插件

public abstract Dictionary getHeaders(); //插件的配置信息 即plugin.xml中的信息 (开发者可自定义key)

public abstract long getBundleId(); //插件在框架中的唯一id值,根据安装顺序依次递增,同时目前框架更新时id也会变化

public String getBundleActivity(); //插件的Lanucher Activity路径 多个Activity用 ,分割

Bundle.getBundleActivity().split(",")[0] //获取插件的第一个Lanucher Activity

public String getName(); //插件名称

public String getSymbolicName(); //插件包名 与packagename对应

public String getVersion(); //插件的版本号 1.0.0

public Bitmap getBundle_icon(); //插件的logo