Android开发学习笔记之 获得Android 可使用内存

举报
再见孙悟空_ 发表于 2022/01/13 23:15:38 2022/01/13
【摘要】 好多Android 开发者在开发过程中经常可以碰到 oom(内存溢出)问题,尤其是在 图片操作比较多的情况下,如果没有优化好,经常会碰到这个问题。这个时候都会想到  获得手机的总内存有多少 和  可使用内存有多少!下面给大家提供这两个方法分别获得 可用内存 和 Android总内存!话不多说 上代码!  ...

好多Android 开发者在开发过程中经常可以碰到 oom(内存溢出)问题,尤其是在 图片操作比较多的情况下,如果没有优化好,经常会碰到这个问题。这个时候都会想到  获得手机的总内存有多少 和  可使用内存有多少!下面给大家提供这两个方法分别获得 可用内存 和 Android总内存!话不多说 上代码!

  


  
  1. // 获得可用的内存
  2. public class memInfo {
  3. public static long getmem_UNUSED(Context mContext) {
  4. long MEM_UNUSED;
  5. // 得到ActivityManager
  6. ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
  7. // 创建ActivityManager.MemoryInfo对象
  8. ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
  9. am.getMemoryInfo(mi);
  10. // 取得剩余的内存空间
  11. MEM_UNUSED = mi.availMem / 1024;
  12. return MEM_UNUSED;
  13. }
  14. // 获得总内存
  15. public static long getmem_TOLAL() {
  16. long mTotal;
  17. // /proc/meminfo读出的内核信息进行解释
  18. String path = "/proc/meminfo";
  19. String content = null;
  20. BufferedReader br = null;
  21. try {
  22. br = new BufferedReader(new FileReader(path), 8);
  23. String line;
  24. if ((line = br.readLine()) != null) {
  25. content = line;
  26. }
  27. } catch (FileNotFoundException e) {
  28. e.printStackTrace();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. } finally {
  32. if (br != null) {
  33. try {
  34. br.close();
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. }
  40. // beginIndex
  41. int begin = content.indexOf(':');
  42. // endIndex
  43. int end = content.indexOf('k');
  44. // 截取字符串信息
  45. content = content.substring(begin + 1, end).trim();
  46. mTotal = Integer.parseInt(content);
  47. return mTotal;
  48. }
  49. }

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/44749461

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。