adb 常用命令

ADB的全称为Android Debug Bridge,就是起到调试桥的作用。ADB是android sdk(Android专属的软件开发工具包)里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。

它的主要功能有:运行设备的shell(命令行);管理模拟器或设备的端口映射;计算机和设备之间上传/下载文件;将本地apk软件安装至模拟器或android设备。

开启/关闭服务

有时候 adb 运行异常,就需要重启关闭开启 adb 服务。

adb kill-server # 关闭服务

adb start-server # 开启服务

查看当前连接的设备

示例:

$ adb devices

List of devices attached

192.168.91.185:5555 device

连接 USB 转为 WIFi

先使用 usb 连接到电脑上。

设置目标设备以侦听端口 5555 上的 TCP/IP 连接。

$ adb tcpip 5555

restarting in TCP mode port: 5555

断开 usb 连接,并访问设备的内部网址

$ adb connect device_ip_address

connected to device_ip_address:5555

查看设备是否已连接

$ adb devices

List of devices attached

192.168.2.127:5555 device

断开WiFi 连接的设备

$ adb disconnect

disconnected everything

给指定设备发送命令

当电脑连接多个设备时,发出 adb 命令,必须指定一个设备

adb -s serial_number command

例如:

adb -s BY2XEE157 install path_to_apk

安装/卸载应用

安装应用

adb install path_to_apk

覆盖安装应用

adb install -r path_to_apk

卸载应用

adb uninstall com.package.name

电脑与设备间的文件复制

从设备复制文件

adb pull remote local

复制文件到设备

adb push local remote

在上述命令中,local 和 remote 指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径。例如:

adb push foo.txt /sdcard/foo.txt

输入设备日志到终端上

一直显示设备日志,直到你手动 (Ctrl + C) 停止

adb logcat

将设备缓存的日志输入到终端上,不会阻塞

adb logcat -d

将日志以文件形式输出到手机设备上,会阻塞,需手动 (Ctrl + C) 停止

adb logcat -f /sdcard/log.txt

PS:

(1). 如果在后台自动手机,不阻塞终端,则可在命令最后加一个 & 的参数;

(2). 加了&的命令,需要在不收集的时候手动停止,否则再次使用该命令时,会造成2个 logcat 的命令都写在同一个文件中。

停止方法:

adb shell kill -9

其中logcat_pid 通过 如下命令获取

adb shell ps | grep logcat # Linux & macOS 平台

adb shell ps | findstr "logcat" # Windows 平台

清空日志缓存信息

adb logcat -c

过滤指定等级以上的日志

adb logcat "*:"

日志等级列表:

-- V : Verbose (明细);

-- D : Debug (调试);

-- I : Info (信息);

-- W : Warn (警告);

-- E : Error (错误);

-- F : Fatal (严重错误);

-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

示例:命令 $ adb logcat "*:E" ,只显示错误级别以上的日志

查看设备已安装应用

查看设备所有应用包名,包括:系统应用、第三方应用

adb shell pm list package

查看设备所有第三方应用包名

adb shell pm list package -3

清除指定应用的所有数据(不卸载应用)

adb shell pm clear com.package.name

强制关闭应用

adb shell am force-stop com.package.name

截屏

adb shell screencap /sdcard/screen.png

录制视频

adb shell screenrecord /sdcard/demo.mp4

如果需要停止录制视频,需要等待3分钟或输入快捷键Ctrl + C停止,也可以加 --time-limit TIME单位为秒

如:录制5分钟

adb shell screenrecord /sdcard/demo.mp4 --time-limit 300

当然还可以设置分辨率720P

adb shell screenrecord /sdcard/demo.mp4 --size 1280x720

获取输入法

获取当前设备默认输入法

adb shell settings get secure default_input_method

设置指定的输入法(设输入法为:com.android/input)为默认

adb shell ime set com.android/input # 两条命令作用一样

adb shell settings put secure default_input_method com.android/input

获取设备信息参数

adb shell getprop

重启手机命令

重启手机

adb reboot

重启手机到recovery界面

adb reboot recovery

重启手机到bootloader界面

adb reboot bootloader

重启手机到fastboot界面

adb reboot fastboot

获取设备属性

