Android studio 创建aar包给Unity使用

1、aar 是什么? 和 Jar有什么区别

  • aar 和 jar包 都是压缩包,可以使用压缩软件打开

  • jar包 用于封装 Java 类及其相关资源

  • aar 文件是专门为 Android 平台设计的 ,可以包含Android的专有内容,比如AndroidManifest.xml 文件 , 资源文件 等等

2、在Android studio中创建 aar

2.1 创建项目

这个对于我来说很难,没用过Android studio,没用过gradle,搞起来一脸懵逼。接下来一步一步跟我来

打开Android studio,file->new project 创建一个项目承载这个模块,接着选择 Phone and Tablet

这里要注意选择Java作为编程语言,以及Groovy 作为gradle的语言,接着finish就好了

等待一会整个项目就完成了,这里我们切换到project视图,而不是默认的Android视图

2.2 清理项目

打开项目文件夹,直接删除app文件夹,然后打开settings.gradle 修改

去除 include ':app',最终整个项目结构如下

2.3 创建aar项目

file -> new module ,然后选择 Android Library,如下图

Finish之后,最终整个项目如下图

随便创建一个类,接着我们开始打包aar

2.4 打包aar

最简单的打包方式使用Android studio内置的打包方式,

方式1:在 Android Studio 中

  • BuildMake Project

  • BuildBuild Bundle(s) / APK(s)Build APK(s)

方式2:使用gradle打包

打开右侧 gradle边栏,使用assemble

方式3:直接使用gradle命令打包

切换到当前项目的根目录,使用 ./gradlew assembleRelease 进行打包

2.5 打包所在地址

当前模块的build/outputs目录下有打包好的aar

把这东西交给unity同学使用就行了,

具体的使用可以看这篇文章:unity调试Android,C# 直接访问Java代码

3、关于gradle

gradle 咋说呐,不太懂,简单理解就是和maven同样的东西

gradle 就是用编程的方式控制编译的过程,这玩意太灵活了,对于我来说能用就完了

3.1 gradle同步

在最初的时候没有gradle的工具菜单,都是使用方式三进行打包

设置完build.gradle 一般会弹出一个sync now的按钮,如果同步不成功 可以强制同步

File -> Sync Project with Gradle Files,这样gradle就可以了。

3.2 gradle文件说明

build.gradle(Project:LibContainer) 是整个项目的编译文件,也就是会编译所有模块

build.gradle(Module:mylibrary) 是类库的编译文件,只会编译当前模块

settings.gradle 是整个项目的通用设置,类似Maven的父 pom.xml

gradle.batgradle的命令

rules.proAndroid用来混淆代码的,可以无视

总体来说整个架构和Maven的父子模块很类似

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/965969.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL--loaddata infile、outfile into及mysqldump高效导入导出数据_mysql load outfile

