AOSP Android 系统源码编译出的framework.jar和android.jar之间的区别

简介

AOSP(Android Open Source Project)编译出的 android.jar 和 framework.jar 都是 Android 平台开发中的重要组件,但它们有不同的作用和用途:

  1. android.jar:

    • 用途:android.jar 包含了 Android API 的定义,它是 Android 应用程序开发的核心库。开发者在编写 Android 应用程序时,使用 android.jar 中的类和方法来与 Android 系统进行交互,访问设备功能和系统服务。

    • 内容:android.jar 包含了 Android Framework 中的 API 定义,但不包含实际的实现代码。这意味着它只包含了类和方法的签名信息,而没有具体的实现。这样可以确保应用程序开发者使用的 API 是公开的、稳定的,并且与 Android 版本无关。

    • 使用:android.jar 通常被包含在 Android 应用程序项目的类路径中,以便开发者可以在编译和开发过程中引用 Android API。

    • 输出路径: android.jar 文件通常位于 Android 源代码树的 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar 目录中。注意这些路径可能会因不同的 Android 版本和编译配置而有所不同。

  2. framework.jar:

    • 用途:framework.jar 包含了 Android Framework 层的实际 Java 代码。这些代码实现了 Android 操作系统的核心功能,包括各种系统服务、管理应用生命周期、处理用户界面等。这是 Android 系统自身的一部分。

    • 内容:framework.jar 包含了 Android Framework 层的具体实现,包括各种类、方法和功能的代码。

    • 使用:framework.jar 不是用于 Android 应用程序开发的库,而是用于 Android 系统的开发和定制。Android 系统开发人员可以在 Android 源代码的基础上进行自定义,修改和扩展 framework.jar 中的代码来创建定制的 Android ROM。

    • 输出路径:framework.jar 文件位于 Android 源代码树的 out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar 目录中。注意这些路径可能会因不同的 Android 版本和编译配置而有所不同。

总结

  • 总结来说,android.jar 用于 Android 应用程序开发,提供了对 Android API 的访问,而 framework.jar 是 Android 系统的一部分,包含了 Android Framework 层的实际实现代码。应用程序开发者通常只需关注 android.jar,而 Android 系统开发人员可能需要涉及到 framework.jar 来进行系统级的定制和修改。
相关推荐
一笑的小酒馆9 小时前
Android中WebRTC通信
android
不老刘10 小时前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
KevinWang_11 小时前
Android Hilt 依赖注入
android
古法安卓12 小时前
Android-深入理解 Android 回调(Callback)机制
android·性能优化·android studio
古法安卓12 小时前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio
FungLeo14 小时前
Flutter 吸顶分组列表实战:语义桶分组 + 点击头平滑滚动
android·flutter
阿巴斯甜15 小时前
Android 自定义权限
android
FungLeo15 小时前
Flutter 超长 StatefulWidget 拆分术:part of + extension on State 实战
android·flutter·dart
小王C语言16 小时前
MySQL 数据类型:数值类型、字符串类型、日期和时间类型、enum 和 set、find_in_set 查询
android·数据库·mysql
我命由我1234517 小时前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime