adb命令操作

前言:

adb的全称为(Android Debug Bridge)就是调试桥的作用。Adb 命令存放在 SDK 的Tools文件夹下,又称为手机和电脑连接的桥梁命令。

借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:

  • 快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
  • 在设备上运行shell命令;
  • 管理设备或手机模拟器上的预定端口;
  • 在设备或手机模拟器上复制或粘贴文件。

adb命令操作

(闲话:最近看新闻说谷歌推出新的安卓后缀为aab;apk文件大家肯定都非常熟悉了,目前安卓应用程序都是基于apk的应用程序包。而在2021年8月之后,apk有可能会成为历史,被aab(全称为:Android App Bundle)所取代,因为Android App Bundle不支持apk文件,所以后续安卓应用程序包后缀都将更新为aab格式。)

adb connect 模拟器的udid    # 让电脑和手机相连接

adb devices                          # 查看电脑连接手机的数量/基本信息

adb install apk路径               # 下载app    

adb install -r apk路径           # 覆盖安装app

adb uninstall 包名                # 卸载app

adb pull <手机路径>   <电脑路径>        # 从手机中拉取信息到本地电脑上

adb push <电脑路径>  <手机路径>      # 从本地电脑推送信息到手机上

adb bugreport                                      # 输出日志包括logcat日志,同时也包括功耗,cpu等信息日志

adb version                                          #  查看adb版本

adb shell pm list packages                  # 查看所有的应用包名

adb shell dumpsys activity                  # 查看当前活动的包的信息

adb shell dumpsys window | findstr mCurrentFocus             # 查看正在运行的包名

adb shell cat /proc/cpuinfo                                                    # 查看 cpu信息 (百度有参考文件)

adb shell wm size                                                                 # 查看分辨率

adb shell dumpsys battery                                                   # 查看电池信息 (百度有参考文件)

adb shell screencap -p /sdcard/sc.png                               # 截屏  (截屏在手机里面sdcard)

adb shell dumpsys batterystats 包名                                 # 获取包名应用的耗电量

adb shell getprop ro.build.version.release                          # 获取安卓系统版本号

