android调试:代码中打印内存信息

一、Debug和ActivityManager的相关方法:

 public void printMemoryInfo() {
        String tag = "APPActivity";
        final ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

        ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();

        activityManager.getMemoryInfo(info);

        Log.i(tag, "系统剩余内存:" + (info.availMem >> 10) + "k");
        Log.i(tag, "系统是否处于低内存运行:" + info.lowMemory);
        Log.i(tag, "当系统剩余内存低于" + (info.threshold >> 10) + "时就看成低内存运行");

        Log.i(tag, "NativeHeapSizeTotal:" + (Debug.getNativeHeapSize() >> 10));
        Log.i(tag, "NativeAllocatedHeapSize:" + (Debug.getNativeHeapAllocatedSize() >> 10));
        Log.i(tag, "NativeAllocatedFree:" + (Debug.getNativeHeapFreeSize() >> 10));
        
        Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
        Debug.getMemoryInfo(memoryInfo);
        
        Log.i(tag, "memoryInfo.dalvikPrivateDirty:" + (memoryInfo.dalvikPrivateDirty));
        Log.i(tag, "memoryInfo.dalvikPss:" + (memoryInfo.dalvikPss ));
        Log.i(tag, "memoryInfo.dalvikSharedDirty:" + (memoryInfo.dalvikSharedDirty ));
        Log.i(tag, "memoryInfo.nativePrivateDirty:" + (memoryInfo.nativePrivateDirty ));
        Log.i(tag, "memoryInfo.nativePss:" + (memoryInfo.nativePss ));
        Log.i(tag, "memoryInfo.nativeSharedDirty:" + (memoryInfo.nativeSharedDirty ));
        Log.i(tag, "memoryInfo.otherPrivateDirty:" + (memoryInfo.otherPrivateDirty));
        Log.i(tag, "memoryInfo.otherPss:" + (memoryInfo.otherPss ));
        Log.i(tag, "memoryInfo.otherSharedDirty:" + (memoryInfo.otherSharedDirty ));
        Log.i(tag, "memoryInfo.dumpsys:" + (dumpMemoryInfo() ));
    }

二、Root机器可以使用dumsys命令打印:

<uses-permission android:name="android.permission.DUMP"/>

    public String dumpMemoryInfo() {
        Process process;
        try {
            process = Runtime.getRuntime().exec("su -c dumpsys meminfo com.tutu.example");
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream()), 1024*4);
            String line;
            StringBuilder log = new StringBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                log.append(line);
                log.append("\n");
            }
            return log.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }

11-03 22:39:58.260: I/APPActivity(6802): 系统剩余内存:603160k
11-03 22:39:58.260: I/APPActivity(6802): 系统是否处于低内存运行:false
11-03 22:39:58.260: I/APPActivity(6802): 当系统剩余内存低于64时就看成低内存运行
11-03 22:39:58.260: I/APPActivity(6802): NativeHeapSizeTotal:5600
11-03 22:39:58.261: I/APPActivity(6802): NativeAllocatedHeapSize:5264
11-03 22:39:58.262: I/APPActivity(6802): NativeAllocatedFree:335
11-03 22:39:58.309: I/APPActivity(6802): memoryInfo.dalvikPrivateDirty:3208
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.dalvikPss:3688
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.dalvikSharedDirty:8124
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.nativePrivateDirty:0
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.nativePss:0
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.nativeSharedDirty:0
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.otherPrivateDirty:4796
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.otherPss:7015
11-03 22:39:58.310: I/APPActivity(6802): memoryInfo.otherSharedDirty:3888
11-03 22:39:58.582: I/APPActivity(6802): memoryInfo.dumpsys:Applications Memory Usage (kB):
11-03 22:39:58.582: I/APPActivity(6802): Uptime: 172051581 Realtime: 453230133
11-03 22:39:58.582: I/APPActivity(6802): ** MEMINFO in pid 6802 [com.tutu.example] **
11-03 22:39:58.582: I/APPActivity(6802):                          Shared  Private     Heap     Heap     Heap
11-03 22:39:58.582: I/APPActivity(6802):                    Pss    Dirty    Dirty     Size    Alloc     Free
11-03 22:39:58.582: I/APPActivity(6802):                 ------   ------   ------   ------   ------   ------
11-03 22:39:58.582: I/APPActivity(6802):        Native        0        0        0     5600     5264      335
11-03 22:39:58.582: I/APPActivity(6802):        Dalvik     3732     8124     3252     6320     6226       94
11-03 22:39:58.582: I/APPActivity(6802):        Cursor        0        0        0                           
11-03 22:39:58.582: I/APPActivity(6802):        Ashmem        0        0        0                           
11-03 22:39:58.582: I/APPActivity(6802):     Other dev        4       60        0                           
11-03 22:39:58.582: I/APPActivity(6802):      .so mmap     1284     2944     1000                           
11-03 22:39:58.582: I/APPActivity(6802):     .jar mmap        2        0        0                           
11-03 22:39:58.582: I/APPActivity(6802):     .apk mmap      532        0        0                           
11-03 22:39:58.582: I/APPActivity(6802):     .ttf mmap       49        0        0                           
11-03 22:39:58.582: I/APPActivity(6802):     .dex mmap     1074        0        4                           
11-03 22:39:58.582: I/APPActivity(6802):    Other mmap      407      332      140                           
11-03 22:39:58.582: I/APPActivity(6802):       Unknown     3667      552     3656                           
11-03 22:39:58.582: I/APPActivity(6802):         TOTAL    10751    12012     8052    11920    11490      429
11-03 22:39:58.582: I/APPActivity(6802):  
11-03 22:39:58.582: I/APPActivity(6802):  Objects
11-03 22:39:58.582: I/APPActivity(6802):                Views:       23         ViewRootImpl:        1
11-03 22:39:58.582: I/APPActivity(6802):          AppContexts:       14           Activities:        1
11-03 22:39:58.582: I/APPActivity(6802):               Assets:       14        AssetManagers:       14
11-03 22:39:58.582: I/APPActivity(6802):        Local Binders:        7        Proxy Binders:       25
11-03 22:39:58.582: I/APPActivity(6802):     Death Recipients:        0
11-03 22:39:58.582: I/APPActivity(6802):      OpenSSL Sockets:        0
11-03 22:39:58.582: I/APPActivity(6802):  
11-03 22:39:58.582: I/APPActivity(6802):  SQL
11-03 22:39:58.582: I/APPActivity(6802):          MEMORY_USED:        0
11-03 22:39:58.582: I/APPActivity(6802):   PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0
11-03 22:39:58.582: I/APPActivity(6802):  
11-03 22:39:58.582: I/APPActivity(6802): 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值