当前位置:   article > 正文

ADB shell 命令学习(Mac)

adb shell

一、前言

adb全称android debug bridge,是用于操作安卓设备的工具。

使用前需要确认adb工具是否正确安装和配置
adb version

二、设备连接

adb devices # 查看当前链接的设备
其中列出的设备会注明当前设备状态

  1. device 正常连接
  2. offline 设备连接异常,无响应
  3. unauthorized 未授权

1. 连接真机

需要设置设备,确保“开发者模式”打开(根据自己手机机型操作)

1. USB数据线连接设备
  • 在电脑上命令行输入adb devices即可查找到连接的真机
2. Wifi连接设备
  • 确保设备和PC使用的是同一局域网
  • 查找到设备ip,例如192.168.0.188
  • 此时暂时仍然使用usb连接着设备
  • 使用adb tcpip 5555 重启adb
  • 使用adb connect 设备ip 如:adb connect 192.168.0.188
  • 连接成功就可以拔掉usb数据线连接了
  • 使用adb disconnect取消连接

2. 模拟器

模拟器连接直接在电脑上启动设备,即可连接上
模拟器操作

查看系统现有的android平台

android list targets

查看系统现有的模拟器(avd)

android list avd
emulator -list-avds

创建模拟器

android create avd -n 待创建模拟器名称 -t android平台id

android平台id 通过上述命令android list targets查看系统先用android平台

删除模拟器

android delete avd -n 模拟器名称

启动模拟器

emulator -avd 模拟器名称

三、adb命令

命令格式

adb [-d | -e | -s 设备号 ] command
-d :当前唯一连接的真机设备
-e :当前唯一连接的模拟器设备
-d :存在多个设备时,指定连接某个设备

- 查看设备内部Packages list

adb shell pm list packages

- 安装/卸载apk文件

1、安装应用
只有一台设备时,默认安装该设备

adb install -r apk文件路径
-r参数: 覆盖安装

多个设备连接时,指定设备安装文件

adb -s 设备udid install apk文件路径

2、卸载应用

adb -s 设备号 uninstall packageName
adb uninstall -k packageName
-k 参数:不删除配置文件,保存数据缓存信息;不加该参数就是完全清除应用数据

查看设备上关于应用的缓存数据

adb -s 设备号 shell 通过shell进入设备内环境
cd /data/data
ls 展示所有安装包名,找到对应应用包名
cd 应用包名 进入可以查看到所有缓存数据

- 启动应用页面

  1. package(包):Android应用的唯一标识
  2. activity(活动页):Android应用页面,一个页面也就是指一个activity

启动指定页面
am:activity manager

adb shell am start -n packageName/activity

获取当前指定页面名

参考:https://testerhome.com/topics/9209

操作步骤如下

1、使用设备打开对应应用的指定页面
2、在pc端命令行工具,使用adb命令获取当前页面
adb shell "dumpsys window | grep mCurrentFocus"
或者执行adb shell dumpsys activity | grep mFocusedActivity
在这里插入图片描述

获取启动页面名

操作步骤

1、在终端输入如下命令: adb logcat ActivityManager:I | grep "cmp"
2、重新启动应用
在这里插入图片描述

终端将输出日志,我们找到启动应用第一次出现的数据,cmp后面的内容即是我们启动页Activity

获取页面也可以通过logcat查找

打印手机日志,并且过滤

adb logcat | grep -i displayed

查看小程序androidProcess进程
  1. 通过adb shell dumpsys activity top | grep ACTIVITY获取到当前进程的pid
  2. 通过adb shell ps $pid获取到androidProcess进程
    这里写图片描述

- 清理设备的缓存

Android操作系统底层是Linux系统,所以我们也可以使用Linux命令操作系统设备。
然而,adb shell就是pc端系统连接Android设备的通道,可以通过它访问设备的各种文件以及操作文件。
adb shell 直接进入设备内环境,然后再使用Linux命令操作

abd shell应用-使用Linux命令
  1. adb shell ls 查看目录结构
  2. adb shell data 查看系统当前日期
  3. adb shell cat /proc/cpuinfo 查看系统CPU使用情况
  4. adb shell cat /proc/meminfo 查看系统内存使用情况

备注:如果存在多个设备需要使用-s 设备号指定设备

adb shell 应用-查看应用列表

pm:package manager
查看设备上所有安装的应用

  1. adb shell pm list packages :显示所有应用,添加参数-f打印出包名的同时给出应用地址
  2. adb shell pm list packages -s:只显示系统自带应用
  3. adb shell pm list packages -3:只显示系统第三方应用,即用户自己安装的应用
  4. adb shell pm list packages -e '相关包内容':可以搜索指定包
清除应用数据及缓存

adb shell pm clear packageName

应用缓存数据位置:

1、adb -s 设备号 shell cd /data/data/packageName
2、ls 展示所有缓存数据文件夹及文件

- 传输文件

将PC端文件推送到Android设备

adb push PC端文件路径 Android设备准备存储文件的路径

将Android设备的文件拉取到PC端

adb pull Android设备的文件路径 PC端准备存储文件的路径

- 查看设备日志

设备日志级别

由上至下优先级别从低到高

级别备注
V明细 verbose
D调试 debug
I信息 info
W警告 warn
E错误 error
F严重错误 fatal
S无记载silent,不会输出任何内容
adb命令查看日志

adb logcat
会打印出设备上目前所有操作日志

adb logcat -c 清理已存在的日志,将之前的日志信息(日志缓存信息等)清空, 重新开始输出日志信息
adb logcat -s xxx 设置默认的过滤器, 如想要输出 “System.out” 标签的信息adb logcat -s System.out
adb logcat -v time 打印时间,现在默认打印日志时间
adb logcat -v color 使用不同颜色显示不同优先级的日志
adb logcat -f <设备端文件路径> 将日志输出到设备上指定文件
adb logcat > PC文件路径 保存日志到PC端上的指定文件
"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
"-g"选项 : 查看日志缓冲区信息

日志过滤

日志格式
adb logcat [TAG:LEVEL] [TAG:LEVEL]....

[TAG:LEVEL] 即[标签:日志级别]:通过这样的指令可以过滤标签
例如:

  1. adb logcat -v time "*:W" 打印Warning级别以上的日志,*待别所有tag
  2. adb logcat ActicityManager:D "*:S" 过滤tag为ActivityManager、级别为Debug及以上的日志
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号