导航:首页 > 源码编译 > art编译adb

art编译adb

发布时间:2023-03-31 12:34:28

‘壹’ ART、OAT格式介绍与dex文件提取

dex文件经过dex2oat编译,会生成.art、.oat两个文件,oat是一个android定制的elf文件,原唤坦始dex也保存在其中。8.0后,dex单独保存到.vdex文件中。art文件类似于一个内存映像,缓存常用的ArtField、ArtMethod、DexCache等内容,加载后可直接使用,避免解析耗时。

以boot.art为例,它分为Image Section和Bitmap Section区域。每个Section在文件中的偏移量和大小由ImageSection类来描述。
主要Section介绍:

Bitmap Section:
Bitmap区域是一个位图,用于描述Object Section里各个Object的地址,以8字节对齐。如果一个比特位的值为1,则它指向Object Section中的一个Object对象。
假设Object存储的基地址是0x70000000,如果位图第N个比特位为1,那么这个比特位指向的Object对象地址为0x70000000+N*8。

art/runtime/image.h:

oat文件本质上是一个ELF文件,它将OAT文件格式内嵌在ELF文件里。
在oat文件的dymanic section中,导出了三个符号oatdata、oatexec和oatlastword,分别用来描述oatdata和oatexec段加载到内存后的起止地址。

oatdata段中,包含原dex文件的完整内容(8.0后在.vdex文件),dex文件里面的类方法所对脊橡应的本樱链旁地机器指令保存在oatexec段中。
OAT主要内容介绍:

vdex格式:

boot.art、boot.oat、boot.vdex三者是一体的,相互依赖。

zygote启动创建Heap的时候,会加载boot.art,然后加载boot.oat,再然后加载boot.vdex。
调用流程如下:

dextra
vdexExtractor
compact_dex_converter
Android 9(Pie)推出了一种新型Dex文件,即Compact Dex(Cdex)。Cdex是一种ART内部文件格式,它压缩各种Dex数据结构(例如方法头)并对多索引文件中的常见数据blob(例如字符串)进行重复数据删除。来自输入应用程序的Dex文件的重复数据删除数据存储在Vdex容器的共享部分中。
由于Vdex容器存储的是Cdex文件而不是标准的Dex,因此需要借助compact_dex_converter工具来实现提取dex。

安装提取工具步骤(ubuntu):

提取: (工具并不完美,提取dex后有些不能正常jadx反编译)

‘贰’ ART模式是什么

ART模式英文全称为:Android RunTime,是Android 4.4系统新增的一种仿缓应用运行模式,与传统的Dalvik模式相比,ART模式可以实现更为流畅的安卓系统体验。
ART模式与Dalvik模式最大的不同,就是对程序的编译方式。在Dalvik模式下,每次运行应用时都需要进行编译,将应用代码编译为机器语言,这样当前设备才能够运行这一应用;在ART模式下,系统厅迹对程序只进行一次编译,就是在程序安装时。在安装应用时会先将程序代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行备伏模一次编译了,执行效率也大大提升。

