今回も引き続き、
プロファイラーなどを使わずに手軽にメモリ使用量を画面内に表示したい!の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
コメント