Unity之Android项目的打包

news2025/3/1 3:47:17

一 Unity里面配置Android运行环境

1.1 首先unity需要集成android编译环境,点击FIle->Build Settings

3fb1275833b64dcab002a8f60ca600ef.png

1.2 没是否有Android模块,没的话先下载Android模块

a6b55154d35c4ac38d1fc6c89ecbc30c.png

1.3 按下面的操作,下载Android支持,SDK,NDK,和JDK

b204154f4e274364aee5578458766d9d.png

1.4 如果之前AndroidStudio配置有这些,可以不用下载,进行配置就行,Edit->Preferences

a819c9120d5549ed8467cbe8ea25b3a1.png

1.5 选择External Toos选项,往下拉出现SDK相关配置,我们选择本地路径就可以了

3a0982fce8ff4ab889f5f65106a26c15.png

有可以在AndroidStudio里面管理SDK版本

2044234a260b467a94fa18f75305fd2b.png

二 编译运行Android

2.1  点击File -> Build Setting -> Player Settings,进入项目配置页面

c4a7616966774db494abfcf9dd522248.png

2.2 找到Player -> Android模块,配置图标,方向,发布包名等信息

edffe74fe59c48f58cc4f28d3a601d3d.png

96034c7161a843fd94edcdf8871f035f.png

屏幕放向

6cbd1cc8332942f1b39c66ac523e7cd1.png

2.3 退出到Build Settings,点击Build或者Build Run

7104a882b5194c3ea8bac7926a12ab78.png

可以在目录文件生成一个未签名的apk

6374843673ab4ebdb5ccd04070a08be8.png

三 unity对android项目签名

3.1 上面只是编译了未签名的包,这是不安全的包,上不了应用市场,所以需要对apk进行签名发布。选择Project Setting选项的publish,进行密钥管理,可以新建或者选择本地密钥

6c6e8410d4fd4efabc0b7267b7e0313f.png

3.2  那就新建一个,填写密钥信息

acf7a22f5ed84ebeb989de44551bef57.png

8c2e1a829d7d46a3a783ef282829c358.png

 3.3 点击add Key就配置上了密钥密钥,选择Release正式包

3d4d481a17b8404ea5350b56a8ece4c8.png

3.4 还需要配置包名信息,包名是项目的唯一标识,非常重要。在Other Setting里面找到Identification的位置,填写包名,版本。

fe4bf6202f2b4582a633b2ca9757f07f.png

3.5 注意,默认只支持ARMV7架构,可能在部分手机不能运行,所以给了提示:您正在制作一个发布版本并使用自定义签名密钥,但它不支持本机64位。如果您计划发布此版本,请注意,大多数商店都需要支持本机64bit的二进制文件。通过更新播放器设置添加本机64位支持:将ScriptingBackend设置为lL2CPP,并确保目标体系结构包括ARM64

d4d2a4463bef4e5a8e0238ca9c94db17.png

根据提示我们将ScriptingBackend设置为lL2CPP

392466dc597b4346bff5e41cb92c9736.png

3.6 然后换了提示:通过更新播放器设置添加本机64位支持:确保TargetArchitectures包含ARM64。

d55998bc27364600a1e109603c10bfcf.png

这是因为没有勾选ARM64,我们勾选下就可以了

38dcc3b24cb646e780c48210ac67468f.png

64位架构必要配置说明:

  • Minimum API Level:26 足以满足所有平台要求
  • ScriptingBackend:IL2CPP,转编译为C++,性能更好,代码加密效果更佳
  • Target Architectures:ARM64 2023年了目前所有一体机设备架构基本都以支持ARM64

 3.7 然后我们重新编译,就在项目目录生成一个apk文件

5ea13646344d4043899213341dc6b4a3.png

af147c5e0a074abe881d80710544c17d.png

3.8 查看apk是否是签过名的release包

首先要USB连接手机的开发者模式,即Unity里面有这个手机的连接信息

51b639ea138f453182be4769981bbc8e.png

