Android-JAR包的引用
一、JAR的定义
JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,以ZIP格式构建,以.jar为文件扩展名,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
二、JAR的分类
JAR文件,可分为静态JAR包和动态JAR包,其中,
- 静态JAR包:参与编译,并打包进apk中,占用APK空间;
- 动态JAR包:参与编译,不打包进apk中,运行时加载;
三、JAR在Android中的使用
- 在Android-Studio环境下
项目的依赖库,需要修改工程下的build.gradle文件:- 静态JAR
一般用于引用第三方的依赖库、模块,如:
compile files('libs/commonApi.jar')
- 动态JAR
常见的应用场景就是引用系统框架库,如:
compileOnly files('libs/framework.jar')
- 静态JAR
- 在Android源码环境下
项目的依赖库,需要修改对应模块下的Android.mk 或 Android.bp文件:- 静态JAR
LOCAL_STATIC_JAVA_LIBRARIES := commonApi
- 动态JAR
LOCAL_JAVA_LIBRARIES := commonApi
四、动态JAR在Android源码中的实现
- 添加一个JAR模块
- 将对应JAR包引入Android工程,参与工程编译
- 将JAR添加至PRODUCT_BOOT_JARS(build/target/product/core_minimal.mk)
PRODUCT_BOOT_JARS := \
...
framework \
...
commonApi
- 添加至白名单(build/core/tasks/check_boot_jars/package_whitelist.txt)
###################################################
# commonApi.jar
com\.zhiqin\.commonApi\..*
ps:在Android11未添加该值,功能正常,该条件不确定是否必要
- 烧写系统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/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/mms-common.jar:/system/framework/commonApi.jar
Android-JAR包的引用的更多相关文章
- java打jar包,引用其他.jar文件
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...
- Maven 官网 查找&下载 jar包& pom引用 完美方案
Maven 官网 查找&下载 jar包 & pom引用 问题描述 在我们在开发过程中,经常遇到程序中需要引用的某个版本jar包,但是在公司的私有仓库下载不到的情况. 遇到这种情况,该怎 ...
- com.android.dex.DexException: Multiple dex files define(jar包重复引用) 错误解决
前段时间开始转入Android studio,不料果真使用时候遇到些错误,在此记下! 出现这个错误往往是在libs目录下有个jar包,然后在gradle文件中又引用了,即: 共同引用了. 解决方法: ...
- Android jar包的导出和使用
一.工程打成JAR包. 1. eclipse下有一工程JsnTxJar,右键工程名选择Export. 选择Java->JAR file 下图所示左边一栏只勾选src,右边一栏都不用勾 ...
- Android JAR包、Library项目
[JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目 (1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2. ...
- 如何在制作jar包时引用第三方jar包
我用的是Eclipse打包,但在CMD窗口执行的时候报“ActiveMQ.jar中没有主清单属性”错误. 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利 ...
- Android jar包混淆
具体可参考http://proguard.sourceforge.net/manual/examples.html#library 1.找到android的adt目录下的 D:\soft\adt-bu ...
- 混淆Android JAR包的方法
http://blog.csdn.net/vurtne_ye/article/details/35599491 1)导出jar包 如何在eclipse上Android工程中导出jar包?google, ...
- springboot打jar包将引用的第三方包、配置文件(.properties、.xml)、静态资源打在包外
1.外置配置文件 Springboot读取核心配置文件(.properties)的外部配置文件调用方式为 jar包当前目录下的/config目录 因此要外置配置文件就在jar所在目录新建config文 ...
- java项目打成jar包时引用了第三方jar,此时我们该如何解决呢
Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的.我们知道在I ...
随机推荐
- Selenium - 元素定位(3) - CSS进阶
Selenium - 元素定位 CSS 定位进阶 元素示例 属性定位 # css 通过id属性定位 driver.find_element_by_css_selector("#kw" ...
- MC我的世界模拟城市模拟大都sim-u常见问题总结
title: 常见问题 date: 2022-08-22 09:58:01 permalink: /course/2 sidebar: auto article: true copyright: tr ...
- Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数、各版本差异、官方提供常见问题
Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数.各版本差异.官方提供常见问题 1.Midjourney Prompt 高级参数 Quality ...
- More than one file was found with OS independent path 'lib/armeabi-v7a/libflutter.so'
今日一个flutter 整合ai到原生android 时老是提示如下错误 Caused by: com.android.builder.merge.DuplicateRelativeFileExcep ...
- Python基础 - 比较运算符
以下假设变量a为10,变量b为20: 运算符 描述 实例 == 等于 - 比较对象是否相等 (a == b) 返回 False. != 不等于 - 比较两个对象是否不相等 (a != b) 返回 tr ...
- Python生成随机验证
Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fr ...
- 技术招聘漫谈 | 正在招Golang工程师的你,赶快收藏这份识人秘籍!
各位技术面试官,欢迎来到新一期的技术招聘漫谈专栏. 在前两期的专栏中,我们解析了前端工程师以及 Java 工程师 这两个常见技术岗位的招聘技巧. 今天,我们想把目光聚焦在一个前景与"钱&qu ...
- Galaxy 生信平台(一):安装
Galaxy Project( https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目. 该项目由美国国家科学基金会(NSF).美国国家人类基因组 ...
- 【Azure K8S】AKS升级 Kubernetes version 失败问题的分析与解决
问题描述 创建Azure Kubernetes Service服务后,需要升级AKS集群的 kubernetes version.在AKS页面的 Cluster configuration 页面中,选 ...
- VUE路由传参的实用方式
本文讲解了VUE项目中路由之间的传值方式,涉及到的方法都是开发时常用的,希望对大家有多帮助. 1. 方式一:使用router-link标签 1.1 params 传参 首先定义好路由 const ro ...