【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
文章目录
- 一、VirtualAppEx 简介
- 二、配置 VirtualAppEx 编译环境
- 1、Android Studio 3.0
- 2、NDK 版本 ( Android NDK r10e )
- 3、配置远程仓库
- 4、Gradle 及 Gradle 插件配置
- 三、编译运行 VirtualAppEx 代码
- 四、博客源码下载
一、VirtualAppEx 简介
VirtualAppEx GitHub 地址 : https://github.com/xxxyanchenxxx/VirtualAppEx
xxxyanchenxxx 在 VirtualApp 2017年年底停止维护的开源代码的基础上 , 适配了 Android 9.0 操作系统 ;
目前的 VirtualApp 的商业版本适配到了 Android 12 , 但是需要购买商业授权 , 才能获得最新代码 ;
二、配置 VirtualAppEx 编译环境
1、Android Studio 3.0
编译 VirtualApp , 需要使用 Android Studio 3.0 版本的 IDE , 否则编译会失败 ;
参考博客 :
- 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 ) , 在该博客中 , 使用 Android Studio 4.2.1 , 报错
Could not determine java version from '11.0.8'.
; ( 版本太高了 ) - 【错误记录】Android Studio 编译报错 ( This Gradle plugin requires a newer IDE able to request IDE model leve ) , 在该博客中 , 使用 Android Studio 2.3 , 报错
Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+
; ( 版本太低了 )
最终使用 Android Studio 3.0 , 完成了 VirtualApp 的编译 ;
2、NDK 版本 ( Android NDK r10e )
该项目在 2017 年停止维护 , 使用的开发环境 , SDK , NDK 都比较老 , 这里也要使用相应版本的环境配置 , 尤其是 NDK 比较复杂 , 如果版本使用的不对 , 直接报错 ;
这里使用 Android NDK r10e(2015 年 5 月)的版本 ;
当前 SDK 中已经不支持 16 以下的 NDK 版本 ;
如果要下载老版本的 NDK , 要到 https://developer.android.google.cn/ndk/downloads/older_releases.html 页面下载 , 下载 Android NDK r10e(2015 年 5 月)下的 Windows 64 位 android-ndk-r10e-windows-x86_64.zip 版本 ; ( 点击上述链接也可以下载 )
下载后解压 , 并在 local.properties 配置文件中配置 ndk 路径 ;
ndk.dir=D\:\\001_Develop\\001_SDK\\Sdk\\ndk\\android-ndk-r10e-windows-x86_64\\android-ndk-r10e
sdk.dir=D\:\\001_Develop\\001_SDK\\Sdk
参考博客 【错误记录】Android Studio 编译报错 ( VirtualApp 编译 NDK 报错 | Error:A problem occurred configuring project ‘: ) ;
3、配置远程仓库
配置远程仓库 : 如果不配置 , 无法下载编译所需的依赖库 , 翻了墙也会下载失败 ;
在根目录下的 build.gradle 中的 buildscript.repositories
和 allprojects.repositories
中 , 添加如下两个远程仓库 , 否则编译环境依赖库下载都会出现问题 ;
google()mavenCentral()
配置完毕后的样式 :
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {jcenter()google()mavenCentral()maven {url 'https://maven.google.com/'name 'Google'}}dependencies {classpath 'com.android.tools.build:gradle:3.0.1'//classpath 'com.android.tools.build:gradle:3.2.1'classpath 'com.android.tools.build:gradle-experimental:0.11.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {jcenter()google()mavenCentral()maven {url "https://jitpack.io"}maven {url 'https://maven.google.com/'name 'Google'}}
}task clean(type: Delete) {delete rootProject.buildDir
}
4、Gradle 及 Gradle 插件配置
Gradle 版本 4.14.14.1 ;
Gradle 插件版本 3.0.13.0.13.0.1 ;
三、编译运行 VirtualAppEx 代码
按照上述编译环境配置完成后 , 源码编译通过 ;
运行效果 :
克隆一个 APP ;
克隆完成 :
启动应用 : 银行的 APP 居然能在插件化引擎中启动起来 , 一点防范都没有 …
四、博客源码下载
博客源码下载 : https://download.csdn.net/download/han1202012/33155039
【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )相关推荐
- 【Android 插件化】插件化简介 ( 组件化与插件化 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】使用 PluginKiller 帮助应用开发者规避发布的 APK 安装包被作为插件的风险 ( 验证应用是否运行在插件化引擎中 )
文章目录 前言 一.应用开发者规避 APK 安装包被作为插件 二.检测插件化环境 1.检查 AndroidManifest.xml 清单文件 2.检查 运行时 信息 3.检查生成的目录 4.检查组件 ...
- Android插件化开发之运行未安装apk的activity
1.介绍 我们知道PathClassLoader是一个应用的默认加载器(而且他只能加载data/app/xxx.apk的文件),但是我们加载插件一般使用DexClassLoader加载器,所以这里就有 ...
- Android插件化原理和实践 (一) 之 插件化简介和基本原理简述
1 插件化简介 Android插件化技术是一种这几年间非常火爆的技术,也是只有在中国才流行起来的技术,这几年间每每开发者大会上几乎都会提起关于插件化技术和相关方向.在国内各大互联网公司无不都有自己的插 ...
- Android插件化开发指南——插件化技术简介
文章目录 1. 为什么需要插件化技术 2. 插件化技术的历史 3. 插件化实现思路 3.1 InfoQ:您在 GMTC 中的议题叫做<Android 插件化:从入门到放弃>,请问这个标题代 ...
- 【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | Hook 点分析 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( 创建插件应用 | 拷贝插件 APK | 初始化插件包 | 测试插件 DEX 字节码 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
最新文章
- Linux shell 基础语法
- linux echo 变量 字符串,echo命令 – 输出字符串或提取Shell变量的值
- 【算法漫画】:什么是红黑树?(整合版)
- 每天一道LeetCode-----二叉树逐层遍历,每一层存在一个序列中,返回所有序列集合
- MyBatis实现模糊查询的三种方式
- 科技前沿---全息手机、全息图像
- shell编程实战总结
- 将Windows上的鼠标指针主题移植到Linux上
- 尚硅谷YYDS (视频连接)
- 脉内分析从零开始(持续更新)
- Python语言程序设计——实验五
- GitHub:git push问题remote:Support for password authentication was removed on August 13,2021.
- 看完了小米12发布会,连夜写下这篇JavaScript笔记
- 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题
- 区块链DAPP开发 以太坊智能合约框架有哪些
- win10无法访问xp计算机,XP系统访问Win10打印机被拒绝的解决方法
- c语言内部收益率,内部收益率 (C语言代码)
- java取石子_HDU 1527 取石子游戏
- L2-4 彩虹瓶 (25 分)-2019天梯赛全国总决赛
- 回顾苹果操作系统Mac OS的发展历史