搞懂 mismatch dep signature
在Android 开发中,经常遇到mismatch dep signature 的问题
最初以为是 apk 的签名,后来问了一位对Android 比较资深的同事,终于明白了其中原理
编译系统会对 system/framework/下面的jar 以及 system/app下面的apk 文件优化,生成 odex 文件
由于jars, apks 有依赖关系,odex 文件会记住它所依赖 odex 的 signature
比如 framework.odex 依赖于core.odex, 如果我们改动并重新生成了 core.odex
因为framework.odex 是基于老的 core.odex 做得优化, ( fraemwork.odex 以前计算的偏移可能不对),所以 framework.odex 在已经更新 core.odex 系统中已失效,所以framework.odex 也要重新生成。
这可以解释为何系统更新了,所有apk 都自动升级
系统以前安装 apk 的时候,为 apk 生了了 odex 文件, 系统升级后,这些 odex 文件都失效,因此要重新生成
就是说: 因为 apk 依赖system/framework/ 下的.odex更新了, apk 要基于这些系统.odex 重新生成 odex, 相当于重新安装
如果只是该 C文件,重新生成 system/lib 的so 文件,则不用重新生成odex文件
看来都是odex出的错,要取消,可以
1)编译的时候用:WITH_DEXPREOPT=false
2)在Android.mk中加上:
LOCAL_DEX_PREOPT := false
但系统启动的时候应该就要检验,并生成odex,可能多花些时间
搞懂 mismatch dep signature相关推荐
- 一个注解搞懂 Sentinel,@SentinelResource总结
@SentinelResource可以说是Sentinel学习的突破口,搞懂了这个注解的应用,基本上就搞清楚了 Sentinel 的大部分应用场景. 一.@SentinelResource 解析 Se ...
- 一篇文章带你搞懂 DEX 文件的结构
From:https://blog.csdn.net/sinat_18268881/article/details/55832757 Dex文件格式详解:https://www.jianshu.com ...
- data的值 如何初始化vue_Vue原理解析(九):搞懂computed和watch原理,减少使用场景思考时间...
之前的章节,我们按照流程介绍了vue的初始化.虚拟Dom生成.虚拟Dom转为真实Dom.深入理解响应式以及diff算法等这些核心概念,对它内部的实现做了分析,这些都是偏底层的原理.接下来我们将介绍日常 ...
- factorybean 代理类不能按照类型注入_彻底搞懂依赖注入(一)Bean实例创建过程
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 上一章介绍了Bean的加载过程(IOC初始化过程),加载完成后,紧接着就要用到它的依赖注入 ...
- 学习Java日志框架之——搞懂日志门面(JCL+SLF4J)
文章目录 系列文章目录 一.什么是日志门面 1.门面模式(外观模式) 2.日志门面 二.了解JCL 1.JCL组件结构 2.JCL案例 (1)JCL默认实现 (2)导入log4j测试原有程序 三.SL ...
- HTTPS 终于搞懂了 !
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- zhs16gbk对应mysql_[Oracle] 彻底搞懂Oracle字符集
基本概念字符集(Character set):是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.常见的字符集有ASCII,ZHS16GB231 ...
- 面试必备|带你彻底搞懂Python生成器
2019年人工智能系统学: https://edu.csdn.net/topic/ai30?utm_source=ai100_bw 作者 | Rocky0429 转载自 Python空间(ID:Dev ...
- 20分钟教你搞懂Git!
Git 是最流行的版本管理工具,也是程序员必备的技能之一.本文就来教你 20 分钟搞懂 Git! 以下为译文: 尽管每天你都会用到Git,但也有可能搞不懂它的工作原理.为什么Git可以管理版本?基本命 ...
最新文章
- AI时代的高科技读心术:算法解码脑中图像
- web API简介(二):客户端储存之document.cookie API
- Zookeeper分布式一致性原理(五):Zookeeper-Java-API
- 只用半小时,只用半小时,只用半小时,给自己一个机会,看完保你web开发一期末不挂科,老师看了都说好
- Linq使用Group By 1
- sql 查询性能的问题 有order by 和无order by 速度竟然相差百倍
- [C++STL]C++实现list容器
- 2021牛客OI赛前集训营-交替【生成函数】
- 最优化学习笔记(五)牛顿法及拟牛顿法
- Spring技术栈系列教程-- SpringMVC 、SpringBoot 、SpringCloud
- 编写tcp服务器发送hex格式_Android网络编程-TCP/IP协议
- LeetCode 60. 第k个排列(python、c++)
- 分布式配置管理平台 - Disconf介绍
- 学生信息管理系统源码
- 2022最火的一款网盘赚钱系统源码 仿制蓝奏网盘/城通网盘/分享赚钱云盘系统/网盘VIP下载系统
- 给数据库中的某个表添加一个字段!!!!!
- layui控制文本框只能填写数字
- 复现KDL:使用Msnhnet实现串联机器人运动数值逆解(一)
- Java 多态练习题之愤怒的小鸟,会飞会叫
- 工作中那些让人印象深刻的BUG(1)