例如,我们在/ system / app下有phone.apk和phone.odex.根据一些非官方文档,phone.odex用于加快加载应用程序的过程.但是,为什么我们不只是将phone.odex放在/ data / dalvik下?

更奇怪的是:在/ data / dalvik下有一个名为system @ app @ phone @ classes.dex的文件,当应用程序加载时,哪一个优先加载,/ system / app / phone.odex或/ data /达尔维克/系统@应用@电话@ classes.dex?

把phone.odex放在/ system / app下完全是多余的吗?

解决方法:

/ system / app目录在普通(非开发人员)设备上是只读的,仅在系统收到更新时更新. /system/app/*.odex的意思是.odex文件可以作为系统更新的一部分提供,因此不必在第一次更新后启动时生成它,并且不会耗尽/ data分区上的空格.

如果.apk和.odex文件不同步,系统将无法覆盖/ system / app中的.odex,并将尝试在/ data / dalvik-cache中生成正确的版本.通常这会失败,因为当.apk和.odex成对传递时,.apk不包含.dex文件(这样做会多余).

首先扫描/ system / app中的.odex,因此它基本上具有优先权.

找不到冗余的.odex,并建议在某些时候设备有一个包含.dex且与.odex不匹配的phone.apk.

标签:android,optimization,virtual-machine,dalvik,loader

来源: https://codeday.me/bug/20190829/1763630.html

android odex 作用,android – 为什么我们需要将* .odex文件放在/ system / app下,即使我们已经有/ data / dalvik-cache了?...相关推荐

  1. [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)

    转发:原文链接http://blog.csdn.net/mad1989/article/details/22492519 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台 ...

  2. Android开发之如何保证Service不被杀掉(broadcast+system/app)

    Android开发之如何保证Service不被杀掉(broadcast+system/app) 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作 ...

  3. android odex 作用,Android ROM中Odex文件的作用及介绍

    细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些 ...

  4. android aliasactivity作用,android activity-alias 的作用

    activity-alias是android里为了重复使用Activity而设计的. 当在Activity的onCreate()方法里,执行getIntent().getComponent().get ...

  5. Android meta作用,Android中meta-data的使用

    一.android meta-data 使用详解 android:resource="resourcespecification" android:value="stri ...

  6. android padding作用,android:padding和android:layout_margin的区别

    简单点来说: android:padding是内边距,控件本身的内容与控件边缘的距离. android:layout_margin是外边距,控件与其他控件之间的距离. 下面以具体的例子来进行解释: 1 ...

  7. android coreservice作用,android service重启

    首先,说一下思路,很简单,启动两个service检测对方,如果发现对方killed,立马启动就可以了.具体实现代码如下 1.先准备两个service,CoreService和DaemonService ...

  8. android contentprovider作用,Android ContentProvider基本使用

    一.基本概念: 1.ContentProvider为存储和获取数据提供了统一的接口: 2.使用ContentProvider可以在不同的应用程序之间共享数据: 3.Android为常见的一些数据提供了 ...

  9. android keystore作用,Android KeyStore理解及簽名

    Android簽名概述 我們已經知道的是:Android對每一個Apk文件都會進行簽名,在Apk文件安裝時,系統會對其簽名信息進行比對,判斷程序的完整性,從而決定該Apk文件是否可以安裝,在一定程度上 ...

最新文章

  1. Redis基础教程第7节 - Set
  2. 极客Web前端开发资源大荟萃#017
  3. 二叉树的链式结构递归遍历实现
  4. mysql 导入密码_mysql 常用命令导入导出修改root密码
  5. Python中的Series和DataFrame
  6. java基础—Hashtable,HashMap,TreeMap的区别
  7. eclipse中使用Lombok(转)
  8. arpspoof看看隔壁女同事上班时间都在浏览什么网页?
  9. 函数式编程-将Monad(单子)融入Swift
  10. package.json 封装 vue模块_Vue管理系统前端~相关工具引入及封装
  11. 使用FileZilla搭建简单的FTP
  12. 国内企业“数字化转型”案例!
  13. ITIL学习笔记——ITIL入门小知识
  14. c语言的虚拟变量,含有分类变量(categorical variable)的逻辑回归(logistic regression)中虚拟变量(哑变量,dummy variable)的理解...
  15. tipask 3.5 出错get_class() expects parameter 1 to be object 解决方案及说明
  16. JavaScript新人总结
  17. Windows命令行tree命令打印目录树
  18. 引入echars5.0报错“export ‘default‘ (imported as ‘echarts‘) was not found in ‘echarts‘
  19. CentOS安装Ranger
  20. 【应用案例】1200PLC应用:抢答器,音乐喷泉

热门文章

  1. 【解决方案】智慧校园建设如何通过国标GB/T28181级联打造县-市-省三级架构的视频集中管理平台?
  2. c语言计算一元二次方程ax2+bx+c=0的根,C语言,求一元二次方程ax2+bx+c=0的根。
  3. Android动态数字输入框
  4. MouseEvent代替initMouseEvent
  5. 什么是数据库中的一对多关系?
  6. 解决app按home键运行到后台,再次运行程序避免再次开启app的MAIN页面
  7. LNMT和LAMT的实现
  8. 全能开发工具 ComponentOne(3)——常用控件下篇
  9. 西电B测-计算机专业-计算机网络综合设计实验一站式指南(以2023.4为基准)
  10. 评论回复功能的设计与实现