8.OtherSettings-Configuration 其他设置-配置

  1. 8.Unity打包安卓-设置相关-OtherSettings-配置
    1. 8.1 知识点
      1. Scripting Backend 脚本后端(重要)
        1. Mono(重要)
        2. IL2CPP(重要)
      2. Api Compatibility Level API兼容性级别(重要)
        1. .Net Standard 2.1(重要)
        2. .Net Framework(重要)
      3. C++ Compiler Configuration C++编译器配置(重要)
        1. Debug(调试模式)(重要)
        2. Release(发布模式)(重要)
        3. Master(大师模式)(重要)
      4. Use incremental GC 使用增量GC(重要)
      5. Assembly Version Validation 程序集版本验证
      6. Mute Other Audio Sources 将其它音频源静音(重要)
      7. Target Architectures 目标体系结构
      8. Split APKs by target architecture 按目标架构拆分APK(实验性功能)
      9. Target Devices 目标设备
        1. All Devices(所有设备)
        2. Phones,Tablets,and TV Devices Only(手机、平板、电视设备)
        3. Chrome OS Devices Only(Chrome OS设备)
      10. Install Location 安装位置(重要)
        1. Automatic(自动)(重要)
        2. Prefer External(首选外部)(重要)
        3. Force Internal(强制内部)(重要)
      11. Internet Access 互联网接入(重要)
        1. Auto(重要)
        2. Require
      12. Write Permission 写入权限(重要)
        1. Internal(内部)(重要)
        2. External(外置SD卡)(重要)
      13. Filter Touches When Obscured 遮挡时过滤触摸
      14. Sustained Performance Mode 持续性能模式
      15. Low Accuracy Location 低精度定位
      16. Chrome OS Input Emulation Chrome OS输入仿真
      17. Android TV Compatibility 安卓电视兼容性
        1. Android Game
        2. Android Gamepad Support Level 安卓游戏输入板支持等级
      18. Warn about App Bundle size 警告应用程序包的大小
      19. Active Input Handling 活动输入处理(重要)

8.Unity打包安卓-设置相关-OtherSettings-配置


8.1 知识点

Scripting Backend 脚本后端(重要)

脚本后端决定Unity如何在项目中编译和执行C#代码。

Mono(重要)

将C#编译为.Net公共中间语言CIL,并使用公共语言运行时执行中间语言。

IL2CPP(重要)

将C#编译为CIL,再将CIL转换为C++,再将C++编译为本机代码。

Mono和IL2CPP的具体区别在 Unity进阶之C#知识补充中有讲解。

Api Compatibility Level API兼容性级别(重要)

API兼容性级别决定可以在项目中使用的.Net API。该设置会影响代码和第三方库的兼容性。

.Net Standard 2.1(重要)

和.Net Standard 2.1兼容,生成较小的版本,具有完整的跨平台支持。

.Net Framework(重要)

和.Net Framework兼容(包含.Net Standard 2.1中的所有的内容),包含更多的API支持,但是会生成更大的包。

如果在使用C#的一些高级功能时遇到报错或无法使用,可以尝试切换到.Net Framework以便支持这些高级功能的使用,如果有替代方案,建议使用替代方案,尽量使用.Net Standard 2.1可以让包体更小。

C++ Compiler Configuration C++编译器配置(重要)

C++编译器配置只有将Scripting Backend设置为IL2CPP,才能使用该选项。

Debug(调试模式)(重要)

将关闭所有优化,让代码生成速度更快,但运行速度较慢,可以在这种模式下进行调试。

Release(发布模式)(重要)

会对代码进行优化,编译后的代码运行会更快,二进制文件大小更小,但编译时间更长。

Master(大师模式)(重要)

可实现所有可能的优化,从而压缩每一点可能的优化,发布时间比发布模式还要长,如果接受较长的发布时间,建议在发布最终版本时使用Master模式。

Use incremental GC 使用增量GC(重要)

启用后可以使用增量垃圾回收器,它会将GC分散到多个帧上执行,可以降低在一帧中进行GC造成的卡顿。

Assembly Version Validation 程序集版本验证

Mono是否验证强名称程序集中的类型。

