adb命令学习记录

1、
adb ( android debug bridge)安卓调试桥,用于完成电脑和手机之间的通信控制。
xcode来完成对于ios设备的操控,前提是有个mac电脑。
安卓系统是基于linux内核来进行开发的。

2、adb的安装:
本身 adb是 android SDK 其中自带的工具,用于完成电脑和手机之间的通信控制。
最简单的使用方法:
将adb的三个必备文件,放到自己的电脑目录上,配置环境变量path就可以用。
推荐 安装SDK:
http://toolsandroid studio,org/index.php/sdk
下载zip包,解压即可。
解压之后,将sdk的platform-tools配置到环境变量path里。
adb version 用于查看版本,验证配置成功。

3、将设备和电脑连接起来:
先安装个模拟器:mumu /夜神

  • 打开手机上的 开发者选项,通过点击手机版本号7次

  • 开发者选项中,打开usb调试。

  • 以夜神为例,连接模拟器设备
    adb connect 127.0.0.1:62001
    mumu: adb connect 127 .0.0.1:7555

  • 连接完成之后,用 adb devices 命 查看当前连接的设备,注意后面的device表示连接成功

4、 常用的adb命令:

  • adb shell :用于进入安卓系统进行操作。 基本的linux命令都可以直接进行使用。
    在这里插入图片描述

    exit命今用于退出 安卓系统,回到windows系统。

  • 文件的基本操作:

    adb install [apk包路径]: 将apk安装包安装到手机上
    ’、

    adb uninstall [安卓系统中应用的包名 (packaqe) ]: 卸载应用
    在这里插入图片描述

  • 下载上传文件:
    adb pull [手机上的文件路径] [电脑上的目标目录]:
    adb push [电脑上的目标目录][手机上的文件路径] : 将电脑上的文件上传到手机
    在这里插入图片描述

  • 包管理 (pm) 操作:
    adb shell pm list package :列出手机中安装的所有应用的package名字。
    -3参数:用于列出第三方在执行的时候,实际上是先通过adb shell进入安卓手机系统,然后调用手机中的 pm命令:放在system/bin日录下的pm脚本。
    如果在安卓系统中执行的话,就只需要执行 pm list package -3了
    在这里插入图片描述

  • 页面管理(am activity manager)操作: 手机应用中的每个页面就是一个activity.
    启动应用,需要通过应用的启动activity来完成调用。
    adb shell am start -W -S [包名]/[启动activity名] 启动对应的应用。

  • 获取应用的activity:

    1、adb shell dumpsys activity|findstr “mFocuse”
    在这里插入图片描述

    一定注意,使用这个命令的时候,打开你的被测应用。
    实际上获取的是当前应用打开的activtiy名,有可能并不是启动用的activity
    2、使用sdk中的 aapt工具 来进行apk包的解析。
    获取到的一定是启动用的activtiy。
    在这里插入图片描述
    3、adb shell monkey -p [被测包] -v -v -v 1
    通过查看日志信息中,找到using开头的哪一句,其中的activity名字就是启动页面
    在这里插入图片描述
    在这里插入图片描述

5、adb完成自动化操作:

1、先获取包名 adb shell pm list package -3
2、根据包名获取应用的启动activity
adb shell monkey -p [被测包] -v -v -v 1
3、根据获取到的activity名字,启动应用“
adb shell am start -W -S com.tencent.mobileqq/.activity.SplashActivity
4、按顺序执行 input操作,完成对手机的控制。
5、写成个bat脚本

写成个bat脚本内容,rem为bat脚本的注释

rem 启动应用
adb shell am start -W -S com.tencent.mobilegg/.activity.SplashActivity
rem等待
ping 127.0.0.1 -n 3
rem 点击用户名框
tap 471 425adb shell input
rem 点击刚除的x
tap 704 437adb shell input
ping 127.0.0.1n 1
rem 输入用户名
adb shell input text 2798145476
ping 127.0.0.1 -n 1
rem 输入密码
adb shell input tap 446 572
ping 127.0.0.1 -n 1
adb shell input text royl23456
rem 点击登录按钮
ping 127.0.0.1 -n 1
adb shell input tap 446 812

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238566.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目必备手册-项目计划书

项目开发计划包括项目描述、项目组织、成本预算、人力资源估算、设备资源计划、沟通计划、采购计划、风险计划、项目过程定义及项目的进度安排和里程碑、质量计划、数据管理计划、度量和分析计划、监控计划和培训计划等。 软件全资料获取:点我获取

充分发挥SQL能力之数列

SQL数列 1、数列概述2、SQL数列2.1、简单递增序列2.2、等差数列2.3、等比数列3、SQL数列的应用3.1、连续问题3.2、多维分析1、数列概述 数列是最常见的数据形式之一,实际数据开发场景中遇到的基本都是有限数列。常见的数列例如:简单递增序列、等差数列、等比数列等 如何充分…

(新手必看)自定义数据传输通信协议+STM32代码详解

前言 本篇博客主要学习和了解一些单片机协议的格式,在对传输大数据或者要求准确性的时候,都需要通过协议来发送接收,下面通过了解协议的基本构成和代码来分析和实现协议的发送和接收。本篇博客大部分是自己收集和整理,如有侵权请联…

