关注

Unity2021.3.15适配16kb对齐

当前Unity版本

Unity2021.3.15f1

需要处理的不满足对齐的文件

libil2cpp.so

libunity.so

libmain.so

处理libil2cpp.so

libil2cpp.so是由Unity的IL2CPP脚本后端技术生成的​动态链接库,包含了游戏的逻辑代码。

可以通过编辑器脚本将链接参数传递给NDK,来保证libil2cpp.so满足16kb对齐。
需要设置的参数为-Wl,-z,max-page-size=16384-Wl,-z,common-page-size=16384

具体步骤如下:

  1. 创建编辑器脚本(在Editor目录中)。
  2. 脚本从IPreprocessBuildWithReport继承,通过PlayerSettings.SetAdditionalIl2CppArgs函数设置参数。
    using UnityEditor;
    using UnityEditor.Build;
    using UnityEditor.Build.Reporting;
    
    public class IL2CPPPageAlignmentSetter : IPreprocessBuildWithReport
    {
       public int callbackOrder { get { return 0; } }
    
       public void OnPreprocessBuild(BuildReport report)
       {
          if (report.summary.platform == BuildTarget.Android)
          {
                PlayerSettings.SetAdditionalIl2CppArgs("--linker-flags=\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\"");
          }
          else 
          {
                PlayerSettings.SetAdditionalIl2CppArgs("");
          }
          UnityEngine.Debug.Log("[IL2CPPPageAlignmentSetter]" + PlayerSettings.GetAdditionalIl2CppArgs());
       }
    }
    
  3. 脚本运行过一次后,设置的参数会保留在ProjectSettings.asset中,直到再次设置。

处理libunity.so

libunity.so是Unity的核心原生库,主要包含渲染、物理、音频、资源管理等底层引擎核心功能。

可以通过修改Unity的link.rsp来加入链接参数。

具体步骤如下:

  1. 找到不同架构下的link.rsp

    link.rsp位于Unity安装目录下
    Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\StaticLibs中。

    根据架构放在不同的子文件夹中。
    link.rsp位置

  2. 在其中加入

    -Wl,-z,max-page-size=16384
    -Wl,-z,common-page-size=16384
    

    通过link.rsp设置参数

  3. 如果包含了多个架构,需要对每个架构的link.rsp单独修改。

处理libmain.so

libmain.so是Unity已经编译好的,无法通过链接参数修改。但是可以从高版本满足16kb对齐的的Unity中复制一个替换。

libmain.so位于Unity安装目录下Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Libs中。

根据架构放在不同的子文件夹中。替换时注意架构的对应。
libmain.so位置

参考资料

https://www.163.com/dy/article/KAIL7JMN0511L9VL.html

https://blog.csdn.net/weixin_55201233/article/details/149090402

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/h492899250/article/details/154127568

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--