精华内容
下载资源
问答
  • adb查看手机内存
    2020-11-27 11:26:42
    adb devices
    

    查看手机连接的设备

    如果有多个设备,后面的命令加上 -s 设备id
    eg

    adb -s 设备id shell dumpsys meminfo
    

    查看设备所有进程的内存信息

    adb shell dumpsys meminfo
    

    查看某一个进程的内存信息

    adb shell dumpsys meminfo 进程id
    

    当然,如果你不知道某一个进程的id的时候,可以通过关键字来过滤,在结果中找到进程 id

    eg

    adb shell dumpsys memeinfo |grep  com.tencent
    

    得到结果

      508,928K: com.tencent.mm (pid 3486 / activities)
        171,050K: com.tencent.mobileqq (pid 24707)
        139,219K: com.tencent.mm:appbrand2 (pid 24329)
        126,364K: com.tencent.mm:appbrand1 (pid 24254)
         87,694K: com.tencent.mm:tools (pid 23795)
         70,564K: com.tencent.mm:push (pid 5128)
         63,009K: com.tencent.mm:toolsmp (pid 23660)
         58,348K: com.tencent.mm:exdevice (pid 27949)
         55,285K: com.tencent.mm:sandbox (pid 23743)
         49,150K: com.tencent.mm:appbrand0 (pid 23252)
         46,431K: com.tencent.mobileqq:MSF (pid 848)
    	...
    

    所以 qq 的 pid 就是 24704
    注意,每次杀掉应用,进程id就会发生变化

    然后我们就可以通过 pid 来看内存信息了

    执行命令后,会发现有很多信息,但是我只关心

      TOTAL:   141751       TOTAL SWAP PSS:      464
    

    这一行
    所以我 grep 一下

    adb shell dumpsys meminfo 24704 |grep TOTAL:
    

    但是我要实时检测,所以就写了一个 java 脚本,300 毫秒打印一次

    object MemMain {
        @JvmStatic
        fun main(ags: Array<String>) {
            while (true) {
                Thread.sleep(300)
                var command = "adb shell dumpsys meminfo 改成pid |grep TOTAL:"
                val processList: MutableList<String> = ArrayList()
                try {
                    var process = Runtime.getRuntime().exec(command)
                    val input = BufferedReader(InputStreamReader(process.inputStream))
                    var line: String? = null
                    while (input.readLine()?.also { line = it } != null) {
                        line?.let {
                            processList.add(it)
                        }
                    }
                    input.close()
                } catch (e: IOException) {
                    e.printStackTrace()
                }
                for (line in processList) {
                    println(line)
                }
    
            }
        }
    }
    
    更多相关内容
  • android adb查看手机内存使用情况

    千次阅读 2020-08-05 17:25:51
    1.查看设备节点内存adb shell df 2.查看磁盘内存和运行内存adb shell free 3.查看内存详细数据adb shell cat /proc/meminfo

    1.查看设备节点内存adb shell df

    2.查看磁盘内存和运行内存:adb shell free

    3.查看内存详细数据adb shell cat /proc/meminfo

    MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)
     
    MemFree: LowFree与HighFree的总和,被系统留着未使用的内存
     
    Buffers: 用来给文件做缓冲大小
     
    Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).
     
    SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小,已经被交换出来的内存,但仍然被存放在swapfile                    中。用来在需要的时候很快的被替换而不需要再次打开I/O端口。
     
    Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要否则不会被移作他用.
     
    Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径.
     
    HighTotal:
     
    HighFree: 该区域不是直接映射到内核空间。内核必须使用不同的手法使用该段内存。
     
    LowTotal:
     
    LowFree: 低位可以达到高位内存一样的作用,而且它还能够被内核用来记录一些自己的数据结构。Among many
     
         other things, it is where everything from the Slab is allocated. Bad things happen when you’re out      of lowmem.
     
    SwapTotal: 交换空间的总大小
     
    SwapFree: 未被使用交换空间的大小
     
    Dirty: 等待被写回到磁盘的内存大小。
     
    Writeback: 正在被写回到磁盘的内存大小。
     
    AnonPages:未映射页的内存大小
     
    Mapped: 设备和文件等映射的大小。
     
    Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。
     
    SReclaimable:可收回Slab的大小
     
    SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)
     
    PageTables:管理内存分页页面的索引表的大小。
     
    NFS_Unstable:不稳定页表的大小
     
    VmallocTotal: 可以vmalloc虚拟内存大小
     
    VmallocUsed: 已经被使用的虚拟内存大小。
     
    VmallocChunk: largest contigious block of vmalloc area which is free

     

    展开全文
  • 1. procrank //查看所有进程的内存占比,可以查看TOTAL 2. procrank | grep 包名 //查看特定进程内存占比 结果如下: procrank  PID Vss Rss Pss Uss cmdline  2260 1462560K 24324K 21570K 20932K ...
  • = USSVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库,...

    一、procrank

    VSS >= RSS >= PSS >= USS

    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间

    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。

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

    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。

    USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加

    二、dumpsys meminfo(或者直接读取“/proc/meminfo”文件来获得内存信息--Linux系统)

    1、cat /proc/meminfo

    MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)。

    MemFree:被系统留着未使用的内存。

    Buffers: 用来给文件做缓冲的大小。

    Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).

    SwapCached:swap 缓存的大小,Android很少使用swap的,经常为0。被高速缓冲存储器(cache memory)用来交换空间的大小,用来在需要的时候很快的被替换而不需要再次打开I/O端口。

    Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。

    Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。

    SwapTotal: 交换空间的总大小。

    SwapFree: 未被使用交换空间的大小。

    2、dumpsys meminfo 进程pid或程序包名

    查询结果根据以下4类分类:

    da08ed9d1759f7172caa19450ccb30b2.png

    OOM(out of memory)即内存泄露。一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。

    Android的一个应用程序的内存泄露对别的应用程序影响不大,因为为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,也就是说每个应用程序都是在属于自己的进程中运行的。如果程序内存溢出,Android系统只会kill掉该进程,而不会影响其他进程的使用(如果是system_process等系统进程出问题的话,则会引起系统重启)。

    展开全文
  • adb命令查看Android中内存使用情况

    千次阅读 2021-06-30 10:35:43
    adb是一个非常强大的工具,使用adb查看程序内存使用情况可按如下格式在命令行里查看内存使用情况: adb shell dumpsys meminfo <package_name> 1 2 其中package_name可以换成程序的pid,pid可以通过adb ...

    1、使用adb dumpsys命令

    adb是一个非常强大的工具,使用adb查看程序内存使用情况可按如下格式在命令行里查看内存使用情况:
    adb shell dumpsys meminfo <package_name> 
    
    • 1
    • 2

    其中package_name可以换成程序的pid,pid可以通过adb shell top -n 1或者adb shell ps来查找,下图是某个程序的内存使用情况:
    这里写图片描述
    重点关注如下几个字段:
    (1)Native/Dalvik 的Heap信息
    具体在上面的第一行和第二行,它分别给出的是JNI层和java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄露。
    (2)Total 的PSS信息
    这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占用内存比较大了。

    2、使用adb shell procrank

    手机中的sh是经过精简过的,有些手机可能没有 procrank 命令,可以使用genymotion模拟器,或是自己安装procrank命令。使用procrank时,命令行的输出入下图:
    这里写图片描述
    可以看到,在linux下表示内存的耗用情况有四种不同的表现形式:
    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
    PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

    VSS:VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。
    RSS:表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。
    PSS:表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。这种方式表示进程的内存使用情况较准确,但当只有一个进程使用共享库时,其情况和RSS一模一样。
    USS:表示一个进程本身占用的内存空间大小,不包含其它任何成分,这是表示进程内存大小的最好方式!
    可以看到:VSS>=RSS>=PSS>=USS

    3、使用studio内存分析工具

    前往简书查看

    4、其它常用命令:

    adb shell kill PIDNUMber 杀死你想杀死的后台进程,来模拟某种bug 的复现条件。
    adb shell ps 查看当前终端中的进程信息

    那么如何在代码中判断当前的硬件系统有多少的 RAM 呢?在 Framework ProcessList.java 中有如下代码可用:

    ProcessList() {  
       MemInfoReader minfo = new MemInfoReader();  
       minfo.readMemInfo();  
       mTotalMemMb = minfo.getTotalSize()/(1024*1024);  
    }

    查看进程占用cpu的情况:adb shell top -n 1 -d 0.5 | grep proc_ id

    展开全文
  • ADB 查看手机内文件

    千次阅读 2021-11-29 06:06:02
    adb shell 进入手机内存 cd sdcard/DCIM/Camera [oliveryty@localhost ~]$ adb shell HWEML:/ $ cd sdcard/DCIM/Camera HWEML:/sdcard/DCIM/Camera $ ls
  • 1. 打开DOS窗口,进入adb.exe所在的文件目录 1) 打开DOS窗口输入:win + r 2) 进入adb所在文件目录:cdC:\Program Files (x86)\Baofeng\PhoneAssistant(之前装adb没装好,这里用的暴风简助手的adb) ...3. 查看...
  • Android 获取手机内存和可用内存信息,博客附adb方式 https://blog.csdn.net/qq_31939617/article/details/80272759
  • android使用adb查看应用内存大小

    千次阅读 2021-04-29 15:10:09
    一个月不发布新文章了,因为手里有点事情耽误了写作,侧面也可以反应我很懒,特别特别懒那种,现在跟大家分享一个技巧,可以查看手机应用的内存占比。 命令: adb shell dumpsys meminfo -a 包名(比如...
  • 如何在adb查看Android手机运行内存RAM 是1G还是2G呢?谢谢
  • 使用adb命令查看手机cpu/内存等信息

    千次阅读 2020-12-20 06:25:21
    使用adb命令查看手机cpu/内存等信息前提本地电脑Windows已安装ADB工具、夜神模拟器连接手机这里用的夜神模拟器连接的使用adb命令连接手机adb connect 127.0.0.1:62001备注:62001夜神模拟器默认端口显示已连接成功...
  • -adb shell cat proc/meminfo – 内存系统信息 -adb shell cat proc/pid/maps – 指定进程内存地址映射 -adb shell cat proc/pid/smaps – 指定进程内存详细使用信息 ?procrank info: all process memory status -...
  • 查看连接的设备 adb devices 查看运行的进程 adb shell ps adb -s 设备号 shell ps 查看应用运行情况 adb shell dumpsys meminfo 包名 adb -s 设备号 shell dumpsys meminfo 包名 ...
  • 安卓手机内存镜像软件ADB

    热门讨论 2013-12-14 15:13:37
    将安卓手机内存镜像到电脑里,然后通过数据恢复软件分析镜像,从而达到恢复误删除数据的目的。
  • adb命令查看设备内存

    万次阅读 2020-03-20 17:50:53
    adb shellprocrank , 看ram 大概905M 也就是1G内存 VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set ...
  • 获取手机剩余内部存储大小,简单的demo
  • ADB——查看手机设备信息

    千次阅读 2021-09-07 18:01:38
    查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery ''' Current Battery Service state: AC powered: false USB powered: true Wireless powered: false ...
  • 1、查看内存信息 1)查看所有内存信息 命令: dumpsys meminfo 例: C:\Users\laiyu>adb shell shell@android:/ $ dumpsys meminfo dumpsys meminfo Applications Memory Usage (kB): Uptime: 80066272
  • 1 查看内存信息命令:adb shell dumpsys meminfo输入命令:dumpsys meminfo pid,比如查看手机安装的360安全卫士,那么实际命令应该为:dumpsys meminfo 3253,如下图所示:参数含义:dalvik : dalvik使用的内存...
  • adb dumpsys 查看手机内存

    千次阅读 2017-02-06 18:58:32
    adb是一个非常强大的工具,使用adb查看应用程序内存使用情况可按如下格式在命令行里查看内存使用情况: adb shell dumpsys meminfo  其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep ...
  • 主要介绍了Android系统检测程序内存占用各种方法,并对内存信息的详细介绍,需要的朋友可以参考下
  • adb查看内存占用

    千次阅读 2018-04-25 11:13:14
    1. 在IDE中查看Log信息当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:D/dalvikvm: &lt;GC_Reason&gt; &lt;Amount_freed&gt;, &lt;Heap_stats&gt;, &lt;External_memory_...
  • The adb command provides a way to gain useful information about a number of thesystems configuration areas.To determine the physical memory (RAM) :for HP-UX 10xexample:echo physmem/D | adb /stand/vmu....
  • 由于工作需要获取安卓手机游戏应用运行时的性能数据,上网学习了一些知识,整理记录下。... 获取内存数据(1)手机内存命令:adb shell cat /proc/meminfo |findstr MemTotal执行:(2)运行内存① 基本内存...
  • adb shell top -m xx查看XX个进程数adb shell top -n XX刷新XX次adb shell top -d XX刷新频率1. 获取CPU数据命令:adb shelltop -n -1 | find "package信息"adb shell top -n 1|findstr "\ \" 才能加上列名信息执行...
  • 这篇文章主要介绍了Android系统检测程序内存占用各种方法,并对内存信息的详细介绍 通过读取文件”/proc/meminfo”的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager....
  • 通过 ADB 命令获取手机信息 ADB 常用查看命令 使用 -l 查看设备详细信息 查看机型 查看电池状况 查看分辨率 查看屏幕密度 查看显示屏参数 查看 android_id 查看 IMEI 查看 Android 系统版本 查看 IP 地址 查看 Mac ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,442
精华内容 6,976
关键字:

adb查看手机内存