• 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字段中

  • 相关阅读:
    Shell脚本中循环语句for,while,until用法
    国内yum源的安装(163,阿里云,epel)
    express高效入门教程(4)
    express高效入门教程(3)
    express高效入门教程(2)
    express高效入门教程(1)
    dart快速入门教程 (8)
    dart快速入门教程 (7.4)
    dart快速入门教程 (7.3)
    dart快速入门教程 (7.2)
  • 原文地址:https://www.cnblogs.com/heixiang/p/10964090.html
Copyright © 2020-2023  润新知