到目前为止,这还不是编程问题或问题(至少目前对我而言不是),但是我认为讨论此问题可能会有所帮助,这有助于我们预防可能遇到的其他问题。
自从将Nexus 5中的虚拟机从Dalvik更改为ART以来,我开始遇到设备中当前存在的应用程序崩溃的情况。我首先通过WhatsApp应用程序意识到了这一点。它停止工作了。
我开始测试所有应用程序与ART的兼容性。到目前为止,我还没有发生任何崩溃,但我想知道是否需要做点什么,以使我们的应用与ART更加兼容并提高效率?它将如何影响我们现有的应用程序?
罗伯特·洛夫(Robert Love)在Quora回答中提供了一些细节。
根据我所看到的,我的猜测是,如果ART不支持,那么不兼容的主要原因将是即时生成DEX。随着ART切换到提前(AOT)编译模型而不是JIT,ART可能不支持生成DEX指令的应用程序。这也可能是进行中的ART的限制,将在以后的更新中对此进行纠正。
可以想象,引用的“改进的垃圾收集”可能会导致不兼容,但这会让我感到惊讶。GC行为的变化更有可能暴露出先前的GC方案掩盖的现有应用程序逻辑缺陷。
当然,随着时间的流逝,可能还会出现其他特定于ART的问题。
话虽这么说,但请记住,ART是一项正在进行中的工作。我的猜测是Google发布它的主要目的是为WhatsApp和类似的较大合作伙伴提供一个基于ART的运行时环境。如果您尝试运行您的应用程序,并且您的应用程序在ART上中断,则可能值得进行一些调查。但是,如果您的应用程序在ART上运行良好,则可能仍然可以正常运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句