使用命令adb shell getprop+下面的属性,即可获取相应的属性

属性名

含义

ro.build.version.sdk

SDK 版本

ro.build.version.release

Android 系统版本

ro.product.model

型号

ro.product.brand

品牌

ro.product.name

设备名

$ adb shell getprop ro.product.model

vivo X9i

查看实时资源占用情况

示例:

$ adb shell top

User 4%, System 2%, IOW 0%, IRQ 0%

User 108 + Nice 0 + Sys 68 + Idle 2284 + IOW 0 + IRQ 6 + SIRQ 6 = 2472

PID PR CPU% S #THR VSS RSS PCY UID Name

2003 5 3% S 64 1257132K 154860K fg u0_a19 com.android.systemui

521 5 2% D 13 145376K 23044K fg system /system/bin/surfaceflinger

19825 4 0% R 1 6516K 1416K fg shell top

18585 7 0% S 1 0K 0K fg root kworker/u16:2

19563 7 0% D 1 0K 0K fg root mdss_fb0

1452 5 0% S 178 2458344K 190788K fg system system_server

19795 7 0% S 1 0K 0K fg root kworker/u16:6

17950 7 0% S 1 0K 0K fg root kworker/u16:0

53 4 0% S 1 0K 0K fg root rcuop/6

2151 6 0% S 55 1708748K 76084K fg system com.vivo.daemonService

更多用法:

-m num 显示最多的进程数目

-n num 刷新多少次后退出

-d num 刷新时间间隔

-s col 以什么数据排列 (cpu,vss,rss,thr).

-t 显示线程信息代替进程

-h 显示帮助文档

查看内存信息

adb shell dumpsys meminfo # 查看整个设备的内存信息

adb shell dumpsys meminfo pid # 查看指定进程的内存信息

adb shell dumpsys meminfo com.package.name # 查看指定应用的内存信息

提示:

dalvik:是指dalvik所使用的内存。 native:是被native堆使用的内存。应该指使用C\C++在堆上分配的内存。

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

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

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

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

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

查看指定应用的指定页面启动时间

可通过启动页面指定页面获得时间

adb shell am start -W -n com.package.name/.activity

查看设备日志获得打开指定页面时间

示例:

$ adb shell logcat | grep ActivityManager

06-22 16:27:43.827 1452 2446 I ActivityManager: START u0 {cmp=com.babychat.parent.test/com.babychat.module.setting.view.SettingAty} from uid 10113 on display 0

06-22 16:27:43.967 1452 1609 I ActivityManager: Displayed com.babychat.parent.test/com.babychat.module.setting.view.SettingAty: +115ms

06-22 16:27:44.847 1452 2158 I ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10113 on display 0

06-22 16:27:44.867 1452 2473 I ActivityManager: START u0 {cmp=com.babychat.parent.test/com.babychat.activity.OutBoxActivity (has extras)} from uid 10113 on display 0

06-22 16:27:44.997 1452 1609 I ActivityManager: Displayed com.babychat.parent.test/com.babychat.activity.OutBoxActivity: +117ms

06-22 16:27:46.017 1452 26437 I ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10113 on display 0

06-22 16:28:30.527 1452 2446 I ActivityManager: START u0 {cmp=com.babychat.parent.test/com.babychat.activity.UserHomeHistoryAty (has extras)} from uid 10113 on display 0

06-22 16:28:30.687 1452 1609 I ActivityManager: Displayed com.babychat.parent.test/com.babychat.activity.UserHomeHistoryAty: +140ms (total +44s660ms)

查看当前 activity

示例:

$ adb shell dumpsys window | grep mCurrentFocus

mCurrentFocus=Window{2cf7a4d u0 com.babychat.parent.test/com.babychat.module.chatting.groupmemberlist.GroupMemberListActivity}

获取流量

adb 命令获取流量有多种方式。

需提前准备的数据

获取指定应用的 pid

adb shell ps | grep com.package.name

如:

$ adb shell ps | grep com.babychat.parent.test

u0_a113 9483 773 2033552 243156 SyS_epoll_ 0000000000 S com.babychat.parent.test

u0_a113 9518 773 1603852 48948 SyS_epoll_ 0000000000 S com.babychat.parent.test:pushservice

