reference to ;http://blog.csdn.net/koffuxu/article/details/44780351

Android libdvm.so 与 libart.so

  系统升级到5.1之后,发现system/lib/下面没有libdvm.so了,只剩下了libart.so。对于libart模式,从4.4就在Developer optins里面就可以手动选择,到5.1算是转正了。   1,什么是libdvm,libart。 Android 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和dexopt libdvm是运行时翻译; libart是在install的时候翻译。   3,这些实现的逻辑在zygote的创建有关。 分类:  Android Pro 本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/5678458.html如需转载请自行联系原作者
demoblog

更多相关文章

  1. 安卓学习第一天
  2. Android(安卓)中文 SDK (48) ―― Filter.FilterListener
  3. 在VMware虚拟机下安装Android(安卓)Studio(AS)以及运行第一个Hello
  4. StevGuo系列文章翻译之Android中的输入事件如何分发
  5. 【android】与pc机进行UDP通信(二)
  6. android 五大应用开发框架是什么
  7. Android中文API(117)――WrapperListAdapter
  8. Qt on Android(安卓)Episode 2(翻译)
  9. android 在UI线程之外处理Bitmap - 开发文档翻译

随机推荐

  1. Safari 浏览器中自动填充用户名和密码功
  2. 基于web的机票管理系统设计与实现(二)
  3. RabbitMQ:address (cannot connect to hos
  4. 解读:什么是Java的递归算法?
  5. 双Hadoop集群&双Kerberos kdc认证跨域互
  6. 数据项目生命周期的7个步骤——在业务中
  7. Linux学习--第14周
  8. 圣怀布局,网格(容器,项目,单元,轨道,间距
  9. DSaaS,一个创新的云密码服务
  10. Node实战篇:Nodejs 链接 Mariadb 实例