Unity3D 调用Android原生方法2
2016-11-11 16:51
501 查看
|
记一次Unity通过Android系统函数获取内存信息的过程,感谢河马爸爸指导。
Unity原生方法没有获取当前可用内存的方法,系统内存信息android底层肯定有方法获取,于是我搜到了这篇文章(http://blog.csdn.net/sxwyf248/article/details/5981251)提取文章中我主要想要的内容,自己新建了Android工程(为了获取代码中类所在的库和枚举值或常量值)如下:
//获取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";
至此,通过Android原生方法获取内存信息的所有数据我们已经掌握了。
Unity内新建一个C#类,翻译上面的方法,如下:
//获取剩余内存 long getAvailMemory() { AndroidJavaObject am = Current().Call<AndroidJavaObject>("getSystemService", "activity"); AndroidJavaObject mi = new AndroidJavaObject("android.app.ActivityManager$MemoryInfo"); am.Call("getMemoryInfo", mi); return mi.Get<long>("availMem");// 将获取的内存大小规格化 }知识点1:AndroidJavaObject可以当成任何java类使用,不用考虑引用。
知识点2:类中类用$,如例("android.app.ActivityManager$MemoryInfo",在java中对应的是android.app.ActivityManager.MemoryInfo。MemoryInfo是ActivityManager类文件中的类中类)
知识点3:属性直接用Get<T>(“属性名”);获取。
送佛送到西~
额外功能:
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; }
相关文章推荐
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- android调用原生图片裁剪后图片尺寸缩放的解决方法
- Unity3D调用android方法(非插件方式)
- react-native调用Android的原生方法
- JS怎样调用Android本地原生方法
- Unity调用原生(iOS, Android)方法
- 通过js调用android原生方法
- ReactNative(嵌入到android)调用android原生组件与原生模块(比如某个方法)
- 23、JS调用Android原生代码方法
- Unity中调用Android原生方法
- RN调用原生方法基础---android(原生吐司为例)
- 三步搞定:Vue.js调用Android原生方法
- 如何在Unity3d中调用android的方法
- Unity3D 调用 Android jar 包制作方法
- js调用android原生方法,简单明了。
- 通过js调用android原生方法
- 通过js调用android原生方法