android使用dx编译字节码,Android 如何执行代码

Android应用使用Java开发,但通过dx工具编译成Dalvik字节码,由Dalvik或ART虚拟机执行。ART从Android 5.0开始替代Dalvik,提升了性能。JIT编译器在运行时将Dalvik字节码转换为本地代码,提高执行速度,尤其在Android 2.2及以上版本中表现显著。此外,APK是应用的压缩包,包含classes.dex文件,dexdump工具可解析其内容。
摘要由CSDN通过智能技术生成

android开发者使用java,不过android平台不用java虚拟机来执行代码,而是把应用编译成Dalvik字节码(5.0以后Dalvik被ART取代),使用Dalvik虚拟机来执行。Java代码代码仍然编译成Java字节码,但随后Java字节码会被dex编译器(dx,SDK工具)编译成Dalvik字节码。最终,应用包只包含Dalvik字节码,而不是java字节码。

android应用也称为apk,因为应用被打包成带有apk后缀的文件,(apk文件只是个简单的ZIP压缩文件,可以使用常见的压缩解压工具如WinZip来查看apk文件的内容)这是一个简单的压缩文件。clasess.dex就在这个压缩文件里,他包含了应用的字节码。Android的工具包中有名为dexdump的工具,可以把classes.dex中的二进制代码转化为使人易读的格式。

在android2.2中引入了实时(JIT)编译器。Dalvik JIT编译器把Dalvik字节码编译成本地代码,这可以明显加快执行速度。JIT编译器可以显著提高性能,因为:

1,本地代码直接由CPU执行,而不必由虚拟机解释执行。

2,本地代码可以为特定架构予以优化

android 2.2的代码执行速度比android 2.1快2到5倍。虽然代码的具体功能对结果产生很大影响,但可以肯定的是,使用android 2.2 及更高版本会显著提升速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值