adb 实时检测手机内存

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)
            }

        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值