到jdk安装目录,右击进入终端窗口

8afbf8d96bc644d4812cfb34bea7aa4f.png

adb shell命令查看apk是否为debug包

$ adb shell dumpsys package xx.xx.xx | findstr flags
查看apk是否release版本xx.xx.xx为包名

命令执行成功时,返回flags:
flags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]

代表该APK为debug版本
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]
代表该APK为release版本

可以看到终端输出是release包

a06021707b2d4f608cab6798ec17a619.png

四 Unity游戏和Android原生项目交互

4.1  有时候我们需要在另一个app里面启动一个unity游戏模块,这个时候就需要把unity导出项目为android的一个三方库,android集成这个unity库就可以跳转到游戏了。

4.2 在Build Setting里面勾选Export Project,看到底部的Build选项已经变为Export了,我们导出下

ea4e8b3531d04f29aa6a083f82553f78.png

4.3 我们导出下,会生成一个Gradle构建的android模块,这个做android项目的就比较熟了,导入AndroidStudio就可以运行了

a8fe0baf177a411f8fa1bd013f2249b1.png

4.4 打开AndroidStudio,选择打开该Unity项目

c275358f45df4db9a7a903b29f3d8105.png

4.5 可以看到UnityPlayerActivity就是游戏的入口,我们点击运行下

6d39a7520ad046f89b67c7f61a457c64.png

4.6 可以看到能够运行起来,结构也是支持32和64的,这时候就可以在任意一个其它页面跳转进来我们游戏页面了

29d13798f82146c29c1dac2c36df41d2.png

edfeaecfef664e1f953e1277a049162a.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15 - 多线程调优(上):哪些操作导致了上下文切换?

1、初识上下文切换 我们首先得明白,上下文切换到底是什么。 其实在单个处理器的时期,操作系统就能处理多线程并发任务。处理器给每个线程分配 CPU 时间片(Time Slice),线程在分配获得的时间片内执行任务。 CPU 时间…

【图解RabbitMQ-6】说说交换机在RabbitMQ中的四种类型以及使用场景

🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

自然语言处理: 第十二章LoRA解读

论文地址:[2106.09685] LoRA: Low-Rank Adaptation of Large Language Models (arxiv.org) 理论基础 自从GPT-3.5问世以来,整个AI界基本都走向了大模型时代,而这种拥有数亿参数的大模型对于普通玩家来说作全量微调基本是不可能的事。从而微软公司提出了…

指令延迟隐藏

一、指令延迟隐藏 1. 延迟和延迟隐藏 指令延迟指计算指令从调度到指令完成所需的时钟周期如果在每个时钟周期都有就绪的线程束可以被执行,此时GPU处于满符合状态指令延迟被GPU满负荷计算状态所掩盖的现象称为延迟隐藏延迟隐藏对GPU编程开发很重要,GPU设…

BeanFactory 和 FactoryBean傻傻分不清楚

🤵‍♂️ 个人主页:香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望…

HTTPS双向认证

双向认证,指的是客户端和服务器端都需要验证对方的身份,在建立HTTPS连接的过程中,握手的流程相对于单向认证多了几步。 单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。 双向通信…

java的数据类型与变量(超详细每个都有小结论,习题巩固)

