1、Android 热修复与插件化

本文深入探讨了Java的class文件和Android的dex文件结构,包括它们的生成、执行过程及其优缺点。class文件是JVM识别的基础,而dex文件则是DVM和ART识别的格式,具有更高效的存储和执行效率。此外,还介绍了Java虚拟机(JVM)和Dalvik虚拟机(DVM)的区别,以及ART的优势。同时,文章提及了热修复和插件化技术在应对应用更新和模块化开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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框架

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值