本指南介绍如何使用Unity的内存建议插件将内存建议API集成到您的Unity游戏中。
要求
该插件支持以下版本:
Unity 2019 + Android NDK r19
Unity 2020 + Android NDK r19
Unity 2021 + Android NDK r21
Unity 2022 + Android NDK r23
如果您使用的是其他版本的Unity和Android NDK,可能会遇到意外问题。要查找Unity安装程序使用的NDK版本,请参阅Unity的Android环境设置指南。
下载插件
下载插件。
导入插件
该插件是一个Unity Package,您可以将其导入到您的项目中。要导入插件,请单击**资源>导入程序包>自定义程序包**,然后选择您下载的.unitypackage
文件。您也可以在打开Unity项目后双击.unitypackage
文件。
使用库
本节介绍如何使用库。
初始化库
应用启动时需要初始化一次库。为此,请将此代码添加到您的项目中
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
轮询内存状态
您可以通过以您选择的间隔轮询库来检索应用的内存状态。每当您需要轮询库时,请使用MemoryAdvice_getMemoryState函数
MemoryState memoryState = MemoryAdvice.GetMemoryState();
switch (memoryState)
{
case MemoryState.Ok:
//The application can safely allocate memory.
break;
case MemoryState.ApproachingLimit:
// The application should minimize memory allocation.
break;
case MemoryState.Critical:
// The application should free memory as soon as possible
// until the memory state changes.
break;
}
设置监视器
您还可以设置监视器并注册内存建议API,当状态接近限制或临界内存状态时(但不是对于正常状态),您的监视器函数将被调用。例如,以下代码创建一个监视器并每2秒请求一次内存建议API通知
MemoryAdviceErrorCode errorCode = MemoryAdvice.RegisterWatcher(2000,
new MemoryWatcherDelegateListener((MemoryState state) =>
{
switch (memoryState)
{
case MemoryState.ApproachingLimit:
// The application should minimize memory allocation.
break;
case MemoryState.Critical:
// The application should free memory as soon as possible
// until the memory state changes.
break;
}
})
);
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory Advice watcher registered successfully");
}
后续步骤
您可以下载我们的Unity示例项目,该项目提供了一个简单的UI用于分配和释放内存,并使用内存建议API监控内存状态。