其中logcat_pid 通过 如下命令获取

adb shell ps | grep logcat # Linux & macOS 平台

adb shell ps | findstr "logcat" # Windows 平台

第二列的数值就是 pid

获取指定应用的 uid

adb shell cat /proc//status

PS:pid 第一点获取的数值

如:

$ adb shell cat /proc/2076/status

Name: hat.parent.test

State: S (sleeping)

Tgid: 9483

Pid: 9483

PPid: 773

TracerPid: 0

Uid: 10113 10113 10113 10113

Gid: 10113 10113 10113 10113

Ngid: 0

FDSize: 256

Groups: 3003 9997 50113

VmPeak: 2210788 kB

VmSize: 2033632 kB

VmLck: 0 kB

VmPin: 0 kB

VmHWM: 362872 kB

VmRSS: 244244 kB

VmData: 378084 kB

VmStk: 8196 kB

VmExe: 20 kB

VmLib: 121404 kB

VmPTE: 1772 kB

VmSwap: 0 kB

Threads: 170

SigQ: 0/13358

SigPnd: 0000000000000000

ShdPnd: 0000000000000000

SigBlk: 0000000000001204

SigIgn: 0000000000000000

SigCgt: 00000002000094f8

CapInh: 0000000000000000

CapPrm: 0000000000000000

CapEff: 0000000000000000

CapBnd: 0000000000000000

Seccomp: 0

Cpus_allowed: ff

Cpus_allowed_list: 0-7

voluntary_ctxt_switches: 17297

nonvoluntary_ctxt_switches: 10150

命令结果中第7行就是 uid 的结果了

1、读取/proc/uid_stat/ 目录下的文件

流量数据分为接收流量(tcp_rcv)和发送流量(tcp_snd)两部分,这两个状态数值我们可以通过读取/proc/uid_stat/目录下的两个文件得到。

$ adb shell cat /proc/uid_stat/10114/tcp_rcv

100046432

$ adb shell cat /proc/uid_stat/10114/tcp_snd

2020511

PS:

以上命令只能获取 TCP 协议的流量,UDP 等其他协议没有计算在内;

以上数据的单位为(Byte),且此数据是一直累加的,直到卸载应用才会删除

使用以上方法获取流量,需在操作前和操作后各获取一次数据,得到得到之间的相差值就可以了。

2、读取/proc/net/xt_qtaguid/stats | grep 流量数值

通过使用以下命令获取设备流量信息,如果指定应用,则获取应用的 uid,在该命令后添加参数| grep uid

adb shell cat /proc/net/xt_qtaguid/stats

如:

$ adb shell cat /proc/net/xt_qtaguid/stats | grep 10114

40 wlan0 0x0 10114 0 6306390 5007 276578 3966 6306390 5007 0 0 0 0 276578 3966 0 0 0 0

41 wlan0 0x0 10114 1 104210738 82998 5295286 65789 104210738 82998 0 0 0 0 5295286 65789 0 0 0 0

PS:

第6列是接收的流量数值,单位:bytes;

第8列是发送的流量数值,单位:bytes;

如果结果出现多行数据,相加的总数即为结果

3、读取 /proc//net/dev 数值

通过获取到的 pid ,使用命令可得到:

$ adb shell cat /proc//net/dev

Inter-| Receive | Transmit

face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

rmnet_ipa0: 716 7 0 0 0 0 0 0 880 12 0 0 0 0 0 0

r_rmnet_data7: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data4: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

wlan0: 320261121 1225926 0 124 0 0 0 0 28315746 159136 0 0 0 0 0 0

rmnet_data5: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data7: 620 8 0 0 0 0 0 0 880 12 0 0 0 0 0 0

dummy0: 0 0 0 0 0 0 0 0 210 3 0 0 0 0 0 0

p2p0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data6: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data8: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data4: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

lo: 2272 27 0 0 0 0 0 0 2272 27 0 0 0 0 0 0

r_rmnet_data5: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

rmnet_data6: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

r_rmnet_data2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

PS:

1.wlan0 代表是 WiFi 接收发送的流量数值,单位为:bytes

获取电量

未完待续

