获取各种内存的方法

1、获取内存使用率

public static double getMemoryUsageRate() {long runtimeMaxMemory = getRuntimeMaxMemory();if (runtimeMaxMemory == -1) {return 0;}double usedRate = 0;try {double usedMem = (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory());double maxMem = (double) runtimeMaxMemory;usedRate = usedMem / maxMem;} catch (Exception e) {e.printStackTrace();usedRate = 0;}return usedRate;
}private static long getRuntimeMaxMemory() {if (mMaxJavaMemory == -1) {try {Runtime rt = Runtime.getRuntime();mMaxJavaMemory = rt.maxMemory();} catch (Exception e) {}}return mMaxJavaMemory;
}

2、获取Native内存使用大小

public static long getUsedJavaMemorySizeInByte() {return Debug.getNativeHeapAllocatedSize();
}

3、获取虚拟内存使用大小

private static long getUsedVmSize() {String status = String.format("/proc/%s/status", android.os.Process.myPid());try {String content = getStringFromFile(status).trim();String[] args = content.split("\n");for (String arg : args) {if (arg.startsWith("VmSize")) {Pattern pattern = Pattern.compile("\\d+");Matcher matcher = pattern.matcher(arg);if (matcher.find()) {return Long.parseLong(matcher.group());}}}if (args.length > 12) {Pattern pattern = Pattern.compile("\\d+");Matcher matcher = pattern.matcher(args[12]);if (matcher.find()) {return Long.parseLong(matcher.group());}}} catch (Throwable e) {return -1;}return -1;
}private static String getStringFromFile(String filePath) throws Exception {File file = new File(filePath);StringBuilder sb = new StringBuilder();try (FileInputStream inputStream = new FileInputStream(file);BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {String line;while ((line = reader.readLine()) != null) {sb.append(line).append("\n");}}return sb.toString();
}

android开发获取内存、Native内存和虚拟内存的方式相关推荐

  1. Android开发中常见的内存泄露案例以及解决方法总结

    Android开发中常见的内存泄露案例以及解决方法总结 参考文章: (1)Android开发中常见的内存泄露案例以及解决方法总结 (2)https://www.cnblogs.com/shen-hua ...

  2. android 获取加速度传感器值,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  3. android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  4. 【Android开发学习笔记之一】5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

  5. Android平台上的Native内存分析

    文章目录 背景 UE4的内存统计 memreport MemoryProfiler2 LLM Android进程内存 DDMSMemoryAnalyzer 背景 UE4游戏在Android上的进程内存 ...

  6. android开发获取手机,通过ADB获取Android手机信息,获取手机信息

    通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...

  7. android开发获取应用本身耗电量_别找了,Android常用自动化工具全在这儿了!

    Android常用自动化工具 ADB - 是Google提供的为Android编写UI测试用例的自动化工具, Android开发/测试人员不可替代的强大工具 uiautomator - 是Google ...

  8. Android开发获取当前经纬度和详细位置信息(原生代码实现)简单案例

    文章目录 Android定位(经纬度+当前位置信息) 申请权限 LocationManage位置管理器 完整代码 Android定位(经纬度+当前位置信息) 我相信大家在Android开发中应该都有遇 ...

  9. android开发获取imei码,Android中获取IMEI码的方法

    我们在开发项目的时候,通常要获取手机的IMEI码,这是开发的必备需求,接下来,爱站技术频道小编就告诉大家Android中获取IMEI码的方法,希望本文的介绍能提高大家的水平. 核心代码:Imei = ...

最新文章

  1. centos7grub2 引导win10
  2. 机器学习中的优化方法小结
  3. 拦截器获取不到sesssion作用域的值_ES6--块级作用域
  4. arcgis api for flex 开发入门(二)map 的创建
  5. 微信公众平台开发:进阶篇(Web App开发入门)
  6. 机器学习-损失函数 (转)
  7. wsl安装配置vscode(亲测有用)
  8. 蓝牙的发展史及版本演进
  9. 51nod1600-Simple KMP【SAM,树链剖分】
  10. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
  11. Python进阶之“属性(property)”详解
  12. php xml 返回 微信,php版微信返回用户text输入的方法
  13. 第五章:关于ESearch的应用
  14. 《SAP入门经典(第4版•修订版)》——3.2 SAP硬件基础知识
  15. composer 的快速安装
  16. What is DevOps?
  17. Winform实现简单的记住用户名密码功能
  18. 基于Hadoop 的分布式网络爬虫技术学习笔记
  19. ps 自动生成html代码,ps怎么生成html网页文件 PS生成html网页文件的具体教程
  20. 从西天取经的九九八十一难来看Java设计模式:模板方法模式

热门文章

  1. 链表-检查链表长度是奇数还是偶数
  2. 【机器学习】之第十三章——半监督学习
  3. 智能小车一《arduino是什么》
  4. 识别表格变成电子版的软件有什么?这些识别软件分享给你
  5. MFC控件使用说明书
  6. 看雪学院-OllyDBG入门系列(三)笔记
  7. ADAMS启动时出现MSC_LICENSE_FILE=27500
  8. Si24R2F+ 2.4GHz超低功耗有源RFID无线发射芯片 畜牧业标签、智能冷链物流、资产管理
  9. Educational Codeforces Round 133 (Rated for Div. 2)
  10. CPU卡程序设计实例(十二)ESAM模块字节接收函数