【本文章的目标】 1.字面常量 2.数据类型 3.变量 文章最后有习题等来帮助巩固,加深印象,相信看完这篇文章,大家会有收获 1.字面常量 在上节课HelloWorld程序中,System.Out,println(Hello World"); 语句,不论…

算法[动态规划]---买卖股票最佳时机

1、题目: 给你一个整数数组 prices,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持一股股票。你也可以先购买,然后在同一天出售。 返回你能获得的最大利润 。 2…

PLSQL

文章目录 基本pl/sql语法流程控制条件判断(两种)循环结构(三种)goto,exit关键字 游标的使用异常的处理存储过程(无返回值),存储函数(有返回值)触发器 命令行窗…

苹果手机远程控制安卓手机,为什么不能发起控制?

这位用户想要用iOS设备远程控制安卓设备,在被控端安装好AirDroid之后,就在控制端的苹果手机上也安装了AirDroid,然而打开控制端的软件,却没有在手机界面上看到【远程控制】按钮,于是提出了以上疑问。 解答 想要让iOS设…

A,B,C , D, E类地址的划分及子网划分汇总的详解

一、 A类地址 (1)A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0. (2)A类地址范围:1.0.0.1—126.255.255.254 (3)A类地址中的私有地址和保留地…

苹果电脑快捷键集合

苹果电脑Windows系统下的ALT键是组合键。苹果电脑键盘左下角的Fnoption是Windows的alt键。同时按下两个键是ALT键的功能。在非组合状态下,单独按Option键。 补充: 1. 按controlalt(选项)delete 启动任务管理器。 2. Option-Del…

nrf52832 使用ADC点LED

#define SAMPLES_IN_BUFFER 5 volatile uint8_t state 1;/*** brief UART events handler.*/void saadc_callback(nrf_drv_saadc_evt_t const * p_event) { // }//saadc的初始化 void saadc_init(void) {ret_code_t err_code;nrf_saadc_channel_config_t channel_config NR…

C#,数值计算——柯西微分(Cauchy deviates)的计算方法与源代码

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Cauchy deviates /// </summary> public class Cauchydev : Ran { private double mu { get; set; } private double sig { get; set; } public…

C++ -- 学习系列 static 关键字的使用

static 是 C 中常用的关键字&#xff0c;被 static 修饰的变量只会在 静态存储区&#xff08;常量数据也存放在这里&#xff09; 被分配一次内存&#xff0c;生命周期与整个程序一样&#xff0c;随着程序的消亡而消亡。 一 static 有以下几种用法&#xff1a; 1. 在文件中定义…

管理类联考——数学——汇总篇——知识点突破——应用题——交叉比例法/杠杆原理

读书笔记 甲有&#xff1a;x个a&#xff0c;乙有&#xff1a;y个b&#xff0c;甲乙的平均值为c&#xff0c;根据总数相等&#xff0c;得&#xff1a;axbyc(xy)&#xff0c;即ax-cxcy-by&#xff0c;则 x y c − b a − c \frac{x}{y}\frac{c-b}{a-c} yx​a−cc−b​ &#…

【Vue2.0源码学习】生命周期篇-初始化阶段(initState)

文章目录 1. 前言2. initState函数分析3. 初始化props3.1 规范化数据3.2 initProps函数分析3.3 validateProp函数分析3.4 getPropDefaultValue函数分析3.5 assertProp函数分析 4. 初始化methods5. 初始化data6. 初始化computed6.1 回顾用法6.2 initComputed函数分析6.3 defineC…

rv1126之isp黑电平(BLC)校准!

前言&#xff1a; 大家好&#xff0c;今天我们继续来讲解isp第二期内容&#xff0c;这期内容主要分三个部分&#xff1a; 1、tunning的工作流程 2、利用RKISP2.x_Tuner来创建tunning工程&#xff0c;并连接上rv1126开发板进行抓图 3、BLC(黑电平校准)的原理和校准方法以及实战…

UE4(Unreal Engine 4)运行setup.bat发生403报错的问题

最近UE官方在迁移服务器&#xff0c;有些D:\UE4\Engine\Build\Commit.gitdeps.xml文件需要更新。此时需要你去往UE对应的版本下载新的Commit.gitdeps.xml文件&#xff0c;并且覆盖原有的Commit.gitdeps.xml文件。UE的官方说明 覆盖前 覆盖后

Tomcat多实例与负载均衡

Tomcat多实例与负载均衡 一、Tomcat多实例1.1、安装JDK1.2、安装tomcat1.3、配置tomcat环境变量1.4、修改tomcat中的主配置文件1.5、修改启动脚本和关闭脚本1.6、 启动tomcat并查看 二、NginxTomcat负载均衡、动静分离2.1、部署Nginx负载均衡2.2、部署第一台tomcat2.3、部署第二…