当前位置: 首页 > news >正文

网站底部友情链接怎么做的谷歌seo价格

网站底部友情链接怎么做的,谷歌seo价格,网站后台打打开空白,全国今天疫情最新情况目录 一、JVM和Dalvik1.1 基于栈的虚拟机字节码指令执行过程 1.2 基于寄存器的虚拟机 二、ART与Dalvikdex2aotAndroid N的运作方式 三、总结 一、JVM和Dalvik Android应用程序运行在Dalvik/ART虚拟机,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。 Dalvik…

目录

  • 一、JVM和Dalvik
    • 1.1 基于栈的虚拟机
      • 字节码指令
      • 执行过程
    • 1.2 基于寄存器的虚拟机
  • 二、ART与Dalvik
    • dex2aot
    • Android N的运作方式
  • 三、总结


一、JVM和Dalvik

Android应用程序运行在Dalvik/ART虚拟机,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。
Dalvik虚拟机实则也算是一个Java虚拟机,只不过它执行的不是class文件,而是dex文件。
Dalvik虚拟机与Java虚拟机共享有差不多的特性,差别在于两者执行的指令集是不一样的,前者的指令集是基本寄存器的,而后者的指令集是基于堆栈的。

.Java Virtual MachineDalvik Virtual Machine
Instruction SetJava Bytecode(Stack Based)Dalvik Bytecode(Register Based)
File Format.class file(one file, one class).dex file(one file, many classes)

那什么是基于栈的虚拟机, 什么又是基于寄存器的虚拟机?

1.1 基于栈的虚拟机

对于基于栈的虚拟机来说, 每一个运行时的线程, 都有一个独立的栈。 栈中记录了方法调用的历史, 每有一次方法调用, 栈中便会多一个栈桢。 最顶部的栈桢称作当前栈桢, 其代表着当前执行的方法。 基于栈的虚拟机通过操作数栈进行所有操作。

在这里插入图片描述

字节码指令

在这里插入图片描述

执行过程

test方法
地址 指令
0 ICONST_1
1 ISTORE 0
2 ICONST_2
3 ISTORE 1
4 ILOAD 0
5 ILOAD 1
6 IADD
7 ISTORE 2
8 RETURN

过程:
在这里插入图片描述

1.2 基于寄存器的虚拟机

基于寄存器的虚拟机中没有操作数栈, 但是有很多虚拟寄存器。 其实和操作数栈相同, 这些寄存器也存放在运行时栈中, 本质上就是一个数组。 与JVM相似, 在Dalvik VM中每个线程都有自己的PC和调用栈, 方法调用的活动记录以帧为单位保存在调用栈上。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

与JVM版相比, 可以发现Dalvik版程序的指令数明显减少了, 数据移动次数也明显减少了。


二、ART与Dalvik

Dalvik虚拟机执行的是dex字节码, 解释执行。 从Android 2.2版本开始, 支持 JIT即时编译(just in time),在程序运行的过程中进行选择热点代码( 经常执行的代码) 进行编译或者优化。
而ART( Android Runtime) 是在 Android 4.4 中引入的一个开发者选项, 也是 Android 5.0 及更高版本的默认 Android 运行时。 ART虚拟机执行的是本地机器码。 Android的运行时从Dalvik虚拟机替换成ART虚拟机,并不要求开发者将自己的应用直接编译成目标机器码, APK仍然是一个包含dex字节码的文件。

那么, ART虚拟机执行的本地机器码是从哪里来?

dex2aot

Dalvik下应用在安装的过程, 会执行一次优化, 将dex字节码进行优化生成odex文件。 而Art下将应用的dex字节码翻译成本地机器码的最恰当AOT时机也就发生在应用安装的时候。 ART 引入了预先编译机制(Ahead of time ), 在安装时, ART 使用设备自带的 dex2oat 工具来编译应用, dex中的字节码将被编译成本地机器码。

Android N的运作方式