【学习背景】 在日常工作和学习MySQL时,经常涉及到MySQL数据的导入和导出,分享几种常用又方便的方式: (1)MySQL命令行source命令 (3)语法into outfile和load data infile (3&#xf…

基于LMStudio本地部署DeepSeek R1

DeepSeek R1 DeepSeek R1是由DeepSeek团队开发的一款高性能AI推理模型,其开源版本包括完整的DeepSeek R1 671B权重,以及基于其蒸馏出的多个小型模型。 DeepSeek R1通过蒸馏技术将推理模式迁移到更小的模型中,显著提升了这些模型的推理能力。…

#渗透测试#批量漏洞挖掘#Splunk Enterprise for Windows 任意文件读取漏洞( CVE-2024-36991)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

读书笔记--分布式架构的异步化和缓存技术原理及应用场景

本篇是在上一篇的基础上,主要对分布式应用架构下的异步化机制和缓存技术进行学习,主要记录和思考如下,供大家学习参考。大家知道原来传统的单一WAR应用中,由于所有数据都在同一个数据库中,因此事务问题一般借助数据库事…

【提示词工程】探索大语言模型的参数设置:优化提示词交互的技巧

在与大语言模型(Large Language Model, LLM)进行交互时,提示词的设计和参数设置直接影响生成内容的质量和效果。无论是通过 API 调用还是直接使用模型,掌握模型的参数配置方法都至关重要。本文将为您详细解析常见的参数设置及其应用场景,帮助您更高效地利用大语言模型。 …

(七)QT——消息事件机制&绘图&文件

目录 前言 消息事件机制 (Event System) 绘图 (Graphics & Drawing) 绘图设备 Qt 提供的主要绘图设备 Qt 主要绘图设备的特点 各个绘图设备的详细介绍 文件处理 (File Handling) 总结 前言 QT 是一个非常强大的图形用户界面(GUI)开发框架&…

ChatGPT提问技巧:行业热门应用提示词案例-文案写作

ChatGPT 作为强大的 AI 语言模型,已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案,关键在于如何与它“沟通”,也就是如何设计提示词(Prompt)。以下是一些实用的提示词案例,帮助你解锁 ChatG…

C++服务端开发注意事项总结

文章目录 一、架构设计1. 选择合适的网络框架2. 确定并发模型3. 模块化设计 二、性能优化1. 优化内存管理2. 减少锁的使用3. 优化网络通信 三、安全性1. 输入验证2. 使用安全的通信协议3. 防止拒绝服务攻击(DoS) 四、可维护性1. 日志记录2. 代码注释3. 单…

idea中git的简单使用

提交,推送直接合并 合到哪个分支就到先切到哪个分支

Kubernetes 中 BGP 与二层网络的较量:究竟孰轻孰重?

如果你曾搭建过Kubernetes集群,就会知道网络配置是一个很容易让人深陷其中的领域。在负载均衡器、服务通告和IP管理之间,你要同时应对许多变动的因素。对于许多配置而言,使用二层(L2)网络就完全能满足需求。但边界网关协议(BGP)—— 支撑互联网运行的技术 —— 也逐渐出…

LSSVM最小二乘支持向量机多变量多步光伏功率预测(Matlab)

代码下载:LSSVM最小二乘支持向量机多变量多步光伏功率预测(Matlab) LSSVM最小二乘支持向量机多变量多步光伏功率预测 一、引言 1.1、研究背景与意义 随着全球能源危机和环境问题的日益严重,可再生能源的开发利用成为了世界各国…

docker容器运行时忘了加自动重启命令了,之后如何添加自动重启命令,使其随开机自动重启

要让已有的Docker容器在系统重启后自动启动,可以通过以下步骤设置其重启策略: 步骤 1:查找容器名称或ID docker ps -a找到目标容器的ID或名称。 步骤 2:更新容器的重启策略 使用 docker update 命令直接修改容器的重启策略&am…

第16章 Single Thread Execution设计模式(Java高并发编程详解:多线程与系统设计)

简单来说, Single Thread Execution就是采用排他式的操作保证在同一时刻只能有一个线程访问共享资源。 1.机场过安检 1.1非线程安全 先模拟一个非线程安全的安检口类,旅客(线程)分别手持登机牌和身份证接受工作人员的检查,示例代码如所示。…

深度学习:解码智能的“数字炼金术”

深度学习:解码智能的“数字炼金术” 1943年,当神经科学家沃伦麦卡洛克和数学家沃尔特皮茨在论文中首次提出人工神经元模型时,他们或许没有想到,这个简单的数学公式会在80年后掀起改变人类文明的技术革命。深度学习作为这场革命的…

让文物“活”起来,以3D数字化技术传承文物历史文化!

文物,作为不可再生的宝贵资源,其任何毁损都是无法逆转的损失。然而,当前文物保护与修复领域仍大量依赖传统技术,同时,文物管理机构和专业团队的力量相对薄弱,亟需引入数字化管理手段以应对挑战。 积木易搭…

pytest-xdist 进行多进程并发测试

在自动化测试中,运行时间过长往往是令人头疼的问题。你是否遇到过执行 Pytest 测试用例时,整个测试流程缓慢得让人抓狂?别担心,pytest-xdist 正是解决这一问题的利器!它支持多进程并发执行,能够显著加快测试…

广度优先搜索(BFS)算法详解——以走迷宫问题为例

引言:当算法遇见迷宫 想象你置身于一个复杂的迷宫,如何在最短时间内找到出口?这个问题不仅存在于童话故事中,更是计算机科学中经典的路径搜索问题。本文将带你通过走迷宫问题,深入理解广度优先搜索(BFS&am…

kubeadm构建k8s源码阅读环境

目标 前面看了minikube的源码了解到其本质是调用了kubeadm来启动k8s集群,并没有达到最初看代码的目的。 所以继续看看kubeadm的代码,看看能否用来方便地构建源码调试环境。 k8s源码编译 kubeadm源码在k8s源码库中,所以要先克隆k8s源码。之…

BFS算法篇——广度优先搜索,探索未知的旅程(上)

文章目录 前言一、BFS的思路二、BFS的C语言实现1. 图的表示2. BFS的实现 三、代码解析四、输出结果五、总结 前言 广度优先搜索(BFS)是一种广泛应用于图论中的算法,常用于寻找最短路径、图的遍历等问题。与深度优先搜索(DFS&…

baigeiRSA

baigeiRSA 打开附件有两个: 1.import libnumfrom Crypto.Util import numberfrom secret import flag​size 128e 65537p number.getPrime(size)q number.getPrime(size)n p*q​m libnum.s2n(flag)c pow(m, e, n)​print(n %d % n)print(c %d % c)​​2.n…