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 来进行系统级的定制和修改。
相关推荐
百锦再2 小时前
Android Studio开发中Application和Activity生命周期详解
android·java·ide·app·gradle·android studio·studio
移动开发者1号3 小时前
Android现代进度条替代方案
android·app
万户猴3 小时前
【Android蓝牙开发实战-11】蓝牙BLE多连接机制全解析1
android·蓝牙
RichardLai883 小时前
[Flutter 基础] - Flutter基础组件 - Icon
android·flutter
前行的小黑炭3 小时前
Android LiveData源码分析:为什么他刷新数据比Handler好,能更节省资源,解决内存泄漏的隐患;
android·kotlin·android jetpack
清霜之辰3 小时前
安卓 Compose 相对传统 View 的优势
android·内存·性能·compose
_祝你今天愉快3 小时前
再看!NDK交叉编译动态库并在Android中调用
android
一杯凉白开4 小时前
Android View 事件的分发机制 四句口诀 先问拦截再派送,子不处理父兜底, 一旦消费无后续, 滑动冲突靠逻辑。
android
冬田里的一把火34 小时前
[Android]导航栏中插入电源菜单
android
星途码客4 小时前
SQLyog中DELIMITER执行存储过程时出现的前置缩进问题
android