Unity3D 调用Android原生方法2
来源:互联网 发布:手机英语新闻软件 编辑:程序博客网 时间:2024/06/05 16:46
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术交流QQ群:【119706192】本文链接地址: Unity3D 调用Android原生方法2
记一次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; }
0 0
- Unity3D 调用Android原生方法2
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- ReactNative调用Android原生方法
- Unity3d调用android中的方法
- Unity中调用Android原生方法
- js调用android原生方法,简单明了。
- JS怎样调用Android本地原生方法
- 通过js调用android原生方法
- 23、JS调用Android原生代码方法
- react-native调用Android的原生方法
- js调用ios原生多种写法参考及js调用android原生方法参考
- Unity3D-调用IOS原生分享的实现
- android 调用原生相机
- ReactNative(嵌入到android)调用android原生组件与原生模块(比如某个方法)
- WebView原生方法---使用javascript调用android代码
- 10 条提升 Android 性能的建议
- 什么是Hibernate框架以及ORM
- ExtJs控件属性配置详细
- shapefile与字符集编码设置
- Chain of Responsibility模式
- Unity3D 调用Android原生方法2
- java猜数字小游戏:任意输入数字,判断与系统随机产生数字是否相等。
- 【框架】屏幕适配Autolayout的运用
- gdb的基本使用命令清单
- 理解伪元素 :before 和 :after
- IO模型的简单记录select、poll、epoll
- C/C++引用与指针
- test
- 去掉listview点击背景,及item点击事件被抢