zoukankan      html  css  js  c++  java
  • 1 Dalvik和Java虚拟机

    Dalvik虚拟机特点:

    1.  体积小

    2.  DEX格式可执行文件,相比java运行速度快

    3.  常量池采用32位索引值

    4.  提供对象生命周期,堆栈,线程,权限,异常等管理

    5.  Android系统里每个进程对应一个Dalvik虚拟机

    Dalvik虚拟机和Java虚拟机区别:

    1.  Java虚拟机:java字节码保存在class文件中,通过解析class文件运行

    Dalvik虚拟机:Dalvik字节码由java字节码转换,打包到一个dex文件中,解析dex文件运行

    2.  Dex文件将class文件解析,去掉冗杂的信息,所有类共享一个常量池达到压缩体积提高文件解析效率的目的

    3.  Java虚拟机基于栈结构,Dalvik虚拟机基于寄存器结构

    通过解析简单的java文件比较Java和Dalvik虚拟机的区别

    1.  编写简单的java文件

     

    2.  执行javac 生成 .class文件

     

    3.  Javap 反编译生成的 .class文件

     

    4.  将编出的Hello.class文件转换成 .dex文件

    到      sdkuild-toolsandroid-4.2.2 目录下执行

     

    使用dexdump.exe查看 .dex文件

     

     

    Java程序,每个线程都有一个PC计数器和一个Java栈。Java虚拟机最多只支持0xff条指令

    PC计数器,记录当前位置距离方法开头的偏移量,

    Java栈,以帧为单位(frame)保存线程的运行状态,调用方法在栈上压入新栈帧,方法返回则弹出栈帧

    Dalvik虚拟机:每个线程维护一个PC计数器和调用栈

             调用栈,维护的是寄存器列表。寄存器数量在方法结构体的registers字段中

  • 相关阅读:
    nginx http和https共存
    jQuery prop方法替代attr方法
    idea内置tomcat中java代码热更新
    Linux磁盘空间查看、磁盘被未知资源耗尽
    Mysql order by与limit混用陷阱
    IIS 架构解析
    asp.net MVC 应用程序的生命周期
    Linq专题之var关键字
    ThoughtWorks 2016年第1期DNA活动总结
    对象的深拷贝--反射
  • 原文地址:https://www.cnblogs.com/heixiang/p/10964090.html
Copyright © 2011-2022 走看看