在我的应用程序中创建一个模拟的Android环境

在我的应用程序中创建一个模拟的Android环境,android,Android,正如标题所说,我需要在我的应用程序中创建一个模拟的Android环境。我需要能够在此环境中安装应用程序,而无需在设备上安装它们 我知道这是可能的,因为它确实存在 我已经搜索了一段时间,我知道这个应用程序是通过创建一个Android环境来实现的,但我似乎没有找到一个关于如何实现的线索 编辑: 我发现另一个应用程序可以做到这一点 自己建造一个 Android是基于内核构建的,Linux也是如此 这里是一个链接,指向一个在Linux环境下工作非常出色的项目 是关于它是如何构建的文档 这取决于您需要运行

正如标题所说,我需要在我的应用程序中创建一个模拟的Android环境。我需要能够在此环境中安装应用程序,而无需在设备上安装它们

我知道这是可能的,因为它确实存在

我已经搜索了一段时间,我知道这个应用程序是通过创建一个Android环境来实现的,但我似乎没有找到一个关于如何实现的线索

编辑

我发现另一个应用程序可以做到这一点

自己建造一个

Android是基于内核构建的,Linux也是如此

这里是一个链接,指向一个在Linux环境下工作非常出色的项目


是关于它是如何构建的文档

这取决于您需要运行应用程序的程度以及“安装”应用程序的构成。请记住,
.apk
文件只是一个java
.jar
文件,其中包含一些隐藏在不同位置的额外数据

为了在不安装Android应用程序的情况下运行部分Android应用程序,您需要

  • 打开并解析apk。也许是个好的开始
  • 请求您的应用尚未请求的有问题的应用所需的任何权限。在旧版本的Android中,您只需请求所有可能的权限即可开始使用,但在新版本中,您可以在方便时创建实际的权限请求对话框
  • 将classes.dex从应用程序复制到数据文件夹中。如果它使用您也使用的任何公共类,那么您可能希望将它们从dex文件中删除,这样您就不会有类加载冲突,或者对类加载程序要非常非常小心
  • 使用DexFileLoader
  • 此时,您可以在apk中加载几乎任何代码,但无法直接加载活动,因为它们没有在您的
    AndroidManifest.xml
    中定义。相反,您需要创建一个“facade”活动来承载反射中的实际活动,并将上下文之类的东西连接到反射的活动中

  • 这些步骤可能至少可以在不安装的情况下运行简单的应用程序。

    它可以像此应用程序一样下载模块,而不是新的应用程序。他们只是为在同一个应用程序中运行下载的模块制作了一个程序。我听说它创建了并行环境。。检查编辑