yolov8 onnx推理

前言:yolov8的后处理在某些情况下会导致转模型失败,因此需要把后处理剥离出来。 代码需要做如下修改: 改完后,网络会有三个输出,如图: 最后,用python写网络的后处理: import onn…

用心研发好产品:健康品牌podeey是如何做到的?

在分析消费者健康需求的同时,美国podeey能量生命有限公司(PODEEY Biotechnology LLC.)不断提升自主研发实力,并且一直注重汇集全球前沿的研发力量,与贵州宏臻菌业达成战略合作,始终致力于以科学技术为核心&…

软件测试HR总结的软件测试常见面试题

一、测试流程是什么样的? 1.产品确定需求后,邀请项目经理,开发,测试等人员参加需求评审会; 2.评审结束后开发根据需求文档和接口文档开发,测试制定测试计划和编写手工测试用例,测试脑图&#xf…

【Redis】深入理解 Redis 常用数据类型源码及底层实现(1.结构与源码概述)

在文章【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手中我们介绍了Redis常用的10大数据类型,这10大数据类型可并不是直接在底层通过代码实现的,而是通过不同的底层数据结构组合起来的,这篇我们介绍下Redis常用数据类型…

【LeetCode】每日一题 2023_12_12 下一个更大元素 IV(堆,优先级队列/单调栈)

文章目录 刷题前唠嗑题目:下一个更大元素 IV题目描述代码与解题思路 刷题前唠嗑 LeetCode?启动!!! 时隔两天,LeetCode 每日一题重新开张,流感已经不能阻挡我的脚步了! 题目&#x…

乐小鱼大理之行

在一个晴朗的日子里,乐小鱼和她的家人一起踏上了一场梦幻般的大理之行。他们驱车穿越沧山,眼前豁然开朗,洱海在阳光下泛着碧绿的光芒。 乐小鱼好奇地探出头,看到了连绵的山脉和湛蓝的湖水。她兴奋地说:“哇&#xff0…

【C++】类与对象(下)

本文目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 2. static成员2.1 概念2.2 特性 3. 友元3.1 友元函数3.2 友元类 4. 内部类5. 匿名对象6. 拷贝对象时的一些编译器优化7. 再次理解类和对象 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&am…

C++中的reverse函数

1.实现反转数组。 //头文件 #include <algorithm> //使用方法 reverse(a, an);//n为数组中的元素个数 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; int main() {int a[100];int n,k;cin >> n >> k; …

QT 入门

目录 QT 概述 QT5安装 QT环境介绍 编写第一个QT的程序 QT项目文件介绍 QT 概述 QT简介 QT是一个跨平台的C图形用户界面应用程序框架。它为程序开发者提供图形界面所需的所有功能。它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正地组件编程。 QT的发…

欣赏动态之美,不如欣赏C语言实现动态内存管理之美 ! ! !

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 &#xff01;&#xff0…

【WinRAR】为什么右键没有压缩选项?

我们安装了WinRAR之后想要压缩文件&#xff0c;但是右键点击文件之后发现并没有WinRAR压缩选项&#xff0c;这应该如何设置才能出现右键带有压缩选项呢&#xff1f;方法如下&#xff1a; 首先打开WinRAR&#xff0c;在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…

数据结构:栈(Stack)的各种操作(入栈,出栈,判断栈非空,判断栈已满,附源码)

前言&#xff1a;在前面的文章中&#xff0c;我们讲解了顺序表&#xff0c;单链表&#xff0c;双向链表。而我们今天要分享的栈则是基于之前的数据结构上搭建的&#xff0c;但是相较于顺序表和链表来说&#xff0c;栈的实现就非常简单了。 目录 一.栈(Stack)的概念 二.栈的数…

html创建电子邮件链接

refer: 可以在a标签里使用&#xff1a; <a href"mailto:nameemail.com">Email</a>

大模型元年压轴盛会定档12月28日,第十届WAVE SUMMIT即将启航

回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生成、逻辑、记忆四大能力显著提升&#xff0c;大语言模型为通用人工智能带来曙光。 AI开发者们正在用算法和代码书写一个…

ABB直流调速器维修DCS550 DCS400 DCS402.0200

德国ABB维修包括&#xff1a;直流调速器维修&#xff0c;伺服驱动器维修&#xff0c;变频器维修&#xff0c;伺服放大器维修&#xff0c;工控机维修&#xff0c;触摸屏维修 ABB直流调速器故障分析: 1、脱扣电流变压器过热引起的直流电机。 发现问题的根源在夏季常见或室内条…

聊天记录年度报告一览无余:轻松多格式导出永久保存,深度智能分析

聊天记录年度报告一览无余&#xff1a;轻松多格式导出永久保存&#xff0c;深度智能分析 1.功能简介效果展示 一个用于提取微信聊天记录的工具&#xff0c;支持将聊天记录导出成HTML、Word、CSV文档&#xff0c;以实现永久保存。此外&#xff0c;该工具还具有对聊天记录进行分…

Java 三元运算符

条件为真执行表达式1&#xff0c;条件为假执行表达式2&#xff0c;有点像if else语句&#xff0c;三目运算符的目的就是简化if else的编写形式。 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</title> <…