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

公司做个网站学网站开发的书

公司做个网站,学网站开发的书,如何做外贸soho做网站,宁波网站推广软件哪家强些一、核心概念理解1. JAR (Java Archive)定义:JAR 是 Java 平台的标准打包格式,并非 Android 独有。它本质上是一个 ZIP 压缩文件,使用 .jar 作为扩展名。包含文件:编译后的 .class 文件(核心)资源文件&…

一、核心概念理解

1. JAR (Java Archive)
  • 定义:JAR 是 Java 平台的标准打包格式,并非 Android 独有。它本质上是一个 ZIP 压缩文件,使用 .jar 作为扩展名。

  • 包含文件:

    • 编译后的 .class 文件(核心)

    • 资源文件(如 .properties 配置文件)

    • META-INF/MANIFEST.MF 清单文件(包含元数据,如主类、版本信息)

  • 目的:主要用于打包和分发 纯 Java 代码库。它只包含代码逻辑,不包含任何 Android 平台相关的资源(如布局、图片、清单文件等)。

2. AAR (Android Archive)
  • 定义:AAR 是 Android 系统特有的库项目打包格式,可以看作是 Android 版的 JAR。它同样是一个 ZIP 文件,使用 .aar 作为扩展名。

  • 包含文件

    • /classes.jar:编译后的 Java 代码(相当于一个 JAR 包)

    • /res/ 目录:资源文件(布局 layout、drawable、values 等)

    • /AndroidManifest.xml清单文件(可以定义组件、权限等)

    • /R.txt:编译时生成的 R 资源映射表

    • /assets/ 目录:原始资源文件

    • /jni/ 目录:预编译的 so 库(用于 NDK 原生代码)

    • proguard.txt:该库专用的混淆规则

  • 目的:用于打包和分发一个完整的 Android 库模块,包含代码、资源和清单文件。这是分发 Android UI 组件、自定义 View、第三方 SDK(如广告、登录 SDK)的首选格式。


二、核心区别与对比

特性JAR (Java Archive)AAR (Android Archive)
格式来源Java 平台标准格式Android 特有格式
包含内容编译后的 .class 文件和 Java 资源所有 Android 模块内容:代码、资源清单、so库等
Android 资源不支持(无法包含 res/layout/ 等)支持(核心优势)
AndroidManifest.xml不包含包含,并可与其他清单合并
使用场景分发纯 Java 工具库、算法库分发 Android UI 组件、自定义 View、完整功能 SDK
Gradle 依赖implementation files('libs/xxx.jar')implementation files('libs/xxx.aar') 或 implementation project(':library')
依赖传递如果 JAR 依赖了其他库,需要手动添加可以自动传递其自身的依赖(在 pom.xml 中定义)

三、工作流程与实战

1. 如何生成?
  • 生成 JAR

    • 在 Android Studio 中,通常需要专门配置 Gradle Task 来打 JAR 包,因为它不是 Android 模块的标准输出。

    • 一个简单的 JAR 打包 Task 示例:

      // 在 Module 的 build.gradle 中
      task makeJar(type: Copy) {from('build/intermediates/aar_main_jar/release/') // 来源路径可能随Gradle版本变化into('../libs/')include('classes.jar')rename('classes.jar', 'my-library.jar')
      }
      makeJar.dependsOn(build)
  • 生成 AAR

    • 这是 Android 库模块 (apply plugin: 'com.android.library') 的标准构建输出。

    • 只需在 Android Studio 右侧的 Gradle 面板 -> 找到你的库模块 -> Tasks -> build -> 双击 assembleRelease

    • 生成的 AAR 文件在 module目录/build/outputs/aar/ 下。

