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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 插件化VirtualApp 接入 ( 安装 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

以上是关于Android 插件化VirtualApp 接入 ( 安装 APK 插件应用 | 启动插件 APK 应用 | MainActivity 安装启动插件完整代码 )的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片

Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片

Android 插件化VirtualApp 编译运行 ( VirtualApp 简介 | 配置 VirtualApp 编译环境 | 编译运行 VirtualApp 官方示例 )

Android 插件化VirtualApp 编译运行 ( VirtualApp 简介 | 配置 VirtualApp 编译环境 | 编译运行 VirtualApp 官方示例 )