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

2023-09-15 08:40:02

简介

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 来进行系统级的定制和修改。

格莱纳里夫森林公园的日落

更多推荐

DataSheet专业名词解读——每天10个专业名词(1)23.9.18 (NXP)MPC5604B/C

文章目录1.variablelengthencoding(VLE)可变长度编码2.ErrorCorrectionCode(ECC)纠错编码3.Memoryprotectionunit(MPU)内存保护单元4.Interruptcontroller(INTC)中断控制器5.Frequencymodulatedphase-

机器视觉-标定篇

3D结构光标定结构光视觉的优点:非接触、信息量大、测精度高、抗干扰能力强。结构光视觉传感器参数的标定包括:摄像机参数标定、结构光平面参数标定。结构光视觉测量原理图我们不考虑镜头的畸变,将相机的成像模型简化为小孔成像模型,则特征点的图像坐标Pf与其在摄像机坐标系下的三维坐标P之间的关系可表示为:其中:(u,v)是特征点的

在Vue中使用Immutable.js

在Vue3中使用Immutable.js以下是如何在Vue.js中使用Immutable.js的步骤:首先,需要安装immutable.js。你可以通过npm或yarn来安装:npminstallimmutable或者yarnaddimmutable在你的Vue组件中导入Immutable:import{Map,Lis

OOM问题排查解决方案、Arthas分析高CPU问题

一、OOM问题分析流程:第一步:进程分析,分析老年代回收次数和消耗时间第二步:日志分析,找出OOM发生时间的日志来锁定执行方法,对应的机器ip第三步:找到对应的ip机器查看,进一步分析第四步:下载的dump,使用mat分析堆内存,找到堆占用率前3,查看堆指向问题产生:查看新生代最高1000M,如果大数据量调用,jvm会

TypeScript逆变 :条件、推断和泛型的应用

TypeScript逆变:条件、推断和泛型的应用1一个类型问题有一个名为test的函数,它接受两个参数。第一个参数是函数fn,第二个参数options受到fn参数的限制。乍一看,这个问题貌似并不复杂,不是吗?糊业务的时候,这种不是常见的需求嘛。“创建一个泛型类型Test,以确保这两个参数之间存在约束关系就完事了,睡醒再

Vue3 - 实现动态获取菜单路由和按钮权限控制指令

GitHubDemo地址在线预览前言关于动态获取路由已在这里给出方案Vue-vue-admin-template模板项目改造:动态获取菜单路由这里是在此基础上升级成vue3和ts,数据和网络请求是通过mock实现的具体代码请看demo!!!本地权限控制,具体是通过查询用户信息获取用户角色,在路由守卫中通过角色过滤本地配

Postgresql JIT README翻译

WhatisJust-in-TimeCompilation?=================================Just-in-Timecompilation(JIT)istheprocessofturningsomeformofinterpretedprogramevaluationintoanativ

Linux基础指令(四)

目录前言1.find&which指令1.1find1.2which1.3alias1.4where2、grep指令3、xargs指令结语:前言欢迎各位伙伴来到学习Linux指令的第四天!!!在上一篇文章Linux基本指令(三)当中,我们学会了通过学习echo指令,引入了Linux系统中,输出重定向、追加重定向、输入重定

基于海康Ehome/ISUP接入到LiveNVR实现海康摄像头、录像机视频统一汇聚,做到物联网无插件直播回放和控制

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB281811、海康ISUP接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例3、通道配置3.1、直播流接入类型海康ISUP3.2、海康ISUP设备ID3.3、启用保存3.4、接入成功4

java---jar详解

一、helpC:\Users\lichf1>jar用法:jar{ctxui}[vfmn0PMe][jar-file][manifest-file][entry-point][-Cdir]files...选项:-c创建新档案-t列出档案目录-x从档案中提取指定的(或所有)文件-u更新现有档案-v在标准输出中生成详细输出-

计算机竞赛 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录0前言1课题背景2实现效果3卷积神经网络3.1卷积层3.2池化层3.3激活函数:3.4全连接层3.5使用tensorflow中keras模块实现卷积神经网络4YOLOV56数据集处理7模型训练8最后0前言🔥优质竞赛项目系列,今天要分享的是🚩**基于深度学习的自动驾驶车道线检测算法研究与实现**该项目较为新颖

热文推荐