Android-JAR包的引用

一、JAR的定义

    JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,以ZIP格式构建,以.jar为文件扩展名,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。

二、JAR的分类

    JAR文件,可分为静态JAR包动态JAR包,其中,

  • 静态JAR包:参与编译,并打包进apk中,占用APK空间;
  • 动态JAR包:参与编译,不打包进apk中,运行时加载;

三、JAR在Android中的使用

  1. 在Android-Studio环境下
    项目的依赖库,需要修改工程下的build.gradle文件:
    • 静态JAR
      一般用于引用第三方的依赖库、模块,如:
    compile files('libs/commonApi.jar')
    • 动态JAR
      常见的应用场景就是引用系统框架库,如:
    compileOnly files('libs/framework.jar')
  2. 在Android源码环境下
    项目的依赖库,需要修改对应模块下的Android.mk 或 Android.bp文件:
    • 静态JAR
    LOCAL_STATIC_JAVA_LIBRARIES := commonApi
    • 动态JAR
    LOCAL_JAVA_LIBRARIES := commonApi

四、动态JAR在Android源码中的实现

  1. 添加一个JAR模块
  2. 将对应JAR包引入Android工程,参与工程编译
  3. 将JAR添加至PRODUCT_BOOT_JARS(build/target/product/core_minimal.mk)
PRODUCT_BOOT_JARS := \
...
framework \
...
commonApi
  1. 添加至白名单(build/core/tasks/check_boot_jars/package_whitelist.txt)
###################################################
# commonApi.jar
com\.zhiqin\.commonApi\..*

  ps:在Android11未添加该值,功能正常,该条件不确定是否必要

  1. 烧写系统system.img,通过adb shell指令验证查看该jar是否导入BOOTCLASSPATH,以验证是否生效
C:\Users\linzhiqin>adb shell $BOOTCLASSPATH
/system/bin/sh: /system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okht
Android-JAR包的引用 - 林奋斗同学 - 博客园 (cnblogs.com)
posted @   xiaowang_lj  阅读(188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示