当前位置: 首页 > 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()

相关文章:

ADB使用经验

adb是Android Debug Bridge的缩写&#xff0c;是一种用于与Android设备通信的命令行工具。它可以通过USB连接或Wi-Fi连接&#xff0c;允许开发者在计算机和Android设备之间进行文件传输、安装应用程序、调试应用程序等操作。要使用adb&#xff0c;需要先将Android设备与计算机连…...

详解LinkedHashSet和LinkedHashMap

目录 一.LinkedHashSet和LinkedHashMap 1.基本介绍 2.与HashSet和HashMap的区别 3.LinkedHashSet和LinkedHashMap具体的方法 1.LinkedHashSet 2.LinkedHashMap 二.模拟代码实现LinkedHashMap 三.具体应用 一.LinkedHashSet和LinkedHashMap 1.基本介绍 顾名思义,根据名…...

C++ LinuxWebServer 2万7千字的面经长文(下)

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的在读研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; Linux Web Server项目虽然是现在C求职者的人手一个的项目&#xff0c;但是想要吃透这个项目&#xff0c;还是…...

RK3568平台开发系列讲解(驱动基础篇)IO 模型的分类

🚀返回专栏总目录 文章目录 一、阻塞 IO二、非阻塞 IO三、IO 多路复用四、信号驱动五、异步 IO沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将针对IO模型进行分类。 假设有这样一个场景,从磁盘中循环读取 100M 的数据并处理,磁盘读取 100M 需要花费 20 秒的…...

ChatGPT 有哪些 “激动人心的时刻“?以及自己的一些思考

文章目录一、前言二、主要内容三、一些思考&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 近日&#xff0c;英伟达创始人兼 CEO 黄仁勋与 OpenAI 联合创始人及首席科学家伊尔亚-苏茨克维 (Ilya Sutskever) 展开了一次 “炉边谈话”。 黄仁…...

Thingsboard开源物联网平台智慧农业实例快速部署教程(二)【手把手部署UI与动态数据】

Thingsboard开源物联网平台智慧农业实例快速部署教程&#xff08;二&#xff09;【部署UI与动态数据】 文章目录Thingsboard开源物联网平台智慧农业实例快速部署教程&#xff08;二&#xff09;【部署UI与动态数据】1. 页面总览2. 设备2.1 数据字段定义2.2 设备映射关系2.3 添加…...

Redis事务

1、事务概要 Redis事务是一个单独的隔离操作&#xff1a; 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用 串联多个命令&#xff0c;防止别的命令插队。 事务的3个命令 MultiExe…...

【蛤蟆先生去看心理医生】

第一章 整个人都不太好 人物性格描述蛤蟆热情、时尚、爱冒险&#xff0c;现在抑郁&#xff0c;不能自拔獾智慧、威严河鼠关心朋友&#xff0c;有点絮叨鼹鼠体贴善良 第二章 擎友前来相助 讲诉了鼹鼠和河鼠对蛤蟆情况的担忧和讨论。鼹鼠回忆起过去蛤蟆时髦的打扮和充满活力的生…...

JAVA开发与运维(云安全产品)

在现在的开发和运维中&#xff0c;云生态组件的使用率非常高&#xff0c;很少公司自己维护自己的物理机&#xff0c;网络流量 &#xff0c;监控&#xff0c;第三方中间件&#xff0c;除了少数涉密程度高的部分和公司外&#xff0c;大多数的企业都在使用云生态。比如我们正在开发…...

[Few-shot learning] Siamese neural networks

这篇文章主要介绍的是Siamese Neural Network经典论文&#xff1a; Gregory Koch, et al., Siamese Neural Networks for One-shot Image Recognition. ICML 2015。 神经网络能够取得非常好的效果得益于使用大量的带标签数据进行有监督学习训练。但是这样的训练方法面临两个难题…...

利用qiankun框架在自己项目中集成拖拽式低代码数据可视化开发平台

目前微前端已经是很成熟的技术了&#xff0c;各大公司都推出了自己的微前端框架&#xff0c;比如蚂蚁的qiankun&#xff0c;京东的micro-app&#xff0c;如果你的子应用不使用vite构建的话&#xff0c;我会更加推荐后者&#xff0c;micro-app使用更加简单&#xff0c;micro-app…...

