原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术交流QQ群:【119706192】本文链接地址: Unity3D 调用Android原生方法2 |
//获取android当前可用内存大小
private String getAvailMemory()
{
android.app.ActivityManager am = (android.app.ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
android.app.ActivityManager.MemoryInfo mi = new android.app.ActivityManager.MemoryInfo();
am.getMemoryInfo(mi);
//mi.availMem; 当前系统的可用内存
return Formatter.formatFileSize(getBaseContext(), mi.availMem);// 将获取的内存大小规格化
}
Context.ACTIVITY_SERVICE
转到定义获得到常量值为:
// Field descriptor #37 Ljava/lang/String;
public static final java.lang.String ACTIVITY_SERVICE = "activity";
//获取剩余内存
long getAvailMemory()
{
AndroidJavaObject am = Current().Call("getSystemService", "activity");
AndroidJavaObject mi = new AndroidJavaObject("android.app.ActivityManager$MemoryInfo");
am.Call("getMemoryInfo", mi);
return mi.Get("availMem");// 将获取的内存大小规格化
}
知识点1:AndroidJavaObject可以当成任何java类使用,不用考虑引用。
String size2string(long size)
{
//DecimalFormat df = new DecimalFormat("0.00");
String mysize = "";
if (size > 1024 * 1024)
{
mysize = string.Format("{0:###.##}", size / 1024f / 1024f) + "M";
}
else if (size > 1024)
{
mysize = string.Format("{0:###.##}", size / 1024f) + "K";
}
else
{
mysize = size + "B";
}
return mysize;
}