主应用框架启动

主应用启动Apkplug最简只需要一段代码即可,建议在Application中启动框架。

FrameworkInstance frame=FrameworkFactory.getInstance().start(List,Context);

得到System插件上下文BundleContext

BundleContext bundleContext = FrameworkFactory.getInstance().getFrame().getSystemBundleContext();

BundleContext 可以用于宿主管理插件,与插件通信等

初始化

插件托管能帮你使用后台上传的插件,所有功能在PlugManager统一获取,PlugManager获取方法:

PlugManager.getInstance()

在使用任何插件托管相关接口之前,需要提前调用init方法

PlugManager.getInstance().init(Context context,BundleContext bundleContext,String publickey,boolean isDebug)

参数说明:

  • publickey为后台为应用生成的key,到后台应用详情里可以找到。

  • isDebug: 是否debug模式,true:后台数据实时响应 false:后台数据1分钟后更新,1分钟内请求为缓存信息

如果是android 6.0系统,还需要调用requestPermission

PlugManager.getInstance().requestPermission(Activity activity)

来申请权限,并在onRequestPermissionsResult中调用回调来处理请求权限结果。

PlugManager.getInstance().onRequestPermissionsResult(int requestId, Activity activity,String[] permissions, int[] grantResults)


具体代码示例:

Application中启动apkplug框架:

BundleContext bundleContext = FrameworkFactory.getInstance().start(null, this).getSystemBundleContext();

只调用一次即可,可以在此保存bundleContext,其他用到的地方来此取用。

使用插件托管前需要初始化:

PlugManager.getInstance().init(this, bundleContext,publickey,isDebug);

系统6.0,权限申请

plugManager.requestPermission(this);

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    plugManager.onRequestPermissionsResult(requestCode, this,permissions,grantResults);
}

注销SDK

当不再使用功能后,调用onDestroy,注销上下文

@Override
protected void onDestroy() {
    super.onDestroy();
    plugManager.onDestroy();
}