0
点赞
收藏
分享

微信扫一扫

【Android 插件化】VirtualApp 接入 ( 安装 APK 插件应用 | 启动插件 APK 应用 | MainActivity 安装启动插件完整代码 )

文章目录

  • 一、安装 APK 插件应用
  • 二、启动插件 APK 应用
  • 三、MainActivity 完整代码
  • 四、博客源码

一、安装 APK 插件应用

调用 VirtualCore.get().installPackage 方法 , 安装 APK 应用 ;

该方法传入的第一个参数是 APK 文件地址 , flags 值为 72 ;

// int COMPARE_VERSION = 0X01 << 3;
// int SKIP_DEX_OPT = 0x01 << 6;
// 或运算结果 72
int flags = InstallStrategy.COMPARE_VERSION | InstallStrategy.SKIP_DEX_OPT;

// 安装 SD 卡根目录中的 app.apk 文件
// /storage/emulated/0/app.apk
VirtualCore.get().installPackage("/storage/emulated/0/app.apk", flags);

二、启动插件 APK 应用

首先 , 调用 VirtualCore.get().getLaunchIntent("kim.hsl.svg", 0) 方法 , 获取启动插件应用的 Intent 对象 ; 第一个参数是包名 , 第二个参数是用户 id ( userId ) , 这里设置 0 即可 ;

然后 , 调用 VActivityManager.get().startActivity(intent, 0) 方法 , 启动插件应用 ; 第一个参数是插件应用 Intent 实例对虾NG , 第二个参数是用户 id ( userId ) , 这里设置 0 即可 ;

// 打开应用
Intent intent = VirtualCore.get().getLaunchIntent("kim.hsl.svg", 0);
/*VirtualCore.get().setUiCallback(intent, null);
try {
VirtualCore.get().preOpt("kim.hsl.svg");
} catch (Exception e) {
e.printStackTrace();
}*/
VActivityManager.get().startActivity(intent, 0);

三、MainActivity 完整代码

package com.example.myapp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.lody.virtual.client.core.InstallStrategy;
import com.lody.virtual.client.core.VirtualCore;
import com.lody.virtual.client.ipc.VActivityManager;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// int COMPARE_VERSION = 0X01 << 3;
// int SKIP_DEX_OPT = 0x01 << 6;
// 或运算结果 72
int flags = InstallStrategy.COMPARE_VERSION | InstallStrategy.SKIP_DEX_OPT;

// 安装 SD 卡根目录中的 app.apk 文件
// /storage/emulated/0/app.apk
VirtualCore.get().installPackage("/storage/emulated/0/app.apk", flags);
}

public void onClick(View view) {
// 打开应用
Intent intent = VirtualCore.get().getLaunchIntent("kim.hsl.svg", 0);
/*VirtualCore.get().setUiCallback(intent, null);
try {
VirtualCore.get().preOpt("kim.hsl.svg");
} catch (Exception e) {
e.printStackTrace();
}*/
VActivityManager.get().startActivity(intent, 0);

finish();
}
}

四、博客源码

​GitHub :​ https://github.com/han1202012/VirtualApp

举报

相关推荐

0 条评论