当前位置: 首页 > news >正文

ADB使用经验

adb是Android Debug Bridge的缩写,是一种用于与Android设备通信的命令行工具。它可以通过USB连接或Wi-Fi连接,允许开发者在计算机和Android设备之间进行文件传输、安装应用程序、调试应用程序等操作。要使用adb,需要先将Android设备与计算机连接,并确保设备允许USB调试模式。然后,在计算机的命令行界面上输入adb命令,后面加上相应的参数即可执行各种操作。例如,adb devices 命令可以列出已连接的Android设备,adb install 命令可以将一个apk文件安装到Android设备上。可以通过 adb --help 命令来获取更多的adb命令及其用法。

我们可以使用adb实现手机的自动化

1.下载adb:

Android SDK环境

①SDK官方下载地址:https://developer.android.com/studio/releases/platform-tools

②将下载下来的SDK解压后按照下图配置环境变量(这里的变量值为自己解压后的SDK路径)

然后再在path中加入这两条路径即可:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

最后在cmd中输入adb有如下提示表示安装成功

2.连接手机:

手机和电脑肯定要在统一局域网内,即连接同一个WIFI。

1.打开手机开发者模式,并通过USB接口连接电脑。

2.打开手机的开发者模式,勾选USB调试,和“仅充电”模式下允许ADB调试(这两步很重要)

(其他手机有adb网络调试的也可以打开)

3.打开cmd终端输入adb devices

出现这个说明USB线连接成功

4.接着输入 adb tcpip 5555 (这个是从usb模式切换到无线连接,后面的5555为端口,可以指定其他的端口,前提是端口未被调用)

5.输入adb connect 192.168.xxxx.xxxx:5555 (192.168.xxxx.xxxx为你手机的ip地址,5555为了设置·的端口号)

出现这个说明连接成功 ,输入 adb devices 测试一下是否真的连接成功

想要断开输入

adb disconnect 手机ip //断开指定IP

adb disconnect //断开所有

6.这时可以拔下数据线了 ,输入adb devices

这样无线调试就成功了

第二次连接的时候无需数据线了,在保证电脑和手机在同一个局域网的情况下直接在cmd终端输入

adb connect 192.168.xxxx.xxxx:5555 (192.168.xxxx.xxxx为你手机的ip地址,5555为了设置·的端口号)就可以成功连接了

3.adb的常见命令:

获取当前启动app的包名和启动名
adb shell dumpsys window | findstr mFocusedApp 卸载软件
adb uninstall <软件名>
adb uninstall -k <软件名>
如果加 -k参数,  为卸载软件 但是保留配置和缓存文件
开启adb服务
adb start-server
关闭adb服务,杀掉进程
adb kill-server
连接设备
adb connect 设备ip(如:192.168.1.61)
如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过IP连接。上面192.168.1.61替换成想要连接设备的IP即可
断开设备
adb disconnect 设备ip(如:192.168.1.61)
清除应用数据与缓存
adb shell pm clear (apk包名)
获取文件的读写权限
adb remount
有些设备并不能直接adb remount,必须要先以root身份进入,先执行adb root,在执行adb remount
查询已安装包名列表
adb shell pm list package
对com.xx.mm包使用monkey命令
adb shell monkey -p com.xx.mm --throttle 200 50000
查找monkey进程信息
adb shell ps | find "monkey"
杀掉monkey进程,例子中的数字是monkey的PID进程号
adb shell kill 23770
重启手机
adb shell reboot
打开svc帮助界面
adb shell svc
查询wifi操作帮助
adb shell svc wifi
关闭wifi
adb shell svc wifi disable
打开wifi
adb shell svc wifi enable
擦除data,即恢复出厂设置
adb shell wipe data
指定查询"mF"的activity信息
adb shell dumpsys activity | find "mF"
启动指定activity
adb shell am start -n com.android.browser/.BrowserActivyty
查看am命令的帮助信息
adb shell am
清空logcat日志
adb logcat -c 
查看bug报告
adb bugreport
获取设备的ID和序列号
adb get-serialno

更多请看:

(4条消息) ADB 操作命令详解及用法大全_Lucas__liu的博客-CSDN博客

