当前位置: 首页 > news >正文

apple 网站模板/提高网站搜索排名

apple 网站模板,提高网站搜索排名,wordpress首页多样式,中国建筑装饰网型号填什么Android 高级面试:插件化和热修复相关 1、dex 和 class 文件结构 class 是 JVM 可以执行的文件类型,由 javac 编译生成;dex 是 DVM 执行的文件类型,由 dx 编译生成。 class 文件结构的特点: 是一种 8 位二进制字节…

Android 高级面试:插件化和热修复相关

1、dex 和 class 文件结构

class 是 JVM 可以执行的文件类型,由 javac 编译生成;dex 是 DVM 执行的文件类型,由 dx 编译生成。

class 文件结构的特点:

  1. 是一种 8 位二进制字节流文件;
  2. 各个数据按顺序紧密的排列,无间隙;
  3. 每个类或者借口都单独占据一个 class 文件;

class 文件的文件结构:

1. magic                           加密字段
2. minor_version                   支持最低版本的jdk
3. major_version                   编译使用的jdk版本
4. constant_pool_count             常量池的数量
5. cp_info constant_pool           常量池的结构体,数量不定
6. access_flags                    访问级别
7. this_class                      当前类
8. super_class                     父类
9. interfaces_count                类实现接口的数量
10. fields_count                   类成员变量的数量
11. methods_count                  类方法的数量
12. method_info methods            类方法的结构体
13. attributes_count               类属性的数量
14. attribute_info attributes      类属性的结构体

dex 文件的结构的特点:

1. 是一种 8 位二进制字节流文件;
2. 各个数据按顺序紧密的排列,无间隙;
3. 一般情况下,整个应用所有 java 源文件都放在一个 dex 文件中。

dex 的文件结构分成 3 个区:

1. 第一个区是 header,包括:1. header_item dex_header 这个结构体,
2. 第二个区是索引区,包括:1. string_id_list dex_string_ids(字符串索引2. type_id_list dex_type_ids(类型索引)3. proto_id_list dex_proto_ids(方法原型索引)4. field_id_list dex_field_ids(域索引)5. method_id_list dex_method_ids(方法索引)
3. 第三个区是数据区,包括:1. class_def_item_list dex_class_defs(类的定义)2. data3. link_data(so)

两者的主要区别:

  1. class 中只包含了一个 java 文件的信息,dex 中包含了多个 java 文件的的信息;
  2. dex 中包含了很多类的信息,它会把类的信息进行拆分,然后把拆分后的信息分配到指定的索引区域中。比如方法索引区域就包含了所有类的方法的索引。

2、加固的原理

加固的过程分成几个步骤:

  1. 要加固的 APK + 壳程序 dex 合成新的 dex;
  2. 然后用新合成的 dex 替换克 apk 中的 dex 得到新的 APK.

第一步的时候可以对 APK 进行加密,然后在运行时对 APK 进行解密。合成新 APK 的本质过程是对 dex 进行拼接,将 APK 文件附加到 dex 文件后面。因为此时 dex 的信息已经发生了变化,所以需要对 dex 的文件头进行修改,包括魔数、检验码和 SHA-1 签名的修改。本质上拼接的过程可以通过读取二进制数组,然后通过数组拷贝将 APK 附加到 dex 末尾。

第二部就是一个打包的过程。不过这个过程会修改 Manifest 文件,将程序中的 Application 替换掉。替换后的 Application 会在程序启动的时候将我们的 APK 加载进来。下面是 360 加固之后的 Manifest 文件:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

加固的过程有些类似于插件化的流程,也是将 APK 解压到磁盘之后,通过反射替换掉 AssertsManager,并将其指向我们解压之后的资源的路径。

360 加固的核心算法在 native 层实现,里面针对不同的平台提供了各种 so 库,运行时在 java 层判断平台版本,调用 so 库。

3、热修复的原理

根据修复的类型分成几种:类的修复,资源修复和 so 修复。

类的修复:

4、插件化的原理

另外
有什么技术问题欢迎加我交流 qilebeaf
本人10多年大厂软件开发经验,精通Android,Java,Python,前端等开发,空余时间承接软件开发设计、课程设计指导、解决疑难bug、AI大模型搭建,AI绘图应用等。
欢迎砸单

http://www.rdtb.cn/news/732.html

相关文章:

  • 中国空间站成为全人类太空之家/最新新闻事件今天
  • 农业科技公司网站建设/seo排名赚app官网
  • 网站的公告轮播效果怎么做/拼多多搜索关键词排名
  • 网站产品预算/百度竞价开户
  • 做产品批发生意用什么类型的网站好/真正永久免费的建站系统有哪些
  • 石家庄做网站公司汉狮价格/临沂百度代理公司有几个
  • 网站的收录/青岛建站seo公司
  • 只做网站/个人博客登录首页
  • 易企秀微网站如何做文字链接/网络推广营销
  • wordpress很卡/seo专员工资一般多少
  • 大良招聘网站建设/一起来看在线观看免费
  • 网站开发工具/百度宣传做网站多少钱
  • 做网站备完备案需要干什么/青岛网站优化
  • 江苏建设人才考试网官方网站/广告公司收费价格表
  • 中国建设银行陕西省分行网站/长春网站制作推广
  • 新疆5g基站建设/在百度上怎么打广告
  • 定陶区城乡建设局网站/如何找客户资源
  • 简单个人网页模板/宁波seo在线优化哪家好
  • 专门做婚纱儿童摄影网站/企业推广宣传方案
  • 网站建设公司咨/win10一键优化工具
  • 网站技术有哪些/合肥网站seo公司
  • 敬请期待英语怎么说/优化大师官方网站
  • 福州网站设计软件公司/如何做电商新手入门
  • 做网站需要服务器和什么软件/推广普通话手抄报简单又好看
  • 高安做网站/石家庄网络seo推广
  • wordpress的wplms主题/槐荫区网络营销seo
  • 广告策划书模板word/seo免费优化软件
  • jsp网站建设模板/营销型网站制作成都
  • 如何高效建设品牌网站?/百度一下首页官网下载
  • 模板网站制作视频/网站推广途径和推广要点有哪些?