- 27
- 0
- 约9.91千字
- 约 49页
- 2016-11-29 发布于重庆
- 举报
ARTIntroduction
ART Introduction Over ViewART OverViewART的优点跑分上的提升ART运作原理概述解释执行AOT(Ahead-Of-Time)执行Fork进程的过程32位or64位Fork process类的加载及方法调用Oat文件生成及格式类的加载JNI方法及OAT方法的调用常见问题Heap管理(memory分配及回收)分配器回收器分配器及回收器的选择APPENDIX发 生NE时,需要提交的Log发生OOM时,抓取hprofWhy we need ART随着硬件水平的不断发展,随着人们对高performance 的需求,DVM的不足日益突出,促使ART的诞生。DVMART1.逐条Dex指令解释 ?执行效率低2.GC suspend时间长3.申请memory时线程竞争4.Memory碎片化严重1.采用AOT技术,运行时执行Locale Code ?执行效率高2. GC suspend时间短3. Memory碎片化轻Before LART在跑分上的提升ART运作原理Android对Java的运作流程解释执行Dex代码源代码指令识别实作部分取指令AOT执行直接拷贝了两个寄存器的值,省去了中间的跳转、取指令等操作汇编代码模式选择Art默认以本地模式执行,也可以解释模式执行如下情况以解释模式执行通过属性配置dalvik.vm.execution-modeint:portableint fastint:jitJNI方法、抽象方法、proxyClassproxyClass是Java机制的动态 代理所生成 的类由于虚拟机的相关属性都是在首次创建的时候读取的,因此改变了属性之后,需要重启android。可以直接通过开关机的方式,可以通过如下的adb 命令实现:adb shell stopadb shell startFork进程的过程Zygote的启动App_process申请heap(main space)加载space(image space)构建分配器及回收器创建JNI环境读取相关property创建虚拟机环境(ART)Preload class加载zygoteinit的类Start system serverWait for connection fork process退出32位or64位在64位上面可以既运行64位的zygote也可以运行32位的zygote,可以通过ro.zygote进行配置ro.zygote的值Zygote指令集System server 指令集套接字名字zygote64Zygote 6464zygotezygote32Zygote3232zygotezygote64_32zygote64, zygote3264Zygote64-zygoteZygote32-zygote_secondaryzygote32_64Zygote32,Zygote6432Zygote64- zygote_secondaryZygote32-zygoteFork processFork process都是通过system server的AMS向zygote请求zygote32APP32FORK32bit PkgMsAMSProcessget abiabiFORKZygote 64APP6464bit PMS根据一定规则确定一个APP应该运行32位还是64位Start process时,会依据不同的ABI将请求发给对应的zygote类的加载及方法调用Oat文件的生成当系统检测到APP对应的dex文件还没有对应的odex文件和其对应,此时会通过dex2oat进行AOT操作,生成OAT文件。所生成的文件位于/data/dalvik-cache/inst目录下:查看oat文件中的内容,可以通过Android提供的oatdump进行:OAT文件的格式OAT文件本质是一个ELF文件,但文件结构不同于一般的ELF文件。HeaderRaw dex filesrodataOat classesSections/Segmentsoatexec类方法的本地方法指令结束的标志Oat lastwordSection HeaderRodata区的格式如右边的格式所示Instructionsetdexfilecountdex_file_location_sizedex_file_location_datadex_file_checksumdex_file_offsetmethods_offsets_pointer………………methods_offsets_pointerDexFileInfosDexFile……DexFileStatusTypeOatMethodOffsetsOat class………Oat ClassOatMethodOff
您可能关注的文档
- 8第七章外源化学物致突变作用8-1.ppt
- 成都风湿病医院介绍义诊照片.doc
- 9数据格式转换和后期处理.ppt
- 房地产经营与管理(专升本)阶段性作业4.doc
- 成都七中高三地理半期考试.doc
- 房地产运营岗总结.doc
- 房地产营销顾问服务合同.doc
- 房地产建筑成本_(2012年新).doc
- 房地产教学日历表.doc
- 房屋改善施工工艺.docx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)