unity3d 獲取內存 android Used PssMemory

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;
    }```

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章