再看开发过程中,经常要通过内存的使用量来优化程序。
查看应用程序的命令:adb shell procrank
显示如下:
PID Vss Rss Pss Uss cmdline
190 79560K 74736K 49624K 43604K system_server
14335 55776K 55740K 31308K 26676K com.android.launcher2
13074 47408K 47380K 24947K 22428K com.android.settings
7626 42060K 42028K 21312K 18432K com.android.systemui
13948 32992K 32944K 11687K 9800K android.process.acore
283 25516K 25476K 8136K 7148K com.android.phone
422 24560K 24524K 7338K 6292K com.android.inputmethod.pinyin
12871 25804K 25740K 6288K 4880K com.snda.tt
454 23672K 23616K 5735K 4544K com.google.process.gapps
14723 25744K 25684K 5706K 4100K com.rili.android.client
14844 23816K 23752K 4706K 3276K com.dopid.android
14601 23980K 23920K 4686K 3432K android.process.media
13060 22892K 22828K 4570K 3428K com.tencent.WBlog
13303 22876K 22820K 4013K 2852K com.android.vending
13396 21672K 21608K 3978K 2960K com.limitfan.gojuuon
93 4132K 4112K 3322K 3164K /system/bin/mediaserver
603 18732K 18668K 3274K 2476K com.mediatek.mdlogger
420 18676K 18616K 3033K 2220K com.mediatek.bluetooth
14734 21744K 21680K 3010K 1868K com.yingyonghui.market
14829 20792K 20728K 3002K 1924K com.uucun105286.android.cms
13323 20312K 20248K 2851K 1848K com.cootek.smartinputv5
92 20008K 19932K 2680K 1556K zygote
111 2008K 2004K 1438K 1396K /system/bin/drmserver
105 1852K 1848K 1355K 1324K /system/bin/em_svr
108 1512K 1504K 1100K 1080K /system/bin/mdpd
7696 816K 812K 501K 468K /system/bin/wpa_supplicant
167 780K 776K 429K 416K /system/bin/rild
96 560K 556K 237K 228K /system/bin/mtkbt
84 484K 480K 234K 224K /system/bin/vold
85 576K 572K 229K 216K /system/bin/netd
1 284K 284K 210K 172K /init
103 424K 420K 200K 196K /system/bin/mtk_agpsd
150 420K 416K 192K 188K /system/bin/gsm0710muxd
151 1036K 508K 181K 172K /system/bin/mdlogger
91 516K 512K 173K 164K /system/bin/dm_agent_binder
110 184K 184K 164K 164K /sbin/adbd
80 388K 384K 162K 156K /system/bin/aee_aed
106 496K 492K 161K 152K /system/bin/nvram_agent_binder
14682 416K 412K 141K 132K /system/bin/dhcpcd
14873 356K 348K 139K 132K /system/bin/sh
88 372K 368K 136K 128K /system/bin/hald
100 368K 364K 129K 124K /system/bin/installd
99 340K 336K 120K 116K /system/bin/atci
87 348K 344K 116K 112K /system/bin/mobile_log_d
64 152K 152K 114K 76K /sbin/ueventd
7689 340K 336K 110K 104K /system/bin/debuggerd
86 324K 320K 109K 104K /system/bin/netdiag
353 316K 312K 96K 92K /system/xbin/mnld
94 284K 276K 92K 88K /system/bin/dbus-daemon
146 272K 268K 92K 88K /system/bin/memsicd
97 368K 276K 87K 84K /system/bin/ccci_fsd
102 268K 260K 87K 84K /system/bin/keystore
14681 312K 304K 81K 72K /system/bin/logwrapper
83 256K 248K 75K 72K /system/bin/servicemanager
95 252K 244K 75K 72K /system/bin/6620_launcher
7694 272K 264K 73K 68K /system/bin/logwrapper
109 232K 224K 66K 64K /system/bin/sh
98 236K 228K 59K 56K /system/bin/ccci_mdinit
查看单个应用程序内存占用量的命令:adb shell dumpsys meminfo $包名 或者
$进程号 //当然你也可以adb shell进去后在输入余下部分。
显示如下:
Applications Memory Usage (kB):
Uptime: 70102403 Realtime: 104776333
** MEMINFO in pid 14335 [com.android.launcher2] **
native dalvik other total
size: 27576 8455 N/A 36031
allocated: 26850 5311 N/A 32161
free: 385 3144 N/A 3529
(Pss): 13830 1134 16034 30998
(shared dirty): 2980 1932 13776 18688
(priv dirty): 13736 184 12504 26424
Objects
Views: 0 ViewRoots: 0
AppContexts: 0 Activities: 0
Assets: 3 AssetManagers: 3
Local Binders: 162 Proxy Binders: 81
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 3063 MEMORY_USED: 3063
PAGECACHE_OVERFLOW: 2266 MALLOC_SIZE: 50
DATABASES
pgsz dbsz Lookaside(b) Dbname
1 2544 500 launcher.db
有了这些,调试应用程序的内存问题容易多了
相关推荐
在Unity中,我们可以通过Profiler的Memory部分查看应用的内存占用,但要获取更详细的内存使用情况,就需要借助之前提到的Android原生API。通过传递回来的内存信息,我们可以在Unity的UI上显示这些数据,帮助开发者...
本文将深入探讨如何在Unity中调用Android API来查看内存使用情况、系统内存状态以及FPS(帧率)信息,这些数据对于游戏性能优化至关重要。 首先,我们需要在Unity项目中创建一个Android插件。创建一个新的Java类,...
"UnityAndroid/iOS查看真机内存使用情况插件" 提供了一种方便的方式来监控和分析在真实设备上的内存消耗。以下是关于这个插件及其相关知识点的详细介绍: 1. **Unity引擎**:Unity是一款跨平台的游戏开发工具,支持...
Memory Profiler是Android Studio内置的一个强大工具,它允许开发者实时监控应用的内存使用情况。在Memory面板中,你可以开启或关闭内存监测,手动触发垃圾收集(GC),以及生成heap dump文件。通过分析heap dump,...
理解Android内存机制,掌握内存监控工具的使用,结合实际项目不断优化代码,是每个Android开发者必备的技能。定期进行内存分析,对应用进行压力测试,及时发现和修复问题,可以有效提升应用的质量和用户体验。
内存使用率的获取相对复杂,因为Android提供了多种方式来查看内存状态。`ActivityManager.MemoryInfo`类提供了关于设备内存的详细信息,包括总内存、可用内存、低内存状态等。通过`ActivityManager.getMemoryInfo()`...
在实际开发中,这些数据可以用于创建一个实时监控界面,显示设备的CPU使用率和内存使用情况。例如,可以每隔一段时间调用上述方法获取数据并更新UI。同时,也可以结合其他系统指标,如磁盘I/O、网络流量等,为用户...
内存dump的结果文件`tmp.txt`包含了设备内存的详细信息,包括但不限于进程状态、内存分配情况、堆信息等。开发者可以使用这些数据来分析应用的内存占用、查找内存泄漏、或者比较不同运行时刻的内存状态。例如,如果...
Due to undocumented changes made by Google, on Android 7.0 CPU usage information for processes others than the own AnotherMonitor one will not be available (not even with root access). Rest of the app...
对于Android内存的监控和调试,我们可以使用adb工具进行深入分析。在没有专门的调试工具如trace32时,可以执行以下步骤: 1. 连接adb shell到设备。 2. 创建并挂载一个debugfs文件系统:`mkdir /data/debug`,然后`...
**五、MAT与Android内存优化** MAT在Android开发中的应用主要是查找和修复内存泄漏,优化对象生命周期管理,减少内存占用,提升应用性能。开发者应定期进行内存分析,特别是在处理大量数据或长时间运行的应用中。 ...
1. **Android内存机制**: - Android系统为每个应用程序分配了一定量的内存,不同版本的Android系统分配的内存大小不同。 - 当应用占用的内存超过分配的阈值时,就会触发垃圾回收(Garbage Collection, GC),回收...
Android 获取 App 内存使用情况的方法 Android 操作系统中,获取 App 内存使用情况是非常重要的,通过了解 App 的内存使用情况,可以更好地优化 App 的性能和稳定性。本文将介绍三种获取 Android App 内存使用情况...
Android Native 内存泄漏系统化解决方案 在 Android 平台上,C++ 内存泄漏问题的分析和定位一直是困扰开发人员的难题,因为地图渲染、导航等核心功能对性能要求很高,高德地图 APP 中存在大量的 C++ 代码。解决这个...
在探讨“Android内存查看与debug”这一主题时,我们深入剖析了如何在Android开发中有效管理内存,尤其是在遇到系统死机或OutOfMemoryError(OOM)等问题时。以下是从标题、描述、标签以及部分内容中提取的关键知识点...
1. **Android内存管理机制** - **Dalvik/ART虚拟机**:Android系统使用Dalvik或ART虚拟机执行应用程序,它们都有自己的内存管理策略。 - **堆内存**:Java对象主要存储在堆中,Android为每个应用分配了一定量的堆...
通过这样的测试,开发者可以了解内存使用情况,查找内存泄漏,以及优化内存分配策略。例如,LeakCanary和MAT(Memory Analyzer Tool)都是常用的内存分析工具,它们可以帮助开发者定位潜在的问题,并提供改进建议。 ...
以上内容覆盖了Android内存管理的关键知识点,从Dalvik虚拟机的特点到具体的内存管理工具使用,再到常见内存问题及其解决办法,以及优化代码的实践技巧。这些知识点对于Android开发者来说是非常宝贵的资源,能够帮助...
对于Android内存泄漏的检测和解决,开发者可以使用多种工具和方法。Android Studio中就集成有Profiler工具,可以帮助开发者监控应用程序的内存使用情况,并识别内存泄漏。此外,还有一些第三方的内存泄漏检测工具,...
本教程将深入探讨这两种算法——循环首次适应算法(First Fit)和最佳适应算法(Best Fit),以及它们在Android内存管理中的应用。 循环首次适应算法是一种简单的内存分配策略。当一个进程请求内存时,系统会从内存...