2. 如何使用?
  • 使用本地 JAR/AAR

    1. 将 xxx.jar 或 xxx.aar 文件复制到项目的 app/libs/ 目录下。

    2. 在 app/build.gradle 文件中添加依赖:

      dependencies {implementation files('libs/xxx.jar') // 引入JARimplementation files('libs/xxx.aar') // 引入AAR// 或者批量引入libs目录下所有jar包implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
      }
  • 使用远程仓库中的 AAR(主流方式):
    绝大多数第三方 Android 库都通过 Maven 仓库分发(如 JCenter, Maven Central, Google's Maven Repo)。Gradle 会根据依赖项自动下载对应的 AAR(或 JAR)。

    dependencies {implementation 'com.squareup.retrofit2:retrofit:2.9.0' // 这其实下载的是一个.aar文件implementation 'com.google.code.gson:gson:2.8.6' // 这是一个.jar文件
    }
3. AAR 的依赖传递机制

这是理解大型项目依赖管理的关键。流程如下:

这意味着:当你添加一个 AAR 依赖时,你很可能也悄悄地引入了它所依赖的其他库。这有时会导致依赖冲突(如两个不同版本的同一个库),需要通过 exclude 或强制统一版本来解决。


四、总结

Q:“谈谈对 Android 中 JAR 和 AAR 的理解,它们有什么区别?”

A:

“JAR 和 AAR 都是 Android 开发中常用的依赖包格式,但它们的定位和用途有本质区别。

  1. JAR 是 Java 平台的标准打包格式,它里面主要包含编译后的 .class 文件和一些 Java 资源。它在 Android 中主要用于引入纯 Java 的工具库或算法库,比如 Gson、OkHttp 的核心逻辑库。因为它不包含任何 Android 相关的资源或清单文件。

  2. AAR 是 Android 特有的库项目打包格式,它可以看作是 JAR 的超集。一个 AAR 文件内部不仅包含编译后的代码(其实内部就有一个 classes.jar),还包含了 Android 资源文件(res/)、清单文件(AndroidManifest.xml)、原生 so 库等。这使得它能够打包一个完整的 Android 模块。我们日常引入的绝大多数第三方 UI 组件或 SDK(如 Glide、Retrofit 的完整包)都是以 AAR 格式分发的。

http://www.dtcms.com/a/618166.html

相关文章:

  • IP传输层协议在通信系统中的介绍
  • 数据结构 —— 队列
  • OKHttp核心设计解析:拦截器与连接池的工作原理与实现机制
  • 做资源网站需要什么单页做网站教程
  • 实用程序:一键提取博客图片链接并批量下载的工具
  • 破解入门学习笔记题四十七
  • 登陆国外网站速度慢网站重构案例
  • 百日挑战——单词篇(第二十三天)
  • 基于Flask + ECharts的个人财务仪表盘 -(上个记账本的优化MAX)
  • Galois 理论 | 发展历程 / 基本定理的证明
  • 给定一个数组,如何用最小的比较次数获得最大最小值
  • 个人网站免费源码大全南宁seo管理
  • Linux服务器崩溃急救指南:快速诊断与恢复
  • 后端服务发现配置
  • wordpress建的手机网站合肥信息网
  • 我爱学算法之—— 字符串
  • 关于Function JS加密加密(仅于问题分析)
  • mysql基础——视图
  • win系统做网站wordpress侧边文本轮播图片
  • 免费微商城平台官网一直在做竞价的网站是不是不需要做seo
  • 输出纹波实测:ASP3605在不同输入与负载条件下的稳定性表现
  • RAG向量索引-HNSW Hierarchical Navigable Small World 介绍
  • 沈阳做网站的企业重庆房产网站建设
  • 让老版 IntelliJ IDEA 2020.1.4 支持 JDK 17 启动 springboot3 项目
  • 网站开发逻辑商丘网站建设求职简历
  • [Linux网络——Lesson1.初识计算机网络]
  • 电子电气架构全解析
  • 5G技术:推动数字经济的下一个革命性浪潮
  • 5G与AI赋能智能制造:未来生产的双重驱动力
  • 从工业互联网到智慧城市:5G与物联网的跨界融合