`
dengzhangtao
  • 浏览: 677414 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android系统开发之内存可用空间计算

阅读更多
android里,activity后台运行是可以被系统关闭的,当空间不够时,所以计算可用空间
包括两正在运行的除了service的所有进程。 这句理解了 ,才看的懂下面的公式。

经过查看android4.0系统的管理应用程序的源码,获得。


思路:
可用空间 = 闲置空间 + 缓存 + 所有后台非service进程
代码:
//通过读/proc/meminfo得到内存总大小
memInfoReader = new MemInfoReader();
        memInfoReader.readMemInfo();
        mAm = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE);
        //
        ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
        mAm. getMemoryInfo(memInfo);
long lFree = memInfoReader.getFreeSize() +
+ memInfoReader.getCachedSize()
+ memInfo.hiddenAppThreshold;
        String free = Formatter.formatShortFileSize(getContext(), lFree);
        String uesd = Formatter.formatShortFileSize(getContext(),memInfoReader.getTotalSize()-lFree);

参考:
    ActivityManager.MemoryInfo: 系统可用内存信息
    ActivityManager.RecentTaskInfo: 最近的任务信息
    ActivityManager.RunningAppProcessInfo: 正在运行的进程信息
    ActivityManager.RunningServiceInfo: 正在运行的服务信息
    ActivityManager.RunningTaskInfo: 正在运行的任务信息

• VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
• RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
• PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
• USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
1
0
分享到:
评论

相关推荐

    android 获取手机内存及 内存可用空间的方法

    在Android开发中,获取设备的内存以及内存可用空间是相当重要的功能,这有助于开发者了解设备状态,优化应用性能,防止因内存不足导致的应用崩溃。本文将详细介绍如何在Android平台上获取手机内存的总大小以及可用...

    Unity调用Android查看内存信息2

    本文将深入探讨如何利用Unity调用Android原生API来查看内存信息,包括FPS(帧率)、系统总内存、系统可用内存以及Unity应用自身所占用的内存。这对于监控和优化游戏性能至关重要。 首先,我们关注的是"Unity调用...

    android低内存管理策略

    在Android开发和系统调试过程中,了解各个进程的内存占用情况至关重要,以下几种方法可以帮助开发者获取这些信息: ##### 4.1 TOP命令 TOP命令可以实时显示系统中所有进程的CPU和内存使用情况,是监控系统资源利用...

    Android开发之系统信息【1】——获取Android手机中SD卡存储信息

    在Android开发中,获取SD卡存储信息是相当重要的一个功能,尤其对于需要管理大量数据的应用来说。本篇文章将详细介绍如何在Android系统中获取SD卡的内存容量和剩余空间。 首先,为了能够访问SD卡,我们需要在...

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    Android开发实现的内存管理工具类

    这个工具类提供了几个关键方法,以便于检查Android设备的内部和外部存储的可用空间,以及判断系统是否处于低内存状态。 1. **内存管理的重要性** - 内存管理不当可能导致应用程序崩溃、性能下降或用户体验不佳。...

    Android解析如何获取SDCard 内存项目源代码

    在Android系统中,获取SDCard(外部存储)的内存信息是开发者经常遇到的任务,这有助于管理应用程序的存储需求,比如...同时,这个例子也展示了如何处理Android版本差异和权限管理,是提升Android开发技能的好材料。

    SDK配置方法/android开发环境搭建

    3. **硬盘空间**:至少需要5GB可用空间,以便安装所有必要的开发工具及SDK。 #### 四、必要开发工具 1. **JDK**:Windows环境下需要安装JDK 5或更高版本。Mac用户通常已经预装了JDK,而对于Linux用户,建议使用官方...

    查看手机内存状态和sdcard卡的内存状态

    在Android系统中,了解手机内存...了解和正确处理手机内存和SDCard的状态,是Android开发中不可或缺的一部分,有助于提升应用的稳定性和用户体验。通过合理的封装和设计,这些功能可以轻松集成到任何Android项目中。

    Android获取系统储存以及内存信息的方法(二)

    在Android开发中,获取系统储存和内存信息是十分常见的需求,这有助于监控设备状态和优化应用性能。本文将深入探讨如何在Android系统中获取这些信息。 首先,Android提供了多种方式来获取储存和内存信息,包括使用...

    02搭建Android开发环境.pptx

    对于Android开发,硬件配置是关键,因为开发过程中可能会频繁使用到Android模拟器,这需要CPU和内存资源充足。一般来说,至少需要一个中等配置的计算机,内存建议在4GB以上,硬盘预留3.5GB的空间用于下载Android SDK...

    android读取系统信息

    在Android系统中,获取设备的各种信息是开发过程中常见的需求,如内存信息、CPU状态、SD卡容量、电池状态以及系统版本等。以下将详细介绍如何在Android中读取这些系统信息。 1. **内存(RAM)信息获取**: Android...

    如何搭建Android开发环境.pptx

    搭建Android开发环境是每个Android开发者入门的必经之路。在这个过程中,主要涉及以下几个步骤和知识点: 1. **系统需求**: - 硬件:CPU性能和内存大小对开发效率有很大影响,因为Android模拟器运行时需要大量...

    Android如何获取SDCard_内存

    在Android开发中,了解外部存储(如SD卡)的状态及空间使用情况对于许多应用程序来说至关重要。例如,当应用需要存储大量数据时,确保有足够的可用空间可以避免运行时错误或者用户数据丢失等问题。本文将详细介绍...

    Android开发环境搭建(Eclipse4.2)

    通过以上步骤,你已经成功地使用Eclipse 4.2搭建了Android开发环境,现在可以开始你的Android编程之旅了。在开发过程中,可能会遇到各种问题,但只要熟悉Eclipse和Android SDK的使用,就能逐步解决。记得随时查看...

Global site tag (gtag.js) - Google Analytics