4

我不是 Android 专家,但我需要 Android-SDK 字节码来进行一些实验。

我编译了 Androids 源代码,但令人惊讶的是它输出了相同的 SDK,其中基本上包含抛出异常的蹩脚存根。

您可能知道开发人员包中包含的 android.jar 包含存根,所有类中的所有方法都只是 throw new RuntimeException("stub"); 此 SDK 的目的只是允许开发人员在 Eclipse 中针对 android.jar 进行构建,并在实际 SDK 所在的设备/模拟器上执行他们的程序。

我已经将 Java 文件从 Android 的 SDK 源中分离出来,但我没有成功编译它们。我想知道是否有办法这样做或从设备中提取它们。我的最终目标是在常规 JVM 上运行 Android 应用程序,而不是在模拟器或 Dalvik 上运行它们。

4

2 回答 2

0

android.jar 只适用于 Eclipse。如果我们在 Framework 中进行一些更改并尝试使用相同的构建 android.jar 文件,它将编译得很好。但它会出现运行时错误,因为您需要更新具有所有运行时 lib 和 jar 文件的 system.img。请从您的服装版本中替换 system.img。它会起作用的。

于 2012-06-25T09:01:44.323 回答
0

你不能在 JVM 上运行 android.jar 代码。就像您在问题中所说的那样,如果这样做,您将获得运行时异常。这是设计使然,您可以从流行的 java IDE(如 eclipse)获得所有语法和重构工具支持。

于 2012-06-05T20:00:51.310 回答