实际上,我一直认为答案是否定的:安卓应用必须在独立的ART实例上运行(就像Java在JVM上运行)以翻译和处理跨平台需求。然而,我对谷歌提供的安卓堆栈图感到困惑。它所绘制的方式似乎暗示着,系统应用程序+Java API框架可以通过本地C/C++库到达底部,而无需Android Runtime。但是,我想辩论的是,如果Java需要调用本地空间,则仍需要Android Runtime(JVM/legacy Dalvik)来解释源代码并通过JNI调用本地。简单地将Java API Framework放置在本地库之上会让我产生误导。如果有逻辑不完整或不正确的地方,请评论并纠正我。谢谢。
我曾经怀疑这是不可能的。然而,如果您将apk反编译为smali,您会发现smali是更易于阅读的Java字节码。将smali从apk转换为Java源代码,您就拥有了ART的Java翻译。 您可以模拟/替换/重新创建Native/ART实现,下面的所有内容都是自解释的。它是基于Linux的,并具有硬件属性,提供输入给ART,由C++检索,仅用于由Java生成系统应用程序。