virtualapk框架使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36791265/article/details/83579296

在这里插入图片描述
一.分为宿主和插件
二.
1.宿主project:
project下build gradle:
添加: classpath ‘com.didi.virtualapk:gradle:0.9.8.6’
在这里插入图片描述
注意: 这里使用的tools版本尽量设置为:classpath ‘com.android.tools.build:gradle:2.1.3’,因为使用3.0.1版本会有问题。
工程下build gradle:
(1)apply plugin: ‘com.didi.virtualapk.host’
(2)implementation ‘com.didi.virtualapk:core:0.9.8’ 在这里插入图片描述
设置Application ,初始化插件 PluginManager.getInstance(base).init();
并在清单文件中设置

public class VVApplication extends Application {
  @Override
  protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    // 初始化VirtualAPK
    PluginManager.getInstance(base).init();
  }
  @Override
  public void onCreate() {
    super.onCreate();
    // 加载存储根目录的插件apk,实际项目中按需保存
    String pluginPath = Environment.getExternalStorageDirectory().getAbsolutePath().concat("/plugin.apk");
    File plugin = new File(pluginPath);
    if (plugin.exists()) {
      try {
        PluginManager.getInstance(this).loadPlugin(plugin);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
}

2.插件project:
project下build gradle:
添加: classpath ‘com.didi.virtualapk:gradle:0.9.8.6’
在这里插入图片描述
工程下build gradle:
(1)apply plugin: ‘com.didi.virtualapk.host’
(2)最底部添加:
virtualApk {
packageId = 0x6f // The package id of Resources.
targetHost=’…/VVapp’ // The path of application module in host project. 这个根据你宿主项目所在位置来
applyHostMapping = true // [Optional] Default value is true.
}
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36791265/article/details/83579296