精华内容
下载资源
问答
  • ADT开发工具的DDMS来查看(Heap)在“Devices”窗口中选择模拟器中的一个需要查看的程序,从工具条中选“Update heap”按钮,给这个程序设置上“heap Updates”,然后在Heap视图中点击Cause GC就可以实时显示这个程序...

    一、 通过eclipse,ADT开发工具的DDMS来查看(Heap)

    在“Devices”窗口中选择模拟器中的一个需要查看的程序,从工具条中选“Update heap”按钮,给这个程序设置上“heap Updates”,然后在Heap视图中点击Cause GC就可以实时显示这个程序的一些内存和cpu的使用情况了。

    d027e41e20c1

    image

    说明: a) 点击“Cause GC”按钮相当于向虚拟机请求了一次gc操作; b) 当内存使用信息第一次显示以后,无须再不断的点击“Cause GC”,Heap视图界面会定时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化; c) 内存使用信息的各项参数根据名称即可知道其意思,在此不再赘述。

    大致解析如下:

    这个就是当前应用的内存占用,allocated 是已经分配的内存 free是空闲内存,

    heap size 是虚拟机分配的 不是固定值 heap size 的最大值跟手机相关的

    有网友说,

    一般看1byte的大部分就是图片占用的

    如何判断应用是否有内存泄漏的可能性呢?

    需要注意一个值:Heap。视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:

    a) 不断的操作当前应用,同时注意观察data object的Total Size值;

    b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对 象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;

    c) 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大, 直到到达一个上限后导致进程被kill掉。

    d) 此处已system_process进程为例,在我的测试环境中system_process进程所占用的内存的data object的Total Size正常情况下会稳定在2.2~2.8之间,而当其值超过3.55后进程就会被kill。

    在如下的位置:

    二、通过linux命令来查看

    使用adb dumpsys 命令

    adb是一个非常强大的工具,使用adb查看应用程序内存使用情况可按如下格式在命令行里查看内存使用情况:

    adb shell dumpsys meminfo

    或者adb shell top | grep 也可以看内存

    其中,package_name 也可以换成程序的pid,pid可以通过adb shell ps | grep "xx"来查找;

    下图是某个程序的内存使用情况:

    d027e41e20c1

    重点关注如下几个字段:

    (1) Native/Dalvik 的 Heap 信息具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

    (2) Total 的 PSS 信息这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

    常用的命令有

    adb shell

    ps 是看进程的

    top命令是看占用率的

    内存耗用:VSS/RSS/PSS/USS 的介绍

    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)

    PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

    一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

    (具体VSS RSS >= PSS >= USS)

    展开全文
  • android 内存分析比较好的Blog:主要介绍1、进程的地址空间。2、进程内存空间和RAM之间的关系。3、Android中的进程。4、Android中进程的堆内存。5、Android的 java程序为什么容易出现OOM。6、Android如何应对RAM...

    对android 内存分析比较好的Blog:

    主要介绍

    1、进程的地址空间。

    2、进程内存空间和RAM之间的关系。

    3、Android中的进程。

    4、Android中进程的堆内存。

    5、Android的 java程序为什么容易出现OOM。

    6、Android如何应对RAM不足。

    7、如何查看RAM使用情况。

    8、 如何查看进程的内存信息。

    9、应用程序如何绕过dalvikvm heapsize的限制。

    10、Bitmap分配在native heap还是dalvik heap上?

    一、        分析整个系统的内存使用情况:

    1、Procrank

    Android自带的内存分析工具,对各个进程的内存使用进行排序(by Pss default).

    # procrankPID Vss Rss Pss Usscmdline

    3351 1058776K163952K 141197K 139596K com.google.earth

    2616 943156K116020K 93360K 91724K com.android.vending

    539 990756K 112504K91393K 89808K com.android.systemui

    4657 995760K105964K 77829K 70776K com.rovio.angrybirds

    ...

    119 31904K 7676K6038K 5900K /system/bin/surfaceflinger

    122 27468K 3788K3045K 2964K /system/bin/mediaserver

    ...

    120 865084K 24308K2263K 860K zygote

    ...

    ------ ------ ------

    717098K 669272KTOTAL

    RAM: 1124832Ktotal, 105528K free, 3808K buffers, 136624K cached,

    656K shmem, 23656Kslab

    2、Dumpsysmeminfo

    Android自带的内存分析工具,dumpsys只能查看java进程,procrank可以查看Native进程和java进程。.

    3、Cat /proc/meminfo

    查看总的内存使用情况.

    MemTotal:        396708kB

    MemFree:           4088kB

    Buffers:           5212kB

    Cached:          211164kB

    Mlocked:              0kB

    HighTotal:            0kB

    HighFree:             0kB

    LowTotal:        396708kB

    LowFree:           4088kB

    SwapTotal:            0kB

    ……

    ……

    MemTotal:可以使用的RAM总和(小于实际RAM,操作系统预留了一部分)

    MemFree:未使用的RAM

    Cached:缓存(这个也是app可以申请到的内存)

    HightTotal:RAM中地址高于860M的物理内存总和,只能被用户空间的程序使用。

    HightFree:RAM中地址高于860M的未使用内存

    LowTotal:RAM中内核和用户空间程序都可以使用的内存总和(对于512M的RAM: lowTotal= MemTotal)

    LowFree: RAM中内核和用户空间程序未使用的内存(对于512M的RAM: lowFree = MemFree)

    4、Ps -x

    该方式主要得到的是内存信息是VSIZE和RSS。.

    二、        分析单个进程的内存使用情况

    1、Procmem +进程号

    可查看进程的各个部分内存使用情况,包括通过驱动申请的内存

    # procmem 119Vss Rss Pss UssShCl ShDi PrCl PrDi Name

    ------- -------------- ------- ------- ------- ------- -------

    4K 0K 0K 0K 0K 0K0K 0K

    1012K 4K 4K 4K 0K0K 4K 0K [stack:944]

    512K 512K 512K 512K0K 0K 36K 476K /dev/mali0

    512K 512K 512K 512K0K 0K 0K 512K /dev/mali0

    516K 12K 12K 12K 0K0K 12K 0K [anon:libc_malloc]

    512K 512K 512K 512K0K 0K 224K 288K /dev/mali0

    512K 512K 512K 512K0K 0K 32K 480K /dev/mali0

    516K 12K 12K 12K 0K0K 12K 0K [anon:libc_malloc]

    ...

    2680K 2668K 2668K2668K 0K 0K 2668K 0K [heap]

    132K 20K 20K 20K 0K0K 20K 0K [stack]

    0K 0K 0K 0K 0K 0K0K 0K [vectors]

    ------- -------------- ------- ------- ------- ------- -------

    31904K 7676K 6039K5900K 1760K 16K 4144K 1760K TOTAL

    2、Dumpsys meminfo + pid/packageName

    可查看进程的dalvik-heap,NativeHeap大小

    shell@hwB199:/ $ dumpsys meminfo 1051

    dumpsys meminfo 1051

    Applications Memory Usage (kB):

    Uptime: 184110340 Realtime: 419146160

    ** MEMINFO in pid 1051[com.android.systemui] **

    Shared  Private    Heap     Heap     Heap

    Pss    Dirty   Dirty     Size    Alloc    Free

    ------   ------  ------   ------   ------  ------

    Native        0       0        0    24276   21430     2321

    Dalvik   17339     5612    17236   20864    15142     5722

    Stack      144        8     144

    Cursor        0        0       0

    Ashmem        0        0       0

    Other dev     6564     1696    5756

    .so mmap     1559     2704    1192

    .jar mmap        0        0       0

    .apk mmap     1197        0       0

    .ttf mmap      481        0       0

    .dex mmap      662        0       0

    Other mmap       42        8       4

    Unknown    18510      520   18504

    TOTAL    46498    10548   42836    45140    36572    8043

    Objects

    Views:      316         ViewRootImpl:        2

    AppContexts:       29           Activities:        0

    Assets:        8       AssetManagers:        8

    Local Binders:       64        Proxy Binders:       69

    Death Recipients:        5

    OpenSSL Sockets:        0

    SQL

    MEMORY_USED:        0

    PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0

    Asset Allocations

    zip:/data/app/com.UCMobile-2.apk:/resources.arsc: 522K

    zip:/data/app/com.tencent.mobileqq-1.apk:/resources.arsc: 1204K

    展开全文
  • 在shell环境使用命令dumpsys meminfo得到如下信息:Applications Memory Usage (kB):Uptime: 5696643 Realtime: 9312875Total PSS by process:65448 kB: com.android.launcher (pid 627)48572 kB: system (pid 389)...

    在shell环境使用命令

    dumpsys meminfo

    得到如下信息:

    Applications Memory Usage (kB):

    Uptime: 5696643 Realtime: 9312875

    Total PSS by process:

    65448 kB: com.android.launcher (pid 627)

    48572 kB: system (pid 389)

    30549 kB: com.android.systemui (pid 491)

    14920 kB: com.anyisheng.doctoran:service (pid 4108)

    10548 kB: com.google.process.gapps (pid 699)

    7991 kB: com.android.phone (pid 593)

    7765 kB: com.sohu.inputmethod.sogou (pid 579)

    7745 kB: eu.chainfire.supersu (pid 4122)

    7719 kB: com.msg.parser (pid 4006)

    6477 kB: com.zdworks.android.pad.zdclock (pid 1470)

    6453 kB: com.google.process.location (pid 658)

    5961 kB: com.google.android.apps.genie.geniewidget (pid 5047)

    4947 kB: com.android.nfc (pid 611)

    4861 kB: android.process.media (pid 4851)

    3391 kB: com.android.location.fused (pid 668)

    Total PSS by OOM adjustment:

    48572 kB: System

    48572 kB: system (pid 389)

    43487 kB: Persistent

    30549 kB: com.android.systemui (pid 491)

    7991 kB: com.android.phone (pid 593)

    4947 kB: com.android.nfc (pid 611)

    65448 kB: Foreground

    65448 kB: com.android.launcher (pid 627)

    22685 kB: Perceptible

    14920 kB: com.anyisheng.doctoran:service (pid 4108)

    7765 kB: com.sohu.inputmethod.sogou (pid 579)

    4861 kB: A Services

    4861 kB: android.process.media (pid 4851)

    48294 kB: Background

    10548 kB: com.google.process.gapps (pid 699)

    7745 kB: eu.chainfire.supersu (pid 4122)

    7719 kB: com.msg.parser (pid 4006)

    6477 kB: com.zdworks.android.pad.zdclock (pid 1470)

    6453 kB: com.google.process.location (pid 658)

    5961 kB: com.google.android.apps.genie.geniewidget (pid 5047)

    3391 kB: com.android.location.fused (pid 668)

    Total PSS by category:

    90469 kB: Dalvik

    67037 kB: Other dev

    34923 kB: Unknown

    15275 kB: .so mmap

    13837 kB: Other mmap

    7081 kB: .apk mmap

    3652 kB: .dex mmap

    993 kB: .ttf mmap

    48 kB: .jar mmap

    20 kB: Cursor

    12 kB: Ashmem

    0 kB: Native

    Total PSS: 233347 kB

    KSM: 0 kB saved from shared 0 kB

    0 kB unshared; 0 kB volatile

    adb shell进入shell环境,利用命令ps查看应用对应的进程号

    radio     593   129   488612 29408 ffffffff 4016aee4 S com.android.phone

    nfc       611   129   485352 25936 ffffffff 4016aee4 S com.android.nfc

    u0_a29    627   129   540580 97224 ffffffff 4016aee4 S com.android.launcher

    u0_a10    658   129   490956 28188 ffffffff 4016aee4 S com.google.process.location

    u0_a84    668   129   466076 22456 ffffffff 4016aee4 S com.android.location.fused

    u0_a10    699   129   511348 32980 ffffffff 4016aee4 S com.google.process.gapps

    u0_a158   1470  129   470860 27256 ffffffff 4016aee4 S com.zdworks.android.pad.zdclock

    例如闹钟com.zdworks.android.pad.zdclock对应的PID为1470,

    然后利用命令

    dumpsys meminfo 1470

    返回

    Applications Memory Usage (kB):

    Uptime: 6191391 Realtime: 9807624

    ** MEMINFO in pid 1470 [com.zdworks.android.pad.zdclock] **

    Shared  Private     Heap     Heap     Heap

    Pss    Dirty    Dirty     Size    Alloc     Free

    ------   ------   ------   ------   ------   ------

    Native        0        0        0     2084     1778      153

    Dalvik     3796    11172     3016     9792     9491      301

    Cursor        0        0        0

    Ashmem        0        0        0

    Other dev        5       28        0

    .so mmap      481     1904      256

    .jar mmap        0        0        0

    .apk mmap      285        0        0

    .ttf mmap        0        0        0

    .dex mmap      432        0        0

    Other mmap      549       20       28

    Unknown     1038      764      992

    TOTAL     6586    13888     4292    11876    11269      454

    Objects

    Views:        0         ViewRootImpl:        0

    AppContexts:        3           Activities:        0

    Assets:        2        AssetManagers:        2

    Local Binders:        5        Proxy Binders:       12

    Death Recipients:        0

    OpenSSL Sockets:        0

    SQL

    MEMORY_USED:      129

    PAGECACHE_OVERFLOW:       16          MALLOC_SIZE:       62

    DATABASES

    pgsz     dbsz   Lookaside(b)          cache  Dbname

    4       60            351       354/23/9  /data/data/com.zdworks.android.pad.zdclock/databases/zdclock.db

    可以得到此应用的内存情况。

    展开全文
  • 比如看图库程序:adb shell top | grep com.android.gallery3d结果如下:16916 0 0% S 14 322884K 46520K fg u0_a19 com.android.gallery3d16916 0 10% S 14 325884K 46528K fg u0_a19 com.android.gallery3d1...

    比如看图库程序:

    adb shell top | grep com.android.gallery3d

    结果如下:

    16916  0   0% S    14 322884K  46520K  fg u0_a19   com.android.gallery3d

    16916  0  10% S    14 325884K  46528K  fg u0_a19   com.android.gallery3d

    16916  0  20% R    14 325936K  46592K  fg u0_a19   com.android.gallery3d

    16916  1  30% R    15 329024K  58564K  fg u0_a19   com.android.gallery3d

    16916  0  32% S    14 327984K  61264K  fg u0_a19   com.android.gallery3d

    16916  0   4% S    14 327928K  61064K  fg u0_a19   com.android.gallery3d

    16916  0   0% S    14 327928K  61064K  fg u0_a19   com.android.gallery3d

    每隔3s左右刷新一次,中间两个xxK就是内存占用,第一个是VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

    第二个是RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)

    展开全文
  • 安卓手机怎么查看手机内存手机系统内存分为“手机运行内存”及“手机非运行内存”。安卓手机怎么查看内存?一起来了解看看吧!安卓手机怎么查看内存1.点击设置-存储这里面会详细的告诉你手机总容量以及SD卡的容量。往...
  • 目录解析日志信息logcat使用DDMS查看堆的更新Heap使用DDMS跟踪内存分配Allocation Tracker查看总体内存分配 adb1. 解析日志信息logcat//GC_CONCURRENT GC原因//freed 2049K 释放数量 执行垃圾回收后内存释放的数量//...
  • Android内存检测实现

    2021-05-28 02:11:41
    实现android内存检测的作用在哪里?当你处理一个非常大的图片缩放的时候,由于使用了ARGB8888的色彩,导致一个像素是4Byte。一个2000×3000分辨率的图片消耗的内存是:23 437.5KB。这时候消耗的内存是2.3M的内存。...
  • 相信大家都有这个体验,安卓机用的久了会明显变卡,特别是两年以上的手机。难道只能靠刷机重新起飞吗?刷机也只是爽在一时,不久还是会卡。下面大橙子就教你一招扩大手机虚拟内存,老牛也能拉新车。首先普及一下名词...
  • Android 内存管理详解

    2021-02-20 18:29:04
    和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Android 垃圾回收机制(GC)二、共享内存三、内存的申请与回收四、内存限制五、不同Ap...
  • 1.代码获取当前app内存的使用情况ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);//最大分配内存int memory = activityManager.getMemoryClass();System.out.println(...
  • 华为p10内存测试软件(androbench)其实...华为p10内存测试软件介绍AndroBench是衡量Android设备存储性能的基准测试应用程序。现在我们提供免费的,无广告的Micro基准测试,SQLite基准测试和宏基准测试功能。随时检查...
  • 随着智能手机的不断发展以及用户需求的不断增加,手机的运行内存(RAM)的大小已经从MB过渡到了GB容量,作为用户的我们只是知道运行内存越大越好,而运行内存到底有什么用你知道么?---------------------------------...
  • Android查看app内存和cpu占用

    千次阅读 2021-11-23 17:35:18
    1.可以使用adb shell showmap pid查看一个进程的showmap,这对于我们来说非常有用,可以确定进程中哪些库占用内存比较多 1,确定app进程号,通过jarvis过滤,ps-A显示全部进程 g6sa:/ # ps -A | grep jarvis ps -A |...
  • Android的实际开发中,可能会出现不再使用的对象无法被系统回收的情况,这种情况会导致内存泄漏,甚至内存溢出,导致程序崩溃。检测方法:使用LeakCanary优化方案:1.检查使用多少内存每个 APP 的堆(heap)内存大小...
  • 接上页二、将软件移动到SD卡存储卡分区完成后我们只需要把系统默认的软件安装目录/data/app转移到SD卡的Ext3分区上,然后通过ln命令建立软链接,使系统自动把软件安装到SD卡上,达到节省手机内存空间的目的。...
  • 【一、前言】之前小编在Android应用的性能测试学习过程中没有系统的整理和总结,项目版本迭代,让小编觉得,性能测试与优化知识整理的必要性。因工作接触的性能测试有限,谨以此篇抛砖引玉,希望能给大家一些微薄的...
  • 问题Android开发时可以通过AndroidStudio提供的一些系列工具查看应用的内存占用,十分的方便。但是如果是对一个成品的已安装App快速查看内存占用呢,下面简单讲两种方式。方案一:top 命令top 命令是一个linux下的...
  • 现在真实测试结果:1,为了搞清楚每个应用程序在Android系统中最多可分配多少内存空间,我们使用了真机进行测试,测试机型为魅族MX4 Pro,3G内存。测试方法是直接申请一块较大的内存空间,看应用程序在最多申请多大...
  • 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读。(本文最后我会尽量列出所参考的文章)。内存简介:RAM...
  • 内存泄漏是引起Android应用崩溃常见的原因,每个Android开发人员都应该明白怎么避免发送。常用的分析内存的工具有 Android Profiler 和 LeakCanary。Android Profiler 和 LeakCanary。Android Profiler 是Android ...
  • Android设备出厂以后,Java虚拟机对单个应用的内存分配就固定下来了,超出这个值就会OOM。这个属性值定义在 /system/build.prop中(以我的Nexus7为例)。dalvik.vm.heapgrowthlimit=192m // heapgrowthlimit参数表示...
  • 如果Androidstudio运行起来非常卡顿、缓慢,很可能是因为初始分配的内存不够导致卡顿。查看当前分配的Heap 总大小以及使用状况可以在studio中设置展示。具体位置Settings -> Appearance 页里,打开Show memory ...
  • Android内存不足预防

    2021-06-09 03:44:04
    4)从非UI线程注意什么线程你英寸 记住,你必须下载位图(我们使用一个服务实例作为意图的请求队列),和你必须附加位图仅在UI线程中查看实例。 您需要创建一个好的排队系统,将所有内容都加载到UI线程中的位图缓存...
  • 是否没有永久的解决方案来增加分配给我的Android应用程序的内存,而无需在设备和代码中进行手动干预? 图像以位图格式存储 //image creation Uri domuri1 ContentValues cv = new ContentValues(); cv.remove("101")...
  • 今天发现正在做的项目,时不时的会报错:dalvikvm heap out of memory on a 7458832-byte allocation (堆分配的内存溢出)为什么会内存溢出呢?我以前从未遇见这种情况。后来在网上查了查资料,还是挺多的。怎么说呢...
  • 摘要:Android系统由于其秉承开放特性,导致其比iOS等封闭系统更容易受到攻击,同时巨大的市场份额也让攻击者觉得有利可图,因此恶意软件已在Android系统上泛滥成灾.对Android系统下恶意软件检测是一个值得研究的课题,...
  • 1.3应用的CPU占用 当前应用所占CPU的算法是: 100*(processCpuTimeNow - processCpuTimeLast)/(totalCpuTimeNow - totalCpuTimeLast) 二、应用内存占用统计 统计当前应用的内存占用的方式: (1)从ActivityManager...
  • 对于很多安卓手机用户来说,手机还没用上多久,尼玛的手机内存怎么就变得越来越少了。看看自己的手机,游戏和软件也没装多少啊?这是为什么捏?其实,每次我们安装软件或者游戏失败之后,就会在手机中留下一些垃圾...
  • 一、RAM,ROM简单介绍RAM为运行内存,比如,360手机助手的悬浮窗,经常提示的运行内存超过80%之类的,指的都是运行内存。一般大小为几个G。ROM为存储数据的内存,比如,爱奇艺APP在视频页面显示的“总空间31.6G,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,985
精华内容 36,794
关键字:

安卓内存查看软件