安卓获取可用内存的分析

通过阅读源码,得出在源码中计算可用内存的公式是:

Free+Cached-SECONDARY_SERVER_MEM+mLastBackgroundProcessMemory

其中SECONDARY_SERVER_MEM为系统最低保持的内存,低于这个内存,系统就要开始杀后台进程;mLastBackgroundProcessMemory为非系统进程且在后台运行的进程所占用的内存;

同时在获取Free,Cached,total的方法也不一致,在4.2上是读取proc/meminfo中的参数,而在4.4之后,则是通过Debug.getMemInfo来获取的。

时间: 2024-07-29 15:57:04

安卓获取可用内存的分析的相关文章

安卓获取手机内存,SD卡内存使用状态的方法

内存状态获取类: public class MemoryUtils { public static final int TotalMemory = 0; public static final int AvailableMemory = 1; public static final int freeMemory = 2; public static String GetMemoryinfo(Context context,File pathFile,int MemoryType) { StatF

安卓开发中内存问题分析(一)工具篇

内存泄漏和内存溢出是安卓开发中经常碰到的问题,如何能够快速有效的发现并追踪内存泄漏或者内存溢出的源头,是每个开发者都需要掌握的技巧,今天我给大家带来常见的内存分析工具使用方法,希望对大家今后的开发带来帮助. 使用Eclipse分析应用内存使用情况 具体步骤如下: 1.启动eclipse后,切换到DDMS透视图,并通过Window-ShowView打开Devices视图.Heap视图 2.连接手机或者模拟器后,在DDMS的Devices视图中将会显示手机设备或模拟器的序列号,以及设备中正在运行的部

Android 获取手机总内存和可用内存等信息

在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法可以获取当前的可用Memory量. "/proc/meminfo"文件记录了android手机的一些内存信息,在命令行窗口里输入"

获取手机内存\可用内存\单个APP运行内存

1 /** 手机总内存 */ 2 private String getTotalMemory() { 3 // 系统内存信息文件 4 String str1 = "/proc/meminfo"; 5 String str2; 6 String[] arrayOfString; 7 long initial_memory = 0; 8 9 try { 10 FileReader localFileReader = new FileReader(str1); 11 BufferedRead

iOS 获取 当前设备 可用内存 及当前 应用 所占内存

// 获取当前设备可用内存及所占内存的头文件 #import <sys/sysctl.h> #import <mach/mach.h> // 获取当前设备可用内存(单位:MB) - (double)availableMemory { vm_statistics_data_t vmStats; mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT; kern_return_t kernReturn = host_statistic

Android获取当前可用内存

写入本地文件 private void getMemo(){ //获得ActivityManager服务的对象 ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); //获得MemoryInfo对象 ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo() ; //获得系统

安卓获取软硬件信息并上传给server(Socket实现)

首先,项目结构如图--A:分为client部分CheckInfo和server端CheckInfo_Server.CheckInfo获取手机信息(Mac,Cpu,内存,已安装软件信息等)并上传到server端,然后从已安装软件信息中查找有没有安装某一款软件,没有则定位到该软件下载页面.CheckInfo_Server将上传的信息输出. 图--A AndroidManifest.xml: <? xml version="1.0" encoding="utf-8"

性能分析 | Linux 内存占用分析

这篇博客主要介绍 linux 环境下,查看内存占用的两种方式:使用 ps,top等命令:查看/proc/[pid]/下的文件.文章简要介绍了命令的使用方法与一些参数意义,同时对/proc/[pid]/下的文件内容进行了一些详细的介绍.文章内容来自google和自我总结,如有不当之处,欢迎批评指正. 查看Linux内存的方法 linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free, pmap 等,或者通过/proc系统.一般情况下,ps,top,pmap,free可以满足要求,

常见的内存问题分析思路

一 系统内存不足 Java 应用一般都有单机或者集群的内存水位监控,如果单机的内存利用率大于 95%,或者集群的内存利用率大于80%,就说明可能存在潜在的内存问题(注:这里的内存水位是系统内存). 除了一些较极端的情况,一般系统内存不足,大概率是由 Java 应用引起的.使用 top 命令时,我们可以看到 Java 应用进程的实际内存占用,其中 RES 表示进程的常驻内存使用,VIRT 表示进程的虚拟内存占用,内存大小的关系为:VIRT > RES > Java 应用实际使用的堆大小.除了堆内