简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者
 新书发布:《Android系统多媒体进阶实战》🚀
  优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀
  优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀
  优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

 
🍉🍉🍉文章目录🍉🍉🍉
- 🌻1.前言
- 🌻2. framework.jar介绍
- **核心内容**
- **功能与作用**
- **技术特点**
- **开发者的注意事项**
 
- 🌻3. 解决方案
 
🌻1.前言
本篇目的:Android15之解决:Dex checksum does not match for dex:framework.jar问题
🌻2. framework.jar介绍
framework.jar 是 Android 操作系统中核心的框架库,位于系统目录 /system/framework/ 下,扮演了 Java 层与 Native 层以及底层硬件之间的重要桥梁角色。它包含了大量用于 Android 应用程序开发的核心 API 和服务,提供了 Android 系统运行的基础功能。
核心内容
-  Java Framework API: - framework.jar包含了 Android SDK 中的绝大部分核心 API,例如- android.app.*、- android.content.*、- android.view.*等。
- 它是应用层调用 Android 服务(如 Activity 管理、内容提供者、视图系统)的入口。
 
-  Binder 机制支持: - 内部通过 Binder IPC(进程间通信)机制与 Native 层通信,处理系统服务调用。
- 例如,Context.getSystemService()获取的服务(如ActivityManager、AudioManager等)背后依赖framework.jar提供的接口与底层服务交互。
 
-  管理系统服务: - 包含对系统服务的高层抽象,例如电源管理、通知管理、音频管理、传感器管理等。
 
-  工具类支持: - 包括对 Android 常用工具类(如时间、文件、网络等)的实现,例如 Handler、Parcelable和SharedPreferences。
 
- 包括对 Android 常用工具类(如时间、文件、网络等)的实现,例如 
功能与作用
-  为应用提供支持: - Android 应用开发者通过调用 framework.jar中的 API,与系统资源交互。
- 如使用 Intent启动 Activity、通过ContentResolver访问数据。
 
- Android 应用开发者通过调用 
-  简化底层开发: - framework.jar屏蔽了复杂的底层实现细节,为开发者提供了简洁的接口。
 
-  系统服务绑定: - framework.jar中的类调用了 Native 层(- libbinder.so和 HAL)提供的服务,并将结果返回应用层。
 
技术特点
-  实现语言: - 基于 Java 开发,通过 JNI(Java Native Interface)调用 C/C++ 实现的底层功能。
 
-  与 Zygote 的关系: - Zygote 进程启动时会加载 framework.jar,为应用进程提供共享内存区域,从而提升启动效率。
 
- Zygote 进程启动时会加载 
-  更新机制: - framework.jar是系统版本的一部分,通常随 ROM 更新而更新,不会被普通应用直接修改。
 
开发者的注意事项
-  不可直接修改: - framework.jar属于系统文件,普通应用无法直接访问或修改。
- 自定义 ROM 或开发系统级功能时,可重新编译此文件。
 
-  与 ART/Dalvik 的关系: - framework.jar会被 Android Runtime (ART) 预编译为 OAT 文件,以提高运行效率。
 
🌻3. 解决方案
- 方案一:关闭odex优化
- 方案二:必须是本地整体编译整包后,进行刷机,然后再推入本地编译framework.jar;如果刷入的非本地编译的,而且编译时间相差较大,可能引起以上的报错。