4.在python中使用adb:

# ---------多台手机刷视频-------------
#短视频平台通用
import os
import time
import sys
import random
import threadinga=130      #int(input('输入次数需要滑动的次数:'))  #刷多少个视频def phone1set():os.system('adb tcpip 5555') #使用adb打开无线开关,如果报错,此时请将手机与电脑先通过数据线连接,试运行一次后再拔掉数据线os.system('adb connect 192.168.1.16:5555') #连接手机的IP地址
#是否多台手机同时刷
def phone2set():os.system('adb tcpip 5556') #使用adb打开无线开关,如果报错,此时请将手机与电脑先通过数据线连接,试运行一次后再拔掉数据线os.system('adb connect 192.168.1.18:5556') #连接手机的IP地址def phone1():c=0while c<a: #循环运行os.system('adb -s 192.168.1.16:5555 shell input swipe 550 1300 550 350') #使用adb指令滑动手机time.sleep(random.randint(8,22)) #随机刷视频时间8-22秒之间c = c + 1print(f"手机1刷新{c}次")else:print("任务全部完成")fun=os.system('adb kill-server') #运行结束杀掉adb进程sys.exit("bye")def phone2():b=0while b<a:os.system('adb -s 192.168.1.18:5556 shell input swipe 550 1300 550 350')time.sleep(random.randint(8,20))b=b+1print(f"手机2刷新{b}次")else:print("任务全部完成")fun=os.system('adb kill-server')sys.exit("bye")def main():os.chdir(r"D:\SoftWare\Android SDK\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools") #切换到adb所在目录,调用adb工具phone1set()   #连接手机1time.sleep(5) #暂停5秒给手机电脑连接的反应时间phone2set()print("已连接设备名称如下:")print(os.system('adb devices')) #查看连接信息,可判断是否连接成功thread_phone1=threading.Thread(target=phone1) #启用多线程控制thread_phone1.start()thread_phone2=threading.Thread(target=phone2)thread_phone2.start()thread_phone2.join()thread_phone1.join()if __name__ == "__main__":
main()
http://www.lryc.cn/news/43397.html

相关文章:

  • 详解LinkedHashSet和LinkedHashMap
  • C++ LinuxWebServer 2万7千字的面经长文(下)
  • RK3568平台开发系列讲解(驱动基础篇)IO 模型的分类
  • ChatGPT 有哪些 “激动人心的时刻“?以及自己的一些思考
  • Thingsboard开源物联网平台智慧农业实例快速部署教程(二)【手把手部署UI与动态数据】
  • Redis事务
  • 【蛤蟆先生去看心理医生】
  • JAVA开发与运维(云安全产品)
  • [Few-shot learning] Siamese neural networks
  • 利用qiankun框架在自己项目中集成拖拽式低代码数据可视化开发平台
  • 【spring boot】在Java中操作缓存:
  • 擂台赛-安全攻防之使用openssh后门获取root密码实战
  • 关于React入门基础从哪学起?
  • python玄阶斗技--tkinter库
  • 【MySQL】MySQL的介绍MySQL数据库及MySQL表的基本操作
  • 【每日随笔】社会上层与中层的博弈 ( 技术无关、没事别点进来看 | 社会上层 | 上层与中层的保护层 | 推荐学习的知识 )
  • Cookie 和 Session的区别
  • leetcode使用vscode调试C++代码
  • 树莓派Linux源码配置,树莓派Linux内核编译,树莓派Linux内核更换
  • 【C语言】深度讲解 atoi函数 使用方法与模拟实现
  • HTTPS的加密流程
  • STM32配置读取BMP280气压传感器数据
  • 【Linux】 基础IO——文件(中)
  • 蓝桥杯刷题冲刺 | 倒计时13天
  • MIPI D-PHYv2.5笔记(5) -- 不同的PHY配置方式
  • 【周末闲谈】文心一言,模仿还是超越?
  • 《一“企”谈》 | 「佛山市政」:携手企企通,让采购业务数智化
  • Spark运行架构
  • 基于卷积神经网络CNN的水果分类预测,卷积神经网络水果等级识别
  • Spring Boot 框架总结