【Unity】実機上(ゲーム内)でメモリ使用量を表示してみる 〜Android編〜

Android

今回も引き続き、
プロファイラーなどを使わずに手軽にメモリ使用量を画面内に表示したい!のAndroid版を実装したいと思います。

※前回の序章&iOS編はこちら

Androidでの表示方法

ネイティブファイル(単位はKByteです)を用意し、こちらのファイルをPluginsフォルダ配下に置いて、Unity側から呼びましょう。
前回同様uGUIのTextに表示する場合以下のような感じになります。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Runtime.InteropServices;

public class UIViewUsedMemory : MonoBehaviour {

	[SerializeField] Text memoryText;

	void Update () {
		float m = 0;
#if UNITY_EDITOR
		m = ( System.GC.GetTotalMemory(false) + Profiler.usedHeapSize ) / 1024f;
#elif UNITY_ANDROID
		using ( AndroidJavaClass plugin = new AndroidJavaClass("com.veniegames.memorychecker.Main")){
			m = plugin.CallStatic("getUsedMemorySize");
		}
#endif
		memoryText.text = m + "KB  " +  (m/1024f) + "MB";
	}
}

こちらでアプリの使用メモリが表示できるようになりました。

Androidのメモリの仕組みは若干複雑(専有や共有メモリがそれぞれJava,Nativeとある)
今回は、専有、共有含めたアプリが使っているメモリ総量を出すようにしました。

GitHub

ネイティブプラグイン含めてGitHubにアップいたしました。
https://github.com/VENIEGAMES/MemoryChecker-Unity

コメント

タイトルとURLをコピーしました