ART 使用预先 (AOT) 编译, 并且从 Android N混合使用AOT编译, 解释和JIT。
1、 最初安装应用时不进行任何 AOT 编译( 安装又快了) , 运行过程中解释执行, 对经常执行的方法进行JIT,经过 JIT 编译的方法将会记录到Profile配置文件中。
2、 当设备闲置和充电时, 编译守护进程会运行, 根据Profile文件对常用代码进行 AOT 编译。 待下次运行时直接使用。

三、总结

Android 虚拟机主要有两种:Dalvik 虚拟机和 ART(Android Runtime)虚拟机。这两种虚拟机在 Android 系统中扮演着不同的角色。

Dalvik 虚拟机
Dalvik 虚拟机是 Android 系统早期使用的虚拟机,被设计用于在资源受限的移动设备上运行 Android 应用程序。
Dalvik 虚拟机使用基于寄存器的指令集,每个应用程序在运行时会被编译成 Dalvik 字节码,然后由 Dalvik 虚拟机解释执行。
Dalvik 虚拟机采用的是 JIT(Just-In-Time)编译方式,即在运行时将字节码实时编译为本地机器代码执行,以提高应用程序的性能。
ART 虚拟机
ART 虚拟机是 Android 5.0(Lollipop)及以后版本引入的新一代运行时环境。
ART 虚拟机使用基于 Ahead-Of-Time(AOT)编译的方式,即在应用安装时将字节码预先编译为本地机器代码,然后存储在设备上,以减少运行时的编译开销。

ART 虚拟机在应用安装时会将字节码转换为本地机器代码,这使得应用程序在运行时更快,减少了启动时间和内存占用。
总的来说,ART 虚拟机相比于 Dalvik 虚拟机在性能上有一定的优势,尤其是在应用启动速度和运行时性能方面。因此,Android 系统逐渐向 ART 虚拟机转变,许多新的 Android 版本都默认采用 ART 虚拟机作为运行时环境。

在 Android Nougat(Android 7.0)及之后的版本中,ART(Android Runtime)虚拟机引入了一种混合编译的方式,同时结合了 Ahead-Of-Time(AOT)编译、解释和 Just-In-Time(JIT)编译的特性。这种混合编译的方式旨在提高应用程序的性能和启动速度,同时减少内存占用。

http://www.hengruixuexiao.com/news/47341.html

相关文章:

  • 马来西亚的网站后缀hyein seo
  • 优质的集团网站建设论坛排名
  • 网站建设后的注意问题青岛网站seo分析
  • 虚拟主机网站建设过程网站优化哪个公司好
  • 网站SEO优化实训seo站长助手
  • 做网站表格高端网站定制公司
  • 攸县政府门户网站网站制作
  • 做网站一年了 做个小总结外链提交
  • 自己做的网站如何实现下载文件阿里云搜索引擎
  • 最近网站改版文章突然不收录关键词优化的方法有哪些
  • 亳州做网站的公司武汉网站建设方案优化
  • 做外贸的有些什么网站宁波seo行者seo09
  • wordpress安装插件导致网站seozhun
  • 怎么做网站百度经验站长工具pr值查询
  • 技校十大吃香专业seo论坛站长交流
  • 企业建站公司怎么创业新闻软文发稿平台
  • 北京美陈设计制作公司全国seo搜索排名优化公司
  • 怎么做qq靓号网站天天外链
  • 用php如何建设网站关键词分析工具有哪些
  • 用双语网站做seo会不会青岛百度竞价
  • 企业网站制作设 百度一下
  • 京东联盟怎么做网站优化关键词有哪些方法
  • 红色网站 后台微信广告投放平台
  • 零基础做网站教程宁波网站推广公司报价
  • win8风格门户网站商丘网站优化公司
  • 陵水网站建设公司网页关键词优化软件
  • wordpress里面如何加载百度地图seo查询优化
  • 北京做手机网站的公司哪家好东莞互联网公司排名
  • wordpress创建三级分类深圳网络优化推广公司
  • 空间做网站怎么优化整站