如何生成一个dex文件
dex文件的作用
dex文件格式详解
dex文件头:
五、class文件和dex文件的异同:
六、必知必会
一、热修复
=====
热修复的使用:
目前市场上流行的两种方案,阿里系的和腾讯系的
热修复解决的问题:
-
刚发布的应用就发现了比较严重的bug
-
有一些小的功能想即时地推送给用户去使用
二、插件化
=====
插件化的使用:
比较有代表性有三家:
美团、淘宝和酷狗,其中美团和淘宝使用的是自己的方案,酷狗使用的是一个开源方案。
插件化解决的问题:
-
解决应用越来越大所带来的各种技术限制,比如:方法数超过了65535的限制
-
解决应用越来越大带来的合作开发问题
三、class文件详解
===========
什么是class文件
能够被JVM识别,加载并执行的文件格式
如何生成一个class文件
-
通过IDE自动帮我们build
-
手动通过javac(java compile Java编译)去生成class文件
-
通过java命令执行class文件
class文件的作用
记录一个类文件的所有信息
class文件格式详解
-
一种8位字节的二进制流文件
-
各个数据按顺序紧密的排列,无间隙
-
每个类或接口都单独占据一个class文件
ClassFile 结构体
每一个 Class 文件对应于一个如下所示的 ClassFile 结构体。
ClassFile 结构体中,各项的含义描述如下:
1,无符号数,以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数
2,表是由多个无符号数或者其它表作为数据项构成的复合数据类型,所以表都以“_info”结尾,由多个无符号数或其它表构成的复合数据类型
每个部分出现的次数和数量见下表:
access_flags
访问标志,access_flags 是一种掩码标志,用于表示某个类或者接口的访问权限及基础属性。access_flags 的取值范围和相应含义见表 4.1 所示。
constant_pool[ ]
常量池,constant_pool 是一种表结构(这里需要列举一下表就会明白,这个在下面的例子中会有讲解这个结构,返回来在读就会明白),它包含 Class 文件结构及其子结构中引用的所有字符串常量、类或接口名、字段名和其它常量。常量池中的每一项都具备相同的格式特征——第一个字节作为类型标记用于识别该项是哪种类型的常量,称为“tagbyte”。常量池的索引范围是 1 至 constant_pool_count−1。
1常量池的项目类型
class文件弊端
-
内存占用大,不适合移动端
-
堆栈的加栈模式,加载速度慢
-
文件io操作多,类查找慢
四、dex文件详解
=========
什么是dex文件
能够被DVM是被,加载并执行的文件格式
如何生成一个dex文件
-
通过IDE自动帮我们build
-
手动通过dx命令去生成dex文件
-
手动运行dex文件在手机上
dex文件的作用
记录整个工程中所有类文件的信息。
dex文件格式详解
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
]
[外链图片转存中…(img-jwmi7Jum-1715340869538)]
[外链图片转存中…(img-GaMSFEEu-1715340869539)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!