文章目录
一、安装 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(); } }