到目前为止,这不是一个编程问题或问题(至少目前不适合我),但我认为讨论这个可能有助于我们防止可能出现的进一步问题。
自从我将Nexus 5中的虚拟机从Dalvik更改为ART后,我开始在我的设备中使用我当前拥有的应用程序崩溃。我首先用WhatsApp应用程序实现了它。它停止了工作。
我开始测试我的所有应用程序与ART的兼容性。到目前为止我没有任何崩溃,但我想知道如果我们需要做些什么来使我们的应用程序与ART更兼容并且效率更高?它将如何影响我们现有的应用程序?
答案 0 :(得分:3)
Robert Love在Quora答案中提供了some details。
基于我所看到的,我的猜测是,如果ART不支持,那么ART不兼容性的主要原因将是即时DEX生成。通过ART切换到提前(AOT)编译模型,而不是JIT,ART可能不支持生成DEX指令的应用程序。这也可能是正在进行的ART的限制,将在以后的更新中予以纠正。
可以想象,引用的“改进的垃圾收集”可能会引入不兼容性,但这会让我感到惊讶。更有可能的是,GC行为的改变可能会暴露以前GC方案掩盖的现有应用程序逻辑缺陷。
当然,随着时间的推移,可能会出现其他特定于ART的问题。
所有这一切,请记住ART是一项正在进行中的工作。我的猜测是谷歌发布它主要是为WhatsApp和类似的大型合作伙伴提供ART驱动的运行时环境。如果你尝试运行你的应用程序,并且你的应用程序打破了ART,那么可能值得进行一些调查。但是,如果你的应用程序在ART上很好,它可能会保持正常。
答案 1 :(得分:1)
目前在使您的应用兼容方面没有任何关系,ART是一项正在开发中的工作,因此在某些应用程序中存在问题,当ART成为标准化时,它将简单地“工作”,任何与此相矛盾的是,Google将相应发布有关修复的文档。