《深入解析Android虚拟机》Dalvik和Art基础:读书笔记

1.Dalvik虚拟机和普通java虚拟机的区别:

    a.dalvik虚拟机基于寄存器,java虚拟机基于栈

    b.dalvik会通过dx将所有的class打包到dex文件,普通的java虚拟机将所有的class打包到jar文件

    c.dalvik和普通java虚拟机使用的字节码不同,即class文件的格式不同,无法互通  

2.每一个Android应用都运行在一个Dalvik以及Art虚拟机实例里,每个虚拟机实例都是一个独立的进程空间,每一个Android线程都依赖于独立的linux线程。

3 .Zygote进程在系统启动时创建,每一个Android应用的进程都是从Zygote进程fork出来的,因此可以共享Zygote进程已经加载的类,同时加快启动速度,共享代码空间。

4.从init.rc可以看到,zygote进程运行的可执行文件是是/system/bin/app_process,该进程会通过jni加载dalvik或者art虚拟机的so库,因此,zygote进程可以认为是系统启动后的第一个虚拟机进程。

5.Art虚拟机作为Dalvik的替代,其将dex中字节码的优化从应用运行时提前到应用安装时。

6. Art虚拟机完全兼容Dalvik虚拟机的字节码,也就是可以运行dex文件中的字节码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值