Unity之Android项目的打包

一 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

猜你喜欢

转载自blog.csdn.net/qq_29848853/article/details/132788896