我是一个做插件开发的人员,插件就是动态加载dex文件。
然后4.4以后,Android dalvik虚拟机,和ART.

art运行的必须要把dex转换为oat elf文件。

然后,这个dex2oat需要很长的时间。很耗时,然后我发现自己的Dexloader 加载了很多次自己的dex文件。

为什么会加载多次?
后来,搞了一周,才发现,原来,自己把自己的dex删掉了。如果你的dex 文件被dex2oat执行了多次,你要注意自己的dex是不是在什么情况下给删掉了。

1。自己确实对流程不熟悉,也懒,觉得打log是很麻烦的事情。呵呵。哎。log有时候,确实可以做到一些调试不了的情况。做一个开发,不要懒。真的,不要懒省事,日子久了,你就会发现尝到他的甜处。做一个有追求的程序员。

2。接到一个问题,要去分析问题在哪,或许有很多原因,可能是。。。可能是。。。 然后列出来所有的原因,越多越好。这就是你思维的广度,最好不要留下任何死角。

然后用排除法去一个一个的分析,验证一个可能的真实性,而不是想当然觉得,不可能是这个问题导致的。

3。不要着急,着急容易出错。不用着急,一步一步来,做一个稳重的开发人员。慢不是目的,小心是目的,你一个地方的错,比如写错一个字符,后来你都可能花10倍的时间去找这个bug.

4.哎,我错了,我认了,没有什么必要和同事证明自己是对的,问题解决了就好。

dex2oat 加载多次相关推荐

  1. Android ART dex2oat 加载加速浅析

    前言 手机淘宝插件化框架Atlas在ART上首次启动的时候,会通过禁用dex2oat来达到插件迅速启动的目的.之后后台进行dex2oat,下次启动如果dex2oat完成了则启用dex2oat,如果没有 ...

  2. dex文件结构(二):dex文件加载基本原理

    一.Java层调用链 1.1 ActivityThread.performLaunchActivity 一般应用程序的启动都是由点击Launcher上的图标来启动,而点击图标时所执行的操作是start ...

  3. Android动态加载入门 简单加载模式

    基本信息 作者:kaedea 项目:android-dynamical-loading 初步了解Android动态加载 Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件 ...

  4. 美团Android DEX自动拆包及动态加载简介

    概述 作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能.添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误: ...

  5. android虚拟机加载机制,Android虚拟机与类加载机制

    JVM与Dalvik Android应用程序运行在Dalvik/ART虚拟机,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例.Dalvik虚拟机实则也算是一个Java虚拟机,只不过它执行的不 ...

  6. [Android]朝花夕拾之使用DexClassLoader动态加载广点通jar包

    前言 众所周知,优秀源码的阅读与理解是最能提升自身功力的途径,如果想要成为一名优秀的Android工程师,那么Android中优秀三方库源码的分析和理解则是必备技能.就拿比较热门的图片加载框架Glid ...

  7. Android 框架学习5:微信热修复框架 Tinker 从使用到 patch 加载、生成、合成原理分析

    这篇文章是基于内部分享的逐字稿内容整理的,现在比较喜欢写逐字稿,方便整理成文章. 文章目录 目录 Tinker 介绍 使用 TinkerApplicaition ``SampleApplicaitio ...

  8. android运行时ART加载OAT文件解析

    在前面一文中,我们介绍了Android运行时ART,它的核心是OAT文件.OAT文件是一种Android私有ELF文件格式,它不仅包含有从DEX文件翻译而来的本地机器指令,还包含有原来的DEX文件内容 ...

  9. dvm,art模式下的dex文件加载流程

    dvm,art模式下的dex文件加载流程 dex加载是学习android的重中之重,刚看完几篇参考博客,对应android源码,收益匪浅,用一篇博客总结一下自己学到的东西. 1.dvm模式下的dex加 ...

最新文章

  1. java final 实例_Java中final实现原理的深入分析(附示例)
  2. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧
  3. vulnhub靶机获取不到ip
  4. Java面向对象编程篇6——注解与反射
  5. Docker上搭建Mysql8.0服务器
  6. db2执行sql脚本
  7. 如何把 Google adsense 的广告放到博客的Banner位置
  8. css hack 笔记 for ie8,ie7
  9. java程序员选择多个offer时需要看重哪些?_27 道阿里巴巴 Java 面试题,你会几道?...
  10. 硬核桌面美化,让Windows电脑像Mac一样充满高级感!
  11. 苹果蓝牙耳机使用说明_苹果蓝牙耳机怎么用
  12. 遥远的路:【码农】的成长困惑
  13. 小猫爪:嵌入式小知识01-存储器
  14. 基于LSTM的情感识别在鹅漫电商评论分析中的实践与应用
  15. Filler Cell 与 Metal Fill差异
  16. 20天从入门到项目实战:学习小组C1任务训练实录
  17. 使用Python输出正金字塔
  18. 1.amdahl定律(加速比)
  19. 渗透中常用的在线工具和网站总结
  20. 为什么月薪2万的大数据职位都必须学习Python?

热门文章

  1. Matlab中for循环中的循环变量在循环体中不能改变
  2. python windows ui自动化_appium+python+windows UI自动化 四.简单使用Appium客户端
  3. java实例方法,Java实例和静态方法
  4. 光猫直连电脑不能上网_电脑不能上网怎么办?DNS解析失败的解决方法
  5. 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
  6. Python 代码性能优化技巧
  7. DNS 隐蔽通道工具资料汇总
  8. Java 抽象类和接口
  9. Java实现 简单聊天软件
  10. layer.js弹窗组件layer.prompt无法调用解决