adb shell  再输入su 再输入 cat /data/misc/wifi/*.conf        # 查看连接过的wifi 信息(前提是手机需要root,否则su命令无效)

adb shell cat /sys/class/net/wlan0/address                       # 获取mac地址(物理地址)

adb shell cat /proc/meminfo                                              #  查看当前内存占用

adb shell reboot                                                                         # 重启手机

adb shell top             #  查看设备cpu和内存占用情况(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)

adb shell top -m 6                                                           #  查看占用内存前6的app

adb shell top -n 1                                                            # 刷新一次内存信息,然后返回

adb shell procrank                                                          #  查询各进程内存使用情况

如果电脑突然无法连接虚拟机/真机时可进行adb服务关闭重启操作:

adb kill-server      # 关闭adb服务

adb start-server   # 启动adb服务

adb logcat -v time >电脑路径\文件.txt                                 # 打印日志文件并上传到电脑上

adb shell dumpsys package 包名         # 查询app相关详细信息,包括action,codepath,version,需要的权限等等信息

adb shell pm path 包名    # 查看app的路径

 adb shell am start -n 包名/.app程序入口事件名称    # 启动app

 adb shell pm clear 包名         # 删除与包相关的所有数据,清除数据和缓存

adb shell ps -ef |findstr com.sky.jisuanji        # 查看某个app的进程相关信息(有些安卓机不需要加 -ef )

 adb shell kill -9 pidNumber    # 杀掉某个进程,一般用于模拟某个bug复现 (kill -9强制杀死进程)

adb shell dumpsys meminfo 包名                  # 查看某一个app的内存占用

如果电脑连接多台设备的时候使用 -s 指定设备,进行安装卸载等操作

目前电脑上连接了两种设备;mumu模拟器 和 华为手机

adb -s 指定设备 install apk路径               # 在指定设备上下载app    

 

adb -s 指定设备 uninstall 包名                # 在指定设备上卸载app

进入手机超级终端

adb shell           #  进入安卓的linux系统,可使用部分linux命令进行操作 退出exit

例如,输入linux命令找到一个指定的文件夹(Movies): find / -name Movies -type d

然后cd 进入到Movies 文件夹内 :cd /data/media/0/Movies

再新建一个文件文件:echo hello,word > app.txt

在输入删除命令:rm - rf app.txt  Movies文件夹内的app.txt文件被删除

获取包名的命令:

1)aapt dump badging apk文件路径       # 反编译方式:直接查看apk的包名

2)adb shell dumpsys window | findstr mCurrentFocus     # 查看正在运行的包名

3)获取首次应用的活动名称可以通过 启动一次随机 monkey命令来获取(如果第二种获取包名的activity名称不对,可以通过下面的方式)

adb shell monkey -p 包名 -v -v -v 1

利用adb命令按住按键:

adb shell input keyevent KEYCODE_VOLUME_UP    # 按下音量减小键

 Android 键盘键名和键值列表   转载至:o小兵o :https://www.cnblogs.com/xiaozhaoboke/p/10029488.html

查看日志:

=======logcat 缓冲区日志 (包括radio,system,main,event);=======
radio 存放通信的日志,比如通话短信等;
event 是表示手机按键输出等事件日志等;
main 指的是手机的应用软件的日志
system 是系统组件日志

默认输出main 和system 的日志,如果需要指定,则使用:
adb logcat -b 指定缓冲区 如:adb logcat -b main
也可以输出到文件 adb logcat -b main >d:\main.log 

adb logcat [选项] [过滤项],其中选项和过滤项在中括号 [] 中,说明这是可选的。

adb logcat                # 查看手机操作系统所有日志信息

-s 选项:过滤日志标签 == 指定查看某个标签的日志信息

命令:adb logcat -s "VideoCapabilities"

 -c 选项:  清空所有的日志缓存信息

命令:adb logcat -c

-v 选项:  自定义日志格式:

adb logcat -v time:可以查看日志的输出时间;
adb logcat -v threadtime:可以查看日志的输出时间和线程信息;
adb logcat -v process:格式为“优先级(进程ID):日志信息"的日志;
adb logcat -v tag:格式为"优先级/标签:日志信息"的日志;
adb logcat -v thread:格式为"优先级(进程ID:线程ID)标签:日志内容"的日志;
adb logcat -v raw:只输出日志信息,不附加任何其他信息; (常用推荐)
adb logcat -v long:格式为“[日期时间进程ID:线程ID优先级/标签]日志信息”的日志;(常用推荐)

“-f”选项:

将日志输出到文件

命令:adb logcat -v long -f 手机的文件路径  或者 adb logcat -f 手机的文件路径 -v long

过滤项解析:过滤项格式:<tag>[:priority], 标签:日志等级,默认的日志过滤项是"*:I"

  • V:Verbose(明细);
  • D:Debug(调试);
  • I:Info(信息);
  • W:Warn(警告);
  • E:Error(错误);
  • F:Fatal(严重错误);
  • S:Silent(Superalloutput)(最高的优先级,可能不会记载东西)

举例:
1、显示Error以上级别的日志:adb logcat *:E

2、可以同时设置多个过滤器,如:adb logcat -s System:W,memtrack:E 输出System标签Warn以上级别和 memtrack 标签 Error 以上级别的日志

3、输出过滤日志级别的日志到指定文件

 写一个简单的批处理文件

===如何截屏并下载到PC的d:盘下的--批处理文件:
1,可以新建一个txt文件,然后在第一行把截屏命令输入进去,
2,在第二行输入从手机上下载文件到电脑上的命令
3,保存并命名成 .bat 格式,然后双击文件即可 ===

如下图:

常见错误及解决方法

1) 在输入adb命令时,显示 more than one device and emulator (表示不止一个设备连接)如果电脑连接多台设备,可以使用adb -s 包名(指定设备)shell  ;如果只有一台设备并且有 offline的状态,说明ADB本身的bug导致,需要重启应用

2) 使用adbshell命令时出错,如下图所示

问题分析:
出现此问题是由于端口占用引起,把占用端口的进程kill掉
解决方法:
adb nodaemon server
netstat- ano | findstr "5037”
然后去任务管理器关掉相应进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值