• 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包

    1. $ adb shell dumpsys package xx.xx.xx | findstr flags
    2. 查看apk是否release版本xx.xx.xx为包名
    3. 命令执行成功时,返回flags:
    4. flags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]
    5. 代表该APK为debug版本
    6. flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]
    7. 代表该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

  • 相关阅读:
    高频知识汇总 |【计算机网络】面试题汇总(万字长文通俗易懂)
    【数字IC验证快速入门】4、熟悉数字IC验证中常用的Linux基本操作
    常用的软件配置管理工具
    嵌入式实时操作系统的设计与开发(内存资源池存储管理)
    java基于微信小程序的电影院购票选座 uniapp 小程序
    磁盘有空间但无法创建文件
    【Vue】npm install 命令
    mysql建表考虑那些,怎么建
    JMeter 源码解读 - HashTree
    【22年11月12日更新】搭建宝塔面板、青龙面板“京东代挂”
  • 原文地址:https://blog.csdn.net/qq_29848853/article/details/132788896