【spring boot】在Java中操作缓存:

文章目录一、Jedis二、Spring Data Redis&#xff08;常用&#xff09;【1】pom.xml【2】application.yml【3】RedisConfig【4】RuiJiWaiMaiApplicationTests三、Spring Cache【1】常用注解&#xff1a;【2】使用案例【3】底层不使用redis&#xff0c;重启服务&#xff0c;内存…...

擂台赛-安全攻防之使用openssh后门获取root密码实战

前言 大家好&#xff0c;我是沐风晓月&#xff0c;我们开始组队学习了&#xff0c;介绍下我们的情况&#xff1a; 这几天跟队员 迎月&#xff0c;虹月&#xff0c;心月&#xff0c;古月打擂台&#xff0c;我和心月一组&#xff0c;相互攻占对方服务器。 终于在今早凌晨三点拿…...

关于React入门基础从哪学起?

文章目录前言一、React简介1. React是什么2. react 与 vue 最大的区别就是:3. React特点4. React介绍描述5. React高效的原因6.React强大之处二、React基础格式1.什么是虚拟dom&#xff1f;2.为什么要创建虚拟dom&#xff1f;三、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的区别

文章目录时间&#xff1a;2023年3月23日第一&#xff1a;什么是 Cookie 和 Session ?什么是 Cookie什么是 Session第二&#xff1a;Cookie 和 Session 有什么不同&#xff1f;第三&#xff1a;为什么需要 Cookie 和 Session&#xff0c;他们有什么关联&#xff1f;第四&#x…...

leetcode使用vscode调试C++代码

leetcode使用vscode调试C代码 这里记录一下大体思路吧&#xff0c;关于细节配置放上别的博主的链接&#xff0c;他们讲的更好 vscode只是编辑器&#xff0c;相当于记事本&#xff0c;需要下载minGW提供的编译器和调试器 官方介绍&#xff1a; C/C拓展不包括编译器或调试器&…...

树莓派Linux源码配置,树莓派Linux内核编译,树莓派Linux内核更换

目录 一 树莓派Linux的源码配置 ① 内核源码下载说明 ② 三种方法配置源码 二 树莓派Linux内核编译 ① 内核编译 ② 编译时报错及解决方案&#xff08;亲测&#xff09; 三 更换树莓派Linux内核 操作步骤说明 ● dmesg报错及解决方案&#xff08;亲测&#xff0…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性&#xff0c; 令样式只作用于当前组件的标签 作用&#xff1a;防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...

循环语句之while

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…...

codeforces C. Cool Partition

目录 题目简述&#xff1a; 思路&#xff1a; 总代码&#xff1a; https://codeforces.com/contest/2117/problem/C 题目简述&#xff1a; 给定一个整数数组&#xff0c;现要求你对数组进行分割&#xff0c;但需满足条件&#xff1a;前一个子数组中的值必须在后一个子数组中…...

Linux 进程管理学习指南:架构、计划与关键问题全解

Linux 进程管理学习指南&#xff1a;架构、计划与关键问题全解 本文面向初学者&#xff0c;旨在帮助你从架构视角理解 Linux 进程管理子系统&#xff0c;构建系统化学习路径&#xff0c;并通过结构化笔记方法与典型问题总结&#xff0c;夯实基础、明确方向&#xff0c;逐步掌握…...

【bat win系统自动运行脚本-双击启动docker及其它】

win系统自动化运行脚本 创建一个 startup.bat右键编辑&#xff0c;输入以下示例 echo off start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"timeout /t 5docker start your_container_namestart cmd /k "conda activate your_conda_e…...

【Zephyr 系列 14】使用 MCUboot 实现 BLE OTA 升级机制:构建安全可靠的固件分发系统

🧠关键词:Zephyr、MCUboot、OTA 升级、BLE DFU、双分区、Bootloader、安全固件管理 📌面向读者:希望基于 Zephyr 为 BLE 设备加入安全 OTA 升级功能的开发者 📊预计字数:5200+ 字 🧭 前言:为什么你需要 OTA? 随着设备部署数量增多与产品生命周期延长,远程升级(…...