获取手机内存\可用内存\单个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             BufferedReader localBufferedReader = new BufferedReader(
12                     localFileReader, 8192);
13             // 读取meminfo第一行,系统总内存大小
14             str2 = localBufferedReader.readLine();
15
16             arrayOfString = str2.split("\\s+");
17             for (String num : arrayOfString) {
18                 Log.i(str2, num + "\t");
19             }
20             // 获得系统总内存,单位是KB,乘以1024转换为Byte
21             initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;
22             localBufferedReader.close();
23         } catch (IOException e) {
24         }
25         // Byte转换为KB或者MB,内存大小规格化
26         return Formatter.formatFileSize(getBaseContext(), initial_memory);
27     }
1 /** 获取android当前可用内存大小 */
2     private String getAvailMemory() {
3         ActivityManager am = (ActivityManager) getSystemService(              Context.ACTIVITY_SERVICE);
4         MemoryInfo mi = new MemoryInfo();
5         am.getMemoryInfo(mi);
6         // mi.availMem; 当前系统的可用内存
7         // 将获取的内存大小规格化
8         return Formatter.formatFileSize(getBaseContext(), mi.availMem);
9     }
 1 /** Android获取应用所占内存大小 */
 2 private void getRunningAppProcessInfo() {
 3   ActivityManager mActivityManager = (ActivityManager) getSystemService(
 4       Context.ACTIVITY_SERVICE);
 5
 6    // 获得系统里正在运行的所有进程
 7    List<RunningAppProcessInfo> runningAppProcessesList = mActivityManager
 8         .getRunningAppProcesses();
 9
10    for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcessesList) {
11       // 进程ID号
12       int pid = runningAppProcessInfo.pid;
13       // 用户ID
14       int uid = runningAppProcessInfo.uid;
15       // 进程名
16       String processName = runningAppProcessInfo.processName;
17       // 占用的内存
18       int[] pids = new int[] { pid };
19       Debug.MemoryInfo[] memoryInfo = mActivityManager
20              .getProcessMemoryInfo(pids);
21       int memorySize = memoryInfo[0].dalvikPrivateDirty;
22
23       Log.i(TAG, "processName=" + processName + ",pid=" + pid + ",uid="
24             + uid + ",memorySize=" + memorySize + "kb");
25     }
26 }
 1 /**
 2   * 获取单个 app 内存限制大小
 3   * 返回以 M 为单位的数字,
 4   * 可能在不同的平台或者设备上值都不太一样
 5  */
 6  private void test01() {
 7    ActivityManager activityManager2 = (ActivityManager) getSystemService(
 8       Context.ACTIVITY_SERVICE);
 9    activityManager2.getMemoryClass();
10  }
时间: 2024-10-12 06:14:24

获取手机内存\可用内存\单个APP运行内存的相关文章

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 获取手机总内存和可用内存等信息

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

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

Android学习笔记-获取手机内存,SD卡存储空间。

前面介绍到如何保存数据到手机内存或者SD卡,但是问题是,在保存以前,我们还需要对他们的空间(可用空间),进行判断,才可以进行后续操作,所以,本节我们就介绍如何获取手机内存以及Sd卡的空间. //这时获取手机内存的 // File path = Environment.getDataDirectory(); //这时获取SD卡的空间 File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(pat

安卓获取可用内存的分析

通过阅读源码,得出在源码中计算可用内存的公式是: Free+Cached-SECONDARY_SERVER_MEM+mLastBackgroundProcessMemory 其中SECONDARY_SERVER_MEM为系统最低保持的内存,低于这个内存,系统就要开始杀后台进程:mLastBackgroundProcessMemory为非系统进程且在后台运行的进程所占用的内存: 同时在获取Free,Cached,total的方法也不一致,在4.2上是读取proc/meminfo中的参数,而在4.4

Android---35---openFileInput、openFileOutput获取手机内存中的数据

openFileOutput和openFileInput 获取手机内存中的文件而不是SD卡中的. Context提供了两个方法来打开本应用程序的数据文件夹里的文件I/O流. openFIleInput(String name):name文件对应的输入流 openFileOutput(String name,int mode):name文件对应的输出流 其中输出流中的第二个参数表示打开文件的模式,也可以称作权限: MODE_PRIVATE:该文件只能被当前程序读写 MODE_APPEND:以追加的

安卓获取手机内存,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

Android获取当前可用内存

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

【Anroid高级】查看手机及应用内存状况的方法

我 们知道,android程序内存一般限制在16M,当然也有24M的,而android程序内存被分为2部分:native和dalvik,dalvik 就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制. 1.单个app 内存限制大小 [java] view plaincopy ActivityManager activityManager = (ActivityManager) c