unity3d 獲取內存 android Used PssMemory
廢話不多直接上代碼
public static int GetUsedPssMemory()
{
int memory = -1;
#if (UNITY_ANDROID && !UNITY_EDITOR) || ANDROID_CODE_VIEW
try
{
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using (AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
{
using (AndroidJavaObject curApplication = currentActivity.Call<AndroidJavaObject>("getApplication"))
{
using (AndroidJavaObject am = curApplication.Call<AndroidJavaObject>("getSystemService", "activity"))
{
using (AndroidJavaObject pro = new AndroidJavaClass("android.os.Process"))
{
int pid = pro.CallStatic<int>("myPid");
var infos = am.Call<AndroidJavaObject[]>("getProcessMemoryInfo", new int[] { pid });
AndroidJavaObject info = infos[0];
int totalPss = info.Call<int>("getTotalPss");
memory = totalPss / 1024;
}
}
}
}
}
}
catch (Exception e)
{
}
#elif (UNITY_IOS && !UNITY_EDITOR) || IOS_CODE_VIEW
memory = 0;
#endif
return memory;
}```