我不是Android专家,但我需要使用Android-SDK字节码进行一些实验。
我编译了Androids源代码,但令人惊讶的是它输出了相同的SDK,它基本上包含了抛出异常的蹩脚存根。
您可能知道开发人员包中包含的android.jar包含存根,并且所有类中的所有方法都抛出新的RuntimeException(“stub”);此SDK的目的只是为了允许开发人员在Eclipse中针对android.jar进行构建,并在实际SDK所在的设备/模拟器上执行他们的程序。
我已将Java文件与Android的SDK源分开,但我没有成功编译它们。我想知道是否有办法这样做或从设备中提取它们。我的最终目标是在常规JVM上运行Android应用程序,而不是在模拟器或Dalvik上运行它们。
答案 0 :(得分:0)
你无法在JVM上运行android.jar代码。正如您在问题中所说,如果您这样做,您将获得运行时异常。这是设计使您可以从流行的Java IDE(例如eclipse)获得所有语法和重新分解工具支持。
答案 1 :(得分:0)
android.jar仅适用于Eclipse。 如果我们在Framework中做一些更改并尝试使用相同的构建android.jar文件,它将编译正常。但它会有运行时错误,因为你需要更新system.img,它包含所有运行时的lib和jar文件。请从你的服装搭建中更换system.img。它会起作用。