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()
相关文章:
ADB使用经验
adb是Android Debug Bridge的缩写,是一种用于与Android设备通信的命令行工具。它可以通过USB连接或Wi-Fi连接,允许开发者在计算机和Android设备之间进行文件传输、安装应用程序、调试应用程序等操作。要使用adb,需要先将Android设备与计算机连…...
详解LinkedHashSet和LinkedHashMap
目录 一.LinkedHashSet和LinkedHashMap 1.基本介绍 2.与HashSet和HashMap的区别 3.LinkedHashSet和LinkedHashMap具体的方法 1.LinkedHashSet 2.LinkedHashMap 二.模拟代码实现LinkedHashMap 三.具体应用 一.LinkedHashSet和LinkedHashMap 1.基本介绍 顾名思义,根据名…...
C++ LinuxWebServer 2万7千字的面经长文(下)
⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! Linux Web Server项目虽然是现在C求职者的人手一个的项目,但是想要吃透这个项目,还是…...
RK3568平台开发系列讲解(驱动基础篇)IO 模型的分类
🚀返回专栏总目录 文章目录 一、阻塞 IO二、非阻塞 IO三、IO 多路复用四、信号驱动五、异步 IO沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将针对IO模型进行分类。 假设有这样一个场景,从磁盘中循环读取 100M 的数据并处理,磁盘读取 100M 需要花费 20 秒的…...
ChatGPT 有哪些 “激动人心的时刻“?以及自己的一些思考
文章目录一、前言二、主要内容三、一些思考🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 近日,英伟达创始人兼 CEO 黄仁勋与 OpenAI 联合创始人及首席科学家伊尔亚-苏茨克维 (Ilya Sutskever) 展开了一次 “炉边谈话”。 黄仁…...
Thingsboard开源物联网平台智慧农业实例快速部署教程(二)【手把手部署UI与动态数据】
Thingsboard开源物联网平台智慧农业实例快速部署教程(二)【部署UI与动态数据】 文章目录Thingsboard开源物联网平台智慧农业实例快速部署教程(二)【部署UI与动态数据】1. 页面总览2. 设备2.1 数据字段定义2.2 设备映射关系2.3 添加…...
Redis事务
1、事务概要 Redis事务是一个单独的隔离操作: 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用 串联多个命令,防止别的命令插队。 事务的3个命令 MultiExe…...
【蛤蟆先生去看心理医生】
第一章 整个人都不太好 人物性格描述蛤蟆热情、时尚、爱冒险,现在抑郁,不能自拔獾智慧、威严河鼠关心朋友,有点絮叨鼹鼠体贴善良 第二章 擎友前来相助 讲诉了鼹鼠和河鼠对蛤蟆情况的担忧和讨论。鼹鼠回忆起过去蛤蟆时髦的打扮和充满活力的生…...
JAVA开发与运维(云安全产品)
在现在的开发和运维中,云生态组件的使用率非常高,很少公司自己维护自己的物理机,网络流量 ,监控,第三方中间件,除了少数涉密程度高的部分和公司外,大多数的企业都在使用云生态。比如我们正在开发…...
[Few-shot learning] Siamese neural networks
这篇文章主要介绍的是Siamese Neural Network经典论文: Gregory Koch, et al., Siamese Neural Networks for One-shot Image Recognition. ICML 2015。 神经网络能够取得非常好的效果得益于使用大量的带标签数据进行有监督学习训练。但是这样的训练方法面临两个难题…...
利用qiankun框架在自己项目中集成拖拽式低代码数据可视化开发平台
目前微前端已经是很成熟的技术了,各大公司都推出了自己的微前端框架,比如蚂蚁的qiankun,京东的micro-app,如果你的子应用不使用vite构建的话,我会更加推荐后者,micro-app使用更加简单,micro-app…...
【spring boot】在Java中操作缓存:
文章目录一、Jedis二、Spring Data Redis(常用)【1】pom.xml【2】application.yml【3】RedisConfig【4】RuiJiWaiMaiApplicationTests三、Spring Cache【1】常用注解:【2】使用案例【3】底层不使用redis,重启服务,内存…...
擂台赛-安全攻防之使用openssh后门获取root密码实战
前言 大家好,我是沐风晓月,我们开始组队学习了,介绍下我们的情况: 这几天跟队员 迎月,虹月,心月,古月打擂台,我和心月一组,相互攻占对方服务器。 终于在今早凌晨三点拿…...
关于React入门基础从哪学起?
文章目录前言一、React简介1. React是什么2. react 与 vue 最大的区别就是:3. React特点4. React介绍描述5. React高效的原因6.React强大之处二、React基础格式1.什么是虚拟dom?2.为什么要创建虚拟dom?三、React也分为俩种创建方式1. 使用js的方式来创建…...
python玄阶斗技--tkinter库
目录 一.tkinter库介绍 二.功能实现 1.窗口创建 2.Button 按钮 3.Entry 文本输入域 4.text 文本框 5.Listbox 多选下拉框 6.Radiobutton 多选项按钮 7.Checkbutton 多选按钮 8.Scale 滑块(拉动条) 9.Scroolbar 滚动条 10.Menu 菜单栏 11. messagebox 消息框 12…...
【MySQL】MySQL的介绍MySQL数据库及MySQL表的基本操作
文章目录数据库的介绍什么是数据库数据库分类MySQL的介绍数据库的基本操作数据库的操作创建数据库查看所有数据库选中指定的数据库删除数据库常用数据类型数值类型字符串类型日期类型表的操作创建表查看指定数据库下的所有表查看指定表的结构删除表小练习数据库的介绍 什么是数…...
【每日随笔】社会上层与中层的博弈 ( 技术无关、没事别点进来看 | 社会上层 | 上层与中层的保护层 | 推荐学习的知识 )
文章目录一、社会上层二、上层与中层的保护层三、推荐学习的知识一、社会上层 社会上层 掌握着 生产资料 和 权利 ; 社会中层 是 小企业主 和 中产打工人 ; 上层 名额有限 生产资料所有者 : 垄断巨头 , 独角兽 , 大型企业主 , 大型企业股东 , 数量有限 ;权利所有者 : 高级别的…...
Cookie 和 Session的区别
文章目录时间:2023年3月23日第一:什么是 Cookie 和 Session ?什么是 Cookie什么是 Session第二:Cookie 和 Session 有什么不同?第三:为什么需要 Cookie 和 Session,他们有什么关联?第四&#x…...
leetcode使用vscode调试C++代码
leetcode使用vscode调试C代码 这里记录一下大体思路吧,关于细节配置放上别的博主的链接,他们讲的更好 vscode只是编辑器,相当于记事本,需要下载minGW提供的编译器和调试器 官方介绍: C/C拓展不包括编译器或调试器&…...
树莓派Linux源码配置,树莓派Linux内核编译,树莓派Linux内核更换
目录 一 树莓派Linux的源码配置 ① 内核源码下载说明 ② 三种方法配置源码 二 树莓派Linux内核编译 ① 内核编译 ② 编译时报错及解决方案(亲测) 三 更换树莓派Linux内核 操作步骤说明 ● dmesg报错及解决方案(亲测࿰…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
