android调试:代码中打印内存信息
2014-11-03 22:50
411 查看
一、Debug和ActivityManager的相关方法:
二、Root机器可以使用dumsys命令打印:
<uses-permission android:name="android.permission.DUMP"/>
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):
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):
相关文章推荐
- 原创|Android逆向调试的打印调试信息定位代码位置的一个小技巧
- Android Jni中打印调试信息
- android手机调试时不能打印Logcat日志信息
- Android获取cpu和内存信息、网址的代码
- Android之JNI打印调试信息-LOG打印
- Qt打印调试信息输出到android logcat中
- Android 让adb logcat打印内核调试信息
- android手机调试时不能打印Logcat日志信息
- cocos2d-x在android下打印调试信息
- 【ANDROID】Logcat中添加自己调试代码信息
- android调试输出log打印信息到本地文件
- android 打印内存信息
- Android调试 LogCat中的消息一闪而过,根本看不到打印的信息.
- android手机调试时不能打印Logcat日志信息
- Android.mk 中打印调试信息
- Android 让adb logcat打印内核调试信息
- Android(Java):jni写文件打印调试信息
- android 解决华为系列手机调试时不能打印Logcat日志信息
- android 解决华为系列手机调试时不能打印Logcat日志信息
- Android代码中添加打印信息