1、class&dex文件详解
1)class文件结构深入解析(生成、执行、文件结构)
1.什么是class文件
能够被jvm识别、加载并执行的文件格式。
除了java语言其他语言也可以生成class文件,如图:
2.生成class文件
1.通过IDE自动帮我们build
2.手动通过javac命令去生成class文件
3.通过java命令去执行class文件
3.class文件作用
记录一个类文件的所有信息
4.class文件结构
1)一种8位字节的二进制流文件
2)各个数据按顺序紧密的排列,无间隙
3)每个类或接口都单独占据一个class文件
5、class文件弊端
1)内存占用大,不适合移动端
2)堆栈的加载模式,加载速度慢
3)文件IO操作多,类查找慢
2)dex文件结构深入解析(生成、执行、文件结构)
1.什么是dex文件
能够被DVM识别,加载并执行的文件格式
2.class文件结构
1)一种8位字节的二进制流文件
2)各个数据按顺序紧密的排列,无间隙
3)整个应用中所有java源文件都放在一个dex中
3)class与dex文件对比
1.本质上他们都是一样的,dex是从class文件演变而来的
2.class文件存在许多冗余信息,dex回去出冗余,并整合
2、虚拟机详解
1.Java虚拟机结构解析
1)jvm整体结构讲解
2)java代码的编译和执行过程
3)内存管理和垃圾回收
2. Dalvik与JVM的不同
3.ART比Dalvik有哪些优势
一、热修复
比如阿里的优酷和支付宝,腾讯的微信都有使用热修复
1、热修复解决的问题
1)应用刚上线就发现了bug
2)一些小的功能想即时推送给用户
二、插件化
比如美团、淘宝、和酷狗
1、插件化解决的问题
1)应用越来越大带来的各种技术限制和合作开发问题
2、使用热修复不会改变应用的结构,使用插件化会改变应用的结构
1.插件化介绍
出现背景
1.apk体积越来越大,功能模块越来越多
2.模块耦合度高,协同开发成本大
3.方法数可能超过65535,占用内存过大
如何解决
1,将一个大的apk按照业务分隔成多个小的apk
2. 每个小的apk即可以独立运行又可以作为插件运行
2.插件化原理
Atlas框架