文章目录

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

一、安装 APK 插件应用


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

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

        // int COMPARE_VERSION = 0X01 << 3;// int SKIP_DEX_OPT = 0x01 << 6;// 或运算结果 72int flags = InstallStrategy.COMPARE_VERSION | InstallStrategy.SKIP_DEX_OPT;// 安装 SD 卡根目录中的 app.apk 文件// /storage/emulated/0/app.apkVirtualCore.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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// int COMPARE_VERSION = 0X01 << 3;// int SKIP_DEX_OPT = 0x01 << 6;// 或运算结果 72int flags = InstallStrategy.COMPARE_VERSION | InstallStrategy.SKIP_DEX_OPT;// 安装 SD 卡根目录中的 app.apk 文件// /storage/emulated/0/app.apkVirtualCore.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 安装启动插件完整代码 )相关推荐

  1. 怎样将「插件化」接入到项目之中?

    本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态载入框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代, ...

  2. 如何将「插件化」接入到项目之中?

    本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态加载框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代, ...

  3. 360 RePlugin插件化-项目接入

    RePlugin是一套完整的.稳定的.适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出"全面插件化"(全面特性.全面兼容.全面使 ...

  4. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  5. Android组件化打造知乎日报系列(一)—— 项目架构搭建

    Android组件化打造第三方知乎日报系列(一)-- 项目架构搭建 本节完整代码可以前往github查看,项目地址:github.com/N0tExpectEr- Android组件化打造知乎日报系列 ...

  6. 【Android 插件化】使用 PluginKiller 帮助应用开发者规避发布的 APK 安装包被作为插件的风险 ( 验证应用是否运行在插件化引擎中 )

    文章目录 前言 一.应用开发者规避 APK 安装包被作为插件 二.检测插件化环境 1.检查 AndroidManifest.xml 清单文件 2.检查 运行时 信息 3.检查生成的目录 4.检查组件 ...

  7. Android APP热更新中的插件化(Hook技术:反射或动态代理),Demo (2)

    修改AAPT,资源分区,用于Android插件化- https://github.com/BaoBaoJianqiang/AAPT -- Android下的挂钩(hook)和代码注入(inject) ...

  8. Android插件化最佳方案--Phantom 实践指南

    PhantomTest 满帮集团插件化框架Phantom使用演示 Phantom插件化演示(请star支持) 演示demo下载 注意:请将插件apk拷贝至sdcard下. Phantom介绍 Phan ...

  9. Android插件化探索与发现,腾讯字节等大厂面试真题汇总

    } DexPathList构造方法被调用的时候其实就是通过makeDexElements方法把dexPath进行遍历,依次加载每个dex文件,然后通过数组Element[]存放,而在DexPathLi ...

  10. Android插件化的探索

    简介 对于App而言,所谓的插件化,个人的理解就是把一个完整的App拆分成宿主和插件两大部分,我们在宿主app运行时可以动态的载入或者替换插件的部分,插件不仅是对宿主功能的扩展而且还能减小宿主的负担, ...

最新文章

  1. SP 2010: Getting started with Business Connectivity Services (BCS) in SharePoint 2010
  2. python控制鼠标,如何在Mac中使用Python控制鼠标?
  3. Maximum Subarray with Sum/ Multiply
  4. CSharp设计模式读书笔记(3):抽象工厂模式(学习难度:★★★★☆,使用频率:★★★★★)...
  5. 15年里,对您触动最大的中西方管理著作或思想是什么?
  6. 机器学习基础(十五)—— blending
  7. 史玉柱的“圈钱”神话3
  8. 51单片机STC89C52控制LED跑马灯左移(使用C51自带库_crol_()实现),详细注释
  9. 动画,在我眼中,详细
  10. HTML中的图片标签<img>
  11. 《杰克韦尔奇自传》读后感
  12. UML建模详解(1)—初识UML建模
  13. excel禁用宏的格式_Excel条件格式颜色宏问题
  14. 消除警告(升级后block警告)
  15. SoundPool的使用
  16. H5播放器内置播放视频(兼容绝大多数安卓和ios)
  17. linux 下MP4Box命令
  18. 在Excel中粘贴时怎样跳过隐藏行
  19. 监控系统计算机网络自检表,高速公路机电系统交工自检表格(全)
  20. 龙芯1b(LS1B200)使用LVGL7.0.1组件的初次体验

热门文章

  1. JSON WEB TOKEN(JWT)的分析
  2. hdu 2006 求奇数的乘积(c语言)
  3. App项目内存优化计划
  4. eclipse 将javaWeb项目转化成maven项目
  5. .NET基础 (05)内存管理和垃圾回收
  6. ABAP-小技巧/知识(1)
  7. 【原】高清显示屏原理及设计方案
  8. 那些年我们排过的序之希尔排序
  9. AS3.0函数定义的方法
  10. escape与encodeURI、encodeURIComponent的区别