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

时间:2016-07-14 07:37:42

标签: android

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

我知道这是可能的,因为this app会这样做。

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

修改

我找到了另一个可以做到的应用

Parallel Space

2 个答案:

答案 0 :(得分:3)

这取决于您运行应用程序所需的程度以及构成"安装"该应用程序。请记住,.apk文件只是一个java .jar文件,其中一些额外的数据隐藏在各个地方。

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

  1. 打开并解析apk。 This APKParser class可能是一个很好的起点。
  2. 请求相关应用所需的任何权限,而您的应用已经请求了这些权限。在旧版本的Android中,您只需要请求所有可能的权限,但是对于较新的版本,您可以requestPermissions在方便时创建实际的权限请求对话框。
  3. 将classes.dex从应用程序复制到数据文件夹中。如果它使用你也使用的任何常用类,你可能想要从dex文件中取出这些类,这样你就不会遇到类加载冲突,或者对类加载器非常非常小心。
  4. Load the dex file使用DexFileLoader。
  5. 此时您可以加载apk中的任何代码,但您无法直接加载活动,因为它们未在AndroidManifest.xml中定义。相反,你需要创建一个" facade"在反射中承载实际活动的活动,并将诸如上下文之类的内容连接到反映的活动中。
  6. 这些步骤应该可以在不安装的情况下运行至少简单的应用程序。

答案 1 :(得分:1)

自己建一个!

Android是基于Kernal构建的,Linux也是如此。

以下是github上工作项目的链接,该项目在Linux环境中运行良好

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