文章目录
- 一、安装 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
CSDN : https://download.csdn.net/download/han1202012/33217276