Android adb 命令学习记录

Android adb 命令学习记录

通过 wifi 连接手机

有些时候,我们手头上没有数据线,这个时候想调试一个应用就不是很方便了。其实这个时候我们可以通过 wifi 来连接手机并调试。通过 wifi 连接手机并调试需要手机和电脑处于同一个局域网,要是公司没有 wifi 可以考虑自己买个无线路由。

当手机和电脑处于同一个局域网的时候可以用下面的命令来连接手机。

adb connect device-ip

device-ip 是你手机局域网的 ip 地址。

但是有时候我们发现还是连不上,这可能是你的手机没有打开 TCP/IP 连接方式,在 root 的情况下,可以尝试输入一下的命令。

setprop service.adb.tcp.port 5555
stop adbd
start adbd

强大的 dumpsys 命令

dumpsys 命令是一个很强大且有效的命令,可以做很多的事情,我们详细说下

打印某个应用的内存信息

想查看某个应用内存信息的时候,可以尝试 adb 连接手机后,输入一下的命令:

adb shell dumpsys meminfo package_name

package_name 是你的应用包名。输入命令后大概会输出一下的信息。

Applications Memory Usage (kB):
Uptime: 1119644 Realtime: 1119644

** MEMINFO in pid 2577 [package_name] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    57222    57180        0        0    59736    46696    13039
  Dalvik Heap    73199    73152        0        0    78501    64370    14131
 Dalvik Other     1944     1944        0        0
        Stack      964      964        0        0
       Ashmem    18968    14920        0        0
    Other dev        9        0        8        0
     .so mmap    11524     1920     6296        0
    .apk mmap      679        0      348        0
    .ttf mmap       11        0        0        0
    .dex mmap     9485       20     9336        0
    .oat mmap     3678        0     1080        0
    .art mmap     1765     1464        4        0
   Other mmap      833       60      320        0
      Unknown    22557    22556        0        0
        TOTAL   202838   174180    17392        0   138237   111066    27170

 App Summary
                       Pss(KB)
                        ------
           Java Heap:    74620
         Native Heap:    57180
                Code:    19000
               Stack:      964
            Graphics:        0
       Private Other:    39808
              System:    11266

               TOTAL:   202838      TOTAL SWAP (KB):        0

 Objects
               Views:     1023         ViewRootImpl:        1
         AppContexts:        4           Activities:        3
              Assets:        6        AssetManagers:        6
       Local Binders:       48        Proxy Binders:       54
       Parcel memory:       12         Parcel count:       50
    Death Recipients:        3      OpenSSL Sockets:        0

 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:       62

App Summary 列出的是 app 的概要信息。

Objects 列出的是一些实例的个数,比如这个例子里面 View 有 1023 个。

通过这些信息可以初步判断 app 的运行状况。

打印 Activity 的信息

adb shell dumpsys activity top

上面的这个命令会打印最上面的 activity 的详情。

am 命令

打印当前堆栈

am dumpheap /mnt/sdcard/xxxx.hprof

发送一个广播

adb shell am broadcast -a "action"

tcpip 命令

打开 wifi 调试,如果电脑和设备处于同一个局域网,没有数据线,可以试试这个命令打开局域网调试

adb tcpip 5555

通过 wifi 连接

adb connect device_ip_address

打印日志

打印日志很常见也很重要的需求。

adb logcat

adb logcat -v time 可以打印日志时间

adb shell 命令相关功能

GPU 呈现模式

打开

adb shell setprop debug.hwui.profile visual_bars

关闭

adb shell setprop debug.hwui.profile false

软后杀掉进程,重新打开即可。

蓝线: 表示绘制界面的时间,如果超过绿色横线,那么表示有掉帧

红线: 表示渲染引擎计算界面花的时间,高度表示界面比较复杂

橙线: 表示 cpu 通知 gpu 完成绘制的时间,高度越高,表示 gpu 越忙。

具体意义可以参考 Android开发者选项——GPU呈现模式分析

过渡绘制

打开

adb shell setprop debug.hwui.overdraw show

关闭

adb shell setprop debug.hwui.overdraw false

无色: 没有过度绘制。

蓝色: 有一层过度绘制。

绿色: 有两层过度绘制。

浅红: 有三层过度绘制。

深红: 有四层过度绘制。

性能分析

vmstat 命令

这个命令可以用来监控系统的整体情况

vmstat

输出结果字段说明

procs

r: 表示正在运行的进程数量
b: 表示等待 IO 的进程数量

memory

free 空闲的物理内存
mapped

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值