【问题标题】:Can Android execute a classes.dex (or .jar converted from classes.dex) without a manifest, drawables, etc?Android 可以在没有清单、drawable 等的情况下执行 classes.dex(或从 classes.dex 转换的 .jar)吗?
【发布时间】:2014-04-09 18:16:21
【问题描述】:

我有一堆 DEX 文件,但不是我自己从 APK 中提取的,所以我没有清单、drawable 以及通常包装在 APK 中的其他资源/等。是否可以在 Android 中执行这些?我尝试过 dalvikvm 来运行 .dex 本身以及 .jar 中包含的 .dex。我还找到了我认为是主要活动,但仍然没有运气。这甚至可能吗?

【问题讨论】:

  • 虽然下面的答案在特定情况下可能是合适的,但是是的,仍然可以使用 dex 类加载器加载 dex 文件并使用其中的类,只要它是为那个目的(即你自己创建的一个 dex 文件)。

标签: android dalvik dex


【解决方案1】:

无法运行这样的 Android 应用程序。必须打包成带有AndroidManifest.xml等的apk。

从终端使用 dalvikvm 和 dex/jar,如您所描述的,仅适用于 public void main(String[] args) 风格的命令行 java 应用程序。

【讨论】:

  • 谢谢!我花了很多时间试图让它发挥作用,并开始认为这是不可能的。
  • 也许这需要一个新问题.. 理论上是否可以根据 classes.dex 中的信息构建清单,足以构建和执行正常运行的 apk?
  • 对于大多数应用程序,应用程序的大部分 UI 都是用 XML 定义的。这些都没有包含在 classes.dex 中。
【解决方案2】:

您只能在命令行模式下运行 jar(包含 classes.dex)或 dex 文件。 dalvikvm 的工作方式与命令行中的 java 类似。

这里是一个例子:How to execute the dex file in android with command?

【讨论】:

    【解决方案3】:

    不,这是不可能的...只是看看它是如何完成的!

    更多详情请查看:http://www.alittlemadness.com/2010/06/07/understanding-the-android-build-process/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2018-07-16
      • 2016-02-22
      • 1970-01-01
      • 2013-03-17
      相关资源
      最近更新 更多