Android APK 签名打包原理分析(一)【APK结构分析】

news/2024/11/24 10:28:13/

1.引言

最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识系统的整理、沉淀下来,所以感觉有必要,借这个契机,来深入学习总结一下。

还是老办法,我们开始学习之前, 先大概梳理一下,自己有哪些问题或者知识点,想要借此良机,扩展、深入学习总结的、大家也一直知道,小编采用这样的学习办法,无非是为了防止以下类似的情形出现。

  • 出现像盲人摸象一样,只见其树木未见森林,看到一个知识点,了解之后,并未深入扩展
  • 出现像无头苍蝇一样,看一个知识点,遇到另外一个陌生知识点,立马又打开,最后打开一大堆网页,都只是了解了皮毛

总之一句话,做什么事情,总得有个目标。
1)APK的打包过程,具体到资源、aidl、java、dex等
2)APK的包结构,具体为apk文件中,每个文件的内容、来源、用处
3)APK的签名、验证过程
4)android v1、v2、v3、v4签名的异同点
5)渠道包的方案迭代,涉及到walle的实现原理
6)之前一些实际工作中,遇到问题的经验总结,例如:静默安装的实现方案、增量升级之后app没有更新问题的解决等
7)Res


http://www.ppmy.cn/news/22877.html

相关文章

【Three.js基础】创建场景、渲染场景、创建轨道控制器(一)

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…

HBase-replication流程

一、核心工作原理二、主要流程解析2.1获取从集群rs列表流程初始化从集群zk连接: 只会在RS启动的时候初始化或者新增peer的时候一次,后续不再初始化,所以不从集群扩容后不能被主集群识别到将从集群的zk连接传递给ReplicationEndpoint:在ReplicationSource…

C++初阶--哈希

目录 unordered系列关联式容器 unordered_map unordered_set 底层结构(哈希) 概念 哈希冲突 哈希函数 哈希冲突解决 1.闭散列 2.开散列 开散列与闭散列比较 模拟实现unordered_map 和 unordered_map HashTable.h UnorderedMap.h UnorderedSet.h 哈希的应用 位图 位图的实现…

【面试题】Java面试题整理6

1.对AOP的理解 相关概念 切面:一个特殊的模块化类。通知:切面类中的具体的方法切点:通知要执行的具体位置 任何一个系统都是由不同的组件组成的,每个组件负责一块特定的功能,当然会存在很多组件是跟业务无关的&…

【回溯算法篇】N皇后问题

🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…

9-数据库优化

数据库优化通常是为了减轻对数据库压力,优化方式可以从使用缓存、数据库配置、sql和索引优化入手; 使用缓存可以将系统请求先打向缓存,如果缓存中有我们要获取的数据,那将不会再走数据库。 数据库配置方面是指可以通过修改数据库配…

KT中代理属性的实现及使用案例分析

普通的delegate代理属性get/set方法,可以看到类中会声明一个数组保存需要代理的所有KProperty字段信息(包含类名,字段名称,字段签名()) PS:冷知识map也可以用于委托,只要有get/set方…

day07_Java中的流程控制(循环结构丶break丶continue)

循环概述 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一…