强名称程序集,是对程序集进行强命名,为程序集创建唯一标识,可以防止程序集冲突。

Mute Other Audio Sources 将其它音频源静音(重要)

如果希望在运行Unity应用程序时停止在后台运行的应用程序中的音频,可以启用该选项,否则后台音频将和Unity中的音频一起播放。

Target Architectures 目标体系结构

允许应用程序运行的CPU。

64位环境中运行安卓应用具有性能优势。

64位应用可以处理超过4GB的内存空间。

Mono模式只能选择ARMv7。

IL2CPP模式可以选择更多的模式。

ARM就是一种微处理器硬件。

Chrome OS是一款Google开发的基于PC的操作系统。

可勾选的体系结构:

  • ARMv7 32位的ARM
  • ARM64 64位的ARM
  • x86(Chrome OS) 32位
  • x86-64(Chrome OS) 64位

Split APKs by target architecture 按目标架构拆分APK(实验性功能)

启用后,可以为目标体系结构中选择的每个CPU架构创建单独的APK,这样在Google Play中为用户提供下载时,它会根据设备的情况下载对应版本的APK,可以让apk更小,用户下载更小的包。但是主要是针对Google Play,因此面向国内的产品几乎不会使用。

Target Devices 目标设备

执行允许运行APK的目标设备。

All Devices(所有设备)

允许apk在所有Android和Chrome OS设备上运行。

Phones,Tablets,and TV Devices Only(手机、平板、电视设备)

允许apk在Android手机和平板电脑、电视上运行,但是不能在Chrome OS设备上运行。

Chrome OS Devices Only(Chrome OS设备)

允许apk在Chrome OS设备上运行,但是不能在Android手机、平板、电视上运行。

Install Location 安装位置(重要)

指定设备上的应用程序安装位置。

Automatic(自动)(重要)

自动让操作系统决定,用户可以自己移动安装位置。

Prefer External(首选外部)(重要)

将应用程序安装到外部存储中(SD卡),如果不能,应用程序安装到手机存储空间中。

Force Internal(强制内部)(重要)

将应用程序安装到手机存储空间中,用户无法将应用程序移动到外部存储中安装。

Internet Access 互联网接入(重要)

选择是否始终将网络权限添加到Android清单(即使你没有使用任何网路API)。

Auto(重要)

仅当使用了网络API时才会添加互联网访问权限。

Require

使用添加互联网访问权限。

Write Permission 写入权限(重要)

是否启用对外部存储(SD卡)的写入访问权限,并向Android应用清单添加相应的权限。

Internal(内部)(重要)

仅授予对内部存储的写入权限。

External(外置SD卡)(重要)

启用对外部存储的写入权限。

Filter Touches When Obscured 遮挡时过滤触摸

启用后可以丢弃在另一个可见窗口覆盖Unity应

用程序时收到的触摸(触屏事件),可以防止窃听劫持。

Sustained Performance Mode 持续性能模式

启用此选项可在较长的时间段内设置可预测且一致的设备性能级别,而无需进行热限制。启用此设置时,整体性能可能会降低。

Low Accuracy Location 低精度定位

启用后可改为低精度值与Android位置API配合使用。

Chrome OS Input Emulation Chrome OS输入仿真

Chrome OS操作系统的默认行为是将鼠标和触摸板输入事件转为触屏输入事件。取消可禁用这个默认行为。

Android TV Compatibility 安卓电视兼容性

启用后应用程序标记为兼容Android TV。

Android Game

启用后可将输出的apk标记为游戏而不是常规应用。

Android Gamepad Support Level 安卓游戏输入板支持等级

可以选择玩游戏时支持的输入方式。

Warn about App Bundle size 警告应用程序包的大小

只有在Build Settings中勾选了Build App Bundle(Google Play)才有用。当应用程序包大小超过这个阈值时会收到警告。

Active Input Handling 活动输入处理(重要)

选择要如何处理来自用户的输入。

  • Input Manager:老的输入系统,Input相关。
  • Input System Package:新输入系统。
  • Both:同时使用。在Unity进阶之InputSystem中进行了详细讲解。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