驱动之家网站(黑苹果驱动之家)
Android libdvm.so 与 libart.so系统升级到5.1之后,发现system/lib/下面没有libdvm.so了,只剩下了
Android libdvm.so 与 libart.so系统升级到5.1之后,发现system/lib/下面没有libdvm.so了,只剩下了libart.so对于libart模式,从4.4就在Developer optins里面就可以手动选择,到5.1算是转正了。
1,什么是libdvm,libartAndroid KK里引入了ART虚拟机作为Dalvik虚拟机的替代,其主要目的是把Bytecode的翻译优化从运行时提前到安装时, 以空间换时间,从而达到更流畅的用户体验。
目前,KK中Dalvik仍是默认的虚拟机,但用户可以在Developer Option中切换到ART虚拟机坊间传闻在下一版可能会转正Dalvik和ART的实现分别位于libdvm.so和libart.so这两个库。
两个可以同时build也可以只build一个,通过Makefile中的变量PRODUCT_RUNTIMES来控制(https://source.android.com/devices/tech/dalvik/art.html)。
ART本质和Dalvik是一样的,是将Java的Bytecode翻译成Native code它的主要的实现代码在AOSP的art目录下,另外在libcore/libart/下还有一部分Java层的实现2,dex翻译成机器码,在libdvm模式下和Libart模式下是有区别的
framework/native/cmds/installd/commands.c涉及到的命令有dex2oat和dexoptlibdvm是运行时翻译;libart是在install的时候翻译3,这些实现的逻辑在zygote的创建有关。
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186