‘叁’ 安卓ART模式是什么意思 ART模式有什么作用及功能

ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time (JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运 行。ART则完全改变了这套做法,在应用安装时就预编译字节码到机器语言,这一机制叫Ahead-Of-Time (AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

‘肆’ 如何在官方rom上开启art模式,求申精

首先机器雀胡旅必须要root掉。便于用R.E
管理器查看系统文件。
打开R.E管理器,先查看有没有以下几个art模式的编译文件
/system/lib/libart.so
/system/lib/libart—compiler
/system/framework/core-libart.jar
这三个文件是编译art模式的编译文件必须要有。
关机进入顷凳rec界面
进入刷入Enableart.zip
然后进入advance>wipe dalvik cache
然后重启
若有问题,或要换回dalvik模式,则刷入Enable dalvik.zip恢复dalvik模式
同样恢复也做弯要 advance>wipe dalvik cache
楼主发放art的文件补丁包以及转换模式的刷机包
官方art的已知问题
有部分自带的软件会fc。不影响系统,可根据fc的名字删掉该apk。一般在/system/app里面或者/system/priv-app里面。或者用R.E管理器在/system文件里面搜索。

‘伍’ 安卓4.4.2 请问ART模式怎么开启 在开发人员选项里没找到

某些安卓4.4手机的开发者选项里是没有art模式选择的,但是libart.so保留系统里。

方法一:通过adb命令开启:

adb shell setprop persist.sys.dalvik.vm.lib libart.so
adb reboot

----------------------------------------------------

方法二:于是我就想到通过手动修改文件去实现:

1.已ROOT。
2.已安装R.E.管理器
3.R.E.管理器进去/data/property/persist.sys.dalvik.vm.lib,在文本编辑器中打开将libdvm.so修改为libart.so
4.删除/data/下的dalvik-cache文件夹(可以跳过此步骤)
5.重启手机即可.

PS:如已安装xposed框架,要先卸载,否则重启后会自动还原为libdvm.so。

‘陆’ 如何开启手机ART运行环境

安卓系统的ART模式在安卓4.4+后就可以使用了,虽然谷歌没有大动作的推出ART,但是这个基于安卓底层的改变或许会给安卓带来全新的战斗力,甚至是匹敌IOS。简单科普一下,安卓系统原先是运行在叫做Dalvik的虚拟机上,而要与这个这个环境沟通就必须在运行程序是进行转换编译成Dalvik能够解析的语言。这样就加重了资源耗用和程序运行负担,造成安卓长期被诟病的“卡顿”现象。ART模式就是省去中间的转换编译环节,直接实现程序的快速运行,解放系统资源。工具/原料
安卓4.4及以上手机
方法/步骤
1
【第一步】刚刚刷机后的朋友首先要到手机设置中,找到关于手机--版本,不停点击根据提示就可以开启【开发者选项】了

2
【第二步】在开发者选项中找到【运行环境】,这里面就有两种运行模式一种是默认的Dalvink,另一种就是ART模式。这是只有选择ART就行。

3
【第三步】选中ART模式后,手机会给出类似于安全声明之类的提示,然后就会提示重启,按提示操作后。重启的时候就会出现手机在自动升级的通知,这个根据你手机中有的软件需要的时间3-5分钟不等。

4
【第四步】ART模式虽然使得程序运行流畅多了,但是,也占用了更多的系统内存,同时在安装程序的时候时间也相对增多了(ART好像就是在这时候进行预编译的),这样开机也会慢了一些。相对而言,这还是在可接受的范围内。

END
ART个人使用体会
【第一】在了解到ART的详细后,小编尝试刷了安卓的4.4.2,并且成功切换到了ART模式,就其优点而言,自我感觉并没有多么特别的感觉。但在左右切换界面的时候,流畅感是挺好的。而开启应用,也是挺速度的。
【第二】就其缺点BUG来说,偶尔会出现返回键失灵,还有输入法自动回复到默认输入法,目前就这两个问题,这两点都是很让人捉急的BUG。
【总结】个人推荐手机发烧友大胆切换尝鲜,这个被众多人看好的ART模式究竟如何,只有自己体验过才知道,当然,要有手机报销后重新救机的决心。而对于其他朋友,不建议随便切换到ART,因为这东西BUG还是挺麻烦的,希望你切换到ART如果失败了,体验差了不用骂小编。
END
注意事项
ART模式虽然有很好的优势,但是官方现在并不保持其稳定性。所以请慎重选择切换,可能造成手机死机无法开机之类的问题。
觉得我的经验对你有帮助点赞一个吧谢谢。

‘柒’ 为什么有的要编art

有的要编art是因为可以提高启动和运行速度。
ART是一个AOT编译器。所谓AOT (Ahead of Time)是指在运行以前就把中间代码静态编译成本地代码,而JIT (Just inTime)则是在运行时动态编译。
AOT的主要编译过程发生于开发用机,因此编译得慢一点没关系,可以充分的做各种耗时的优化,JIT在运行时动态编译,通常不能做太耗时的优化,否则影响启动和运行速度 更具体一点。

‘捌’ Android 的 ART 是什么东西,有何作用

ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。
ART有什么优缺点呢?
优点:
1、系统性能的显着提升。
2、应用启动更快、运行更快、体验更流畅、触感反馈更及时。
3、更长的电池续航能力。
4、支持更低的硬件。
缺点:
1.机器码占用的存储空间更大,字节码变为机器码之后,可能会增加10%-20%(不过在应用包中,可执行的代码常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。)
2.应用的安装时间会变长。
tips:现在智能手机大部分都可以让用户选择使用Dalvik还是ART模式。当然默认还是使用Dalvik模式。
用法:设置-辅助功能-开发者选项(开发人员工具)-选择运行环境(不同的手机设置的步骤可能不一样)。

‘玖’ 安卓art模式如何打开切换

安卓art模式如何打开切换

安卓art模式如何打开切换,ART模式相信大家都比较陌生,不过ART模式越来越多的被媒体提及,很多网友对于ART模式是什么以及有什么用确认详细的了解。汇总了ART模式相关知识汇总,您可以全面了解ART模式是什么以及art模式如何打开切换。

安卓art模式如何打开切换1

Android 4.4系统针对RAM的占用进行了深度的优化,即使是运行仅有512MB的手机,同样可以流畅运行Android 4.4系统,这要归功于其独特的ART模式。ART模式是Android runtime的简称,它免去了传统Dalvik模式要时时转换代码,从而实现高效率、省电、占用更低的系统,让手机更加流畅。那我们如何将手机从Dalvik模式切换到ART模式呢,很简单。

1、打开手机的设置,进入“开发者选项”,找不到“开发者选项”的进入“关于手机”连续点击版本号几次就行了;

2、进入“开发者选项”后下拉,找到“选择运行环境”,可以看到目前使用的是Dalvik模式,点击弹出两个选项,我们点击“使用ART”,这时弹出警告提示重启,本人此系统未完全汉化警告显示为英文,若汉化过的会显示“要重新启动以将运行模式从libdvm.so改为libart.so吗”或者相似的提示,我们点击确定,手机将关机重启。

3、重启过程系统会对所有应用程序进行优化,时间由已装应用数量决定,待优化完毕开机,手机就正式进入ART模式运行了。

4、我们来看看两模式的区别,首先看看程序储存空间的占用,以qq为例,ART模式明显占用空间多了近20MB,

5、装的程序相同,总占用也由261MB增至472MB,ART模式明显需要占用更过的储存空间

6、另外运行内存占用有所增加,但实际使用可以感受到流畅度要比Dalvik模式好。

注意事项

ART模式也有一些问题,如应用会占用略高一些的运行内存、存储空间,安装程序时需要比Dalvik模式下要长一些时间来实现预编译。

部分手机的rom不完美,可能开启ART模式后会出现喊哪无法启动,死机等情况,这种情况建议重新刷机并不打开ART模式。

安卓art模式如何打开切换2

一、ART模式是什么?

ART模式英文全称为:Android runtime,谷歌Android 4.4系统新增的一种应用运行模式,与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验,对于大家来说,只要明白ART模式可让系统体验更加流畅,不过只有在安卓4.4以上系统中采用此功能。

在4.4系统之前,Android系统在Linux的底层下构筑Dalvik一层的虚拟机,通过其可以更好适应多样的硬件架构,开发者只需要按一套规则进行应用便可,无需因为不同的硬件架构而处理与底层的驱动关系,大大提高开发的效率。

不过提高了开发效郑州码率,但因为应用均是运行在Dalvik虚拟机中,因此应用程序每次运行的时候,一部分代码都需要重新进行编译,这过程需要消耗一定的时间和降低应用的执行效率,最明显的便是拖延了应用的启动时间和降低运行速度。谷歌在安卓迹蚂4.4之前的系统中加多一层虚拟机的初衷,不但是为了加快应用的开发效率,更是为了适应Android诞生之初硬件多样性的问题。

不过最新的Android 4.4,谷歌准备利用新的'模式去代替之前Dalvik虚拟机,那便是ART模式。ART模式便是Android Runtime,其能够令系统更加高效和省电,执行效率大大提高。

二、ART模式有什么用?

通过以上详细的ART模式介绍,相信大家对于ART模式的作用已经有所了解了,ART模式最大的作用就是提升了安卓系统流畅度,相比Dalvik模式中出现的耗电快、占用内存大、即使是旗舰机用久了也会卡顿严重等现象,ART模式中这种问题得到了很好的解决,通过在安装应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。

之前谷歌宣称,安卓4.4运行内存仅有512M RAM即可流畅运行,也就是所,一些老款低配机也可以流畅运行Android 4.4系统,从侧面也可以看出ART模式对于提升系统流畅度还是非常有帮助的。

三、ART模式其他问题

任务事物都有两面性, ART模式可以降低手机硬件配置要求,减少RAM内存依赖,不过在安卓4.4系统中,安装应用的时间比安卓4.4以下版本系统更长,这主要由于应用安装过程中需要先执行编码导致,并且安装应用更占存储空间 (ROM)。

ART模式更占ROM存储空间

根据目前的测试, ART模式安装应用所占的ROM空间比Dalvik模式多了接近一倍 ,不过鉴于目前手机ROM存储空间越来越大,并且支持扩展,这些都不是什么问题。

另外值得一提的是,ART模式目前还存在一些兼容性问题,绝大多数硬件均可以正常运行运行,但也有部分应用会不兼容,会出现闪退现象。这主要是由于Android 4.4并未大规模普及,后期会逐渐得到普及优化。

ART模式兼容性还有待普及

文至于此,相信大家对于ART模式是什么已经有一个深度了解了,作为安卓4.4系统的一项模式,用户可以在安卓4.4系统的手机中自由切换传统Dalvik模式和ART模式,大大方便用户使用,概括的是ART模式可以大大提升安卓系统的流畅性。

‘拾’ 安卓art和dalvik的区别

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。
Android操作系统已经成熟,Google的Android团队开始将注意力转向一些底层组件,其中之一是负责应用程序运行的Dalvik运行时。Google开发者已经花了两年时间开发更快执行效率更高更省电的替代ART运行时。 ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time (JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运 行。ART则完全改变了这套做法,在应用安装时就预编译字节码到机器语言,这一机制叫Ahead-Of-Time (AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

阅读全文

与art编译adb相关的资料

热点内容
数据中心pdf 浏览:524
crf源码解析 浏览:853
服务器软件开发是什么意思 浏览:941
删除彩信android 浏览:862
元宵节猜灯谜h5源码 浏览:69
乐培生app怎么绑定 浏览:762
视频压缩不清楚怎么说 浏览:525
加好友服务器繁忙是怎么回事 浏览:381
怎么解绑app的支付宝账号 浏览:911
ip地址服务器不可用怎么解决方法 浏览:183
为什么软件需要服务器 浏览:63
redis操作命令大全 浏览:597
python字符串重复索引 浏览:961
为什么香信新版本连接不上服务器 浏览:50
元旦程序员打羽毛球 浏览:614
otc焊接机器人离线编程教学 浏览:412
51单片机的ea引脚有何用途 浏览:207
centos查看用户命令 浏览:840
程序员脸胖 浏览:744
hdfs在主目录下创建文件夹 浏览:800