adb打开网页_adb 常用命令相关推荐

  1. adb打开网页_adb命令打开手机设置页面

    设置主页面 adb shell am start com.android.settings/com.android.settings.Settings 安全 adb shell am start co ...

  2. adb及cmd部分常用命令

    adb及cmd部分常用命令 cmd常用命令 adb常用命令 内存/cpu相关 此文章属于日常记录,有可能存在不准确的地方,仅供参考,谢谢. cmd常用命令 返回上一级: cd- 进入指定盘: D: 进 ...

  3. Unity ADB调试和一些常用命令

    将AndroidSDK中的platform-tools路径加入系统环境变量中,就cmd下任何路径都可以使用adb 手机改成开发者模式,并且开启USB调试和USB安装 打开cmd,adb forward ...

  4. adb打开网页_关于ADB,请教如何通过指定APP打开目标网页

    关于ADB,请教如何通过指定APP打开目标网页 比如用ADB命令通过QQ或者微信打开网址,比如百度 效果类似于在聊天页面鼠标点击链接打开网站 以下是山海LUA插件类似功能,请参考: --指定APP打开 ...

  5. ADB安装方法及常用命令汇总

    目录 ADB简介 ADB安装 ADB常用命令 后记 ADB简介 ADB即Android Debug Bridge,起到调试桥的作用,使用ADB可以用电脑快速对手机进行调试,如安装APK.push文件等 ...

  6. ADB调试方法及常用命令

    无线adb的使用(平板和电脑要在同一网段) 1.插上USB后,在cmd中设置TCP/IP端口号位5555 C:\Users\Administrator>adb tcpip 5555 restar ...

  7. adb打开网页_android 使用指定浏览器打开网页

    梳理下流程: 枚举对应浏览器包名到数组中 数组循环根据包名找到对应的LaunchIntent 通过LaunchIntent找到对应的LaunchActivity的包名 Intent通过设置activi ...

  8. adb bugreport保存位置_adb 常用命令---日常提升效率

    做为 Android 开发,怎么能不懂点 adb 命令呢? 速看~ adb 重置.断连的状况这里不说了,先来说一些直观的命令吧 1.adb devices 查看当前连接的设备 如果当前正在连接着设备, ...

  9. adb 清理内存_adb 常用的命令

    说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率, ADB 的命令 ...

最新文章

  1. 坚持的力量 第十五篇
  2. 分享Kali Linux 2016.2第50周镜像文件
  3. could not open C:\Program Files\Java\jdk1.6.0-11\lib\i386\jvm.cfg
  4. @builder注解_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证
  5. java null错误事例_java – aspectJ示例中的nullpointer异常
  6. 云要闻 | 华为助力5G;青云云资源价格全面下调;神州数码签订云计算服务合同
  7. python3设置编码背景颜色_在pythongtk3中设置条目背景颜色并设置回defau的最佳方法...
  8. c++11 string转ing_pdfkit | 利用python实现html文件转pdf
  9. linux改文件系统类型,linux文件系统类型及mount
  10. Could not load file or assembly An attempt was made to load a program with an incorrect format.
  11. AMD规范和requirejs入门
  12. 电阻电容封装买大了怎么办呢
  13. 74HC595串口转并口芯片学习
  14. oracle11g64位怎么用sql,plsql32 位连接oracle11g64位方法
  15. 中国土地市场网数据采集爬取landChain抓取Python爬虫
  16. 百度智能云NIRO MAX机器人,打造智慧党建新体验!
  17. CCS导入工程时报错“overlaps the location of another project”解决办法
  18. 使用32驱动1602液晶屏
  19. RC滤波器(高通/低通)
  20. STM32的SRAM

热门文章

  1. C# 计算中文汉字笔画数
  2. MathML: 描述数学表达式
  3. /* 计算器 */
  4. Directx11教程三十一之ShadowMap(阴影贴图)之聚光灯光源成影
  5. FPGA开发技巧备忘录——Xilinx JTAG to AXI Master IP的使用
  6. 从《西部世界》看你的数据价值
  7. 西门子PLC的S7协议报文解析说明
  8. 基于淘宝网的淘金币抽奖是如何吸引屌丝消费的策略研究
  9. nslookup type值_nslookup命令详解
  10. python数据导出excel_Python-将数据表中数据导出到excel