adb的常见操作和命令

        最近学习adb的时候,整理了一些adb的使用场景,如:adb与设备交互,adb的安装、卸载,adb命令启动,通过命令清除缓存,文件传输和日志操作。

        adb的两大作用:在app测试的时候可以提供监控日志方便定位问题,可以进行自动化很多,很多软件可以进行自动化测试都是对adb进行了封装和调用。

1.adb与设备交互

        我们在测试app的时候,可以选择真机,也可以选择在模拟器上进行测试,模拟器给我们提供了更大的可选择范围,常用的模拟器如下:

  • Android Studio emulator(官方)
  • Genymotion(依赖网络)
  • mumu,雷电,夜神,逍遥等第三方模拟器(强烈推荐)

1.1.adb连接手机设备

1.1.1.连接模拟器

        在这里我们以MuMu模拟器为例来进行连接,在windows上和mac电脑上会有所不同。

        windows:

adb connect 127.0.0.1:7555    #MuMu的端口是7555,其它模拟器的端口可以看各自官网。

         Mac:

adb kill-server    #杀掉之后会自动重启然后连接
1.1.2.连接真机

        手机通过usb线连接到电脑上,然后手机开启调试模式,在电脑端安装手机驱动。

1.2.adb查看设备状态

1.2.1.查看状态命令

        可以通过以下两个命令来查看设备的连接状态。

        命令一:

adb devices

        命令二:

adb get-state

1.2.2.设备状态分类:
  • device 正常
  • offline 连接出现异常,设备无响应
  • unauthorized 未授权

2.adb安装卸载应用

2.1.安装

        普通安装,命令:adb install <apk路径>,安装包可以在app官网下载或者通过豌豆荚等第三方助手来下载。

        比如安装微信:

覆盖安装,命令:adb install -r <apk路径>,覆盖安装会将之前的进行覆盖。

2.2.卸载

2.2.1.卸载命令

卸载应用命令:

adb uninstall 包名

卸载应用(不删除配置文件,保存数据缓存信息),命令:

adb uninstall -k 包名

2.2.2.查看包名

方式一:

        卸载app需要知道app的包名,可以通过如下命令来获得。

adb shell
cd /data/data
ls

        执行ls命令的时候系统可能会提示:opendir failed, Permission denied

        解决方法:在模拟机上开启root权限,然后执行su命令后再进入data/data目录然后执行ls命令。

方式二:

        如果安装的是第三方应用可以通过这个命令进行查看。

adb shell pm list packages -3

3.adb命令启动页面

3.1.获取页面的activity

3.1.1.已打开页面

        命令:

adb shell "dumpsys window | grep mCurrentFocus"

        如打开的微信页面,然后执行命令可以获取当前页面的名称

3.1.2.动态启动页

        动态启动页面可能有多个activity但是实际上只有一个是可用的,直接从当前已打开页面获取的不一定保真,可以通过下面命令获取到所有的,然后进行尝试。

        命令:

win:adb logcat ActivityManager:I | findstr "cmp"
mac:adb logcat ActivityManager:I | grep "cmp"

        例如进入微信注册页面。

3.2.启动页面

        命令:

adb shell am start -n <包名>/<avticity名>

        比如自动打开微信注册页面,使用上面获取到的avticity。

adb shell am start -n "com.tencent.mm/.plugin.account.ui.RegByMobileRegAIOUI"

启动命令报错:

C:\Users\29442>adb shell am start -n "com.tencent.mm/com.tencent.mm.plugin.account.ui.RegByMobileRegAIOUI"
Starting: Intent { cmp=com.tencent.mm/.plugin.account.ui.RegByMobileRegAIOUI }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.tencent.mm/.plugin.account.ui.RegByMobileRegAIOUI } from null (pid=3579, uid=2000) not exported from uid 10035
        at android.os.Parcel.readException(Parcel.java:1620)
        at android.os.Parcel.readException(Parcel.java:1573)
        at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2726)
        at com.android.commands.am.Am.runStart(Am.java:875)
        at com.android.commands.am.Am.onRun(Am.java:359)
        at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
        at com.android.commands.am.Am.main(Am.java:100)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:259)

        解决方法:

adb root
adb shell am start -n "com.tencent.mm/com.tencent.mm.plugin.account.ui.RegByMobileRegAIOUI"

4.adb命令清除缓存

adb shell pm clear <包名>

5.adb文件传输

  • adb push 电脑路径 设备路径
  • adb pull 设备路径 电脑路径

6.adb日志操作

        命令:

adb logcat

        查看日志常用的参数:

  • adb logcat   打印默认日志数据
  • adb logcat -v time 打印时间
  • adb logcat -v color 使用不同的颜色来显示每个优先级
  • adb logcat -f <filename> 将日志输出到文件
  • adb logcat > log.log 保存日志到PC上
  • adb logcat -c 清理已存在的日志

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

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

相关文章

[AIGC] Nginx常用变量详解

Nginx非常强大&#xff0c;其主要功能包括HTTP服务器、反向代理、负载均衡等。Nginx的配置中有许多内置的变量&#xff0c;你可以在配置文件中使用这些变量进行灵活的配置。在本篇文章中&#xff0c;我们将介绍一些Nginx中常见的变量&#xff0c;包括proxy_add_header。 常见变…

基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................................... …

文章结尾,铺垫下一章带来的期待

你是否容易在阅读时打瞌睡? 是否有很多买回来的书,放在书架上一年甚至几年都未读完,积满了灰尘? 但是,对于小说和电视剧,你却完全停不下来。每集片尾的预告激发了你持续观看下一集的渴望,带来了无限的期待…… 当你撰写文章或编写工具书时,内容可能呈现出乏味的面貌…

轻松放大图片600%,Topaz Gigapixel AI图片无损清晰放大软件下载安装

Topaz Gigapixel AI 该软件拥有卓越的性能和先进的技术&#xff0c;能够轻松实现图像的精细放大&#xff0c;最多可将图像放大至原始尺寸的六倍&#xff0c;而无需担心图像质量的损失。 相较于传统的图像放大软件&#xff0c;Topaz Gigapixel AI 表现出了明显的优势。传统软件…

基于双PI结构FOC闭环控制的永磁同步电机控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于双PI结构FOC闭环控制的永磁同步电机控制系统simulink建模与仿真。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 64 4.系统原理简介 永磁同步电机&a…

Java基础:异常(三)

Java基础&#xff1a;异常&#xff08;三&#xff09; 文章目录 Java基础&#xff1a;异常&#xff08;三&#xff09;1. Java异常体系1.1 错误的分类1.2 异常的分类 2. 异常的捕获与处理2.1 try-catch2.2 finally 3. 异常的抛出4. 自定义异常 1. Java异常体系 Java的异常体系是…

解决Springboot服务启动报错:“Reason: Failed to determine suitable jdbc url”

1、错误详情 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine sui…

【Qt秘籍】[004]-Qt中的重要工具-介绍

QtCreator概览 当我们打开系统的菜单翻到刚刚下载的Qt文件&#xff0c;里面的内容却让我们眼花缭乱。 不过别急&#xff0c;下面我们将一一解析。 1.Assistant Qt自带的离线版本官方文档 2.Designer Qt图形化设计界面的工具&#xff0c;通过拖拽控件快速生成界面&#xff0c…

当消费遇上AI:大模型如何成为行业“网红”?

在一个繁忙过后的周五晚上&#xff0c;美食发烧友Melissa和朋友痛快的享受了一顿海底捞火锅&#xff0c;餐毕&#xff0c;她像往常一样留下了服务评价&#xff0c;及时反馈是一位美食家的基本素养。 每天如同Melissa一样留下评价的客人不在少数&#xff0c;他们的真实体验反馈…

期权具体怎么交易详细的操作流程?

期权就是股票&#xff0c;唯一区别标的物上证指数&#xff0c;会看大盘吧&#xff0c;交易两个方向认购做多&#xff0c;认沽做空&#xff0c;双向t0交易&#xff0c;期权具体交易流程可以理解选择方向多和空&#xff0c;选开仓的合约&#xff0c;买入开仓和平仓没了&#xff0…

【小呆的力学笔记】连续介质力学的知识点回顾二:应变度量

文章目录 3. 格林应变与阿尔曼西应变 3. 格林应变与阿尔曼西应变 变形体在变形前的线元 O A → \overrightarrow{OA} OA &#xff0c;在变形后变成 o a → \overrightarrow{oa} oa &#xff0c;那么应变应该度量这种线元变形前后的差别。 ∣ o a → ∣ 2 − ∣ O A → ∣ 2 …

计算机体系结构-2024期末考试

前言 最后一个字落笔&#xff0c;虽然知道并没有发挥到最好&#xff0c;内心还是感慨良多。 真正意义上本科阶段的课程考试&#xff0c;到此就结束了。 正如青春总有不完美的地方&#xff0c;此刻思绪竟飘到了三年前的盛夏&#xff0c;那个骄傲的少年。 扯远了&#xff0c;…

物联网应用系统与网关

一. 传感器底板相关设计 1. 传感器设计 立创EDA传感器设计举例。 2. 传感器实物图 3. 传感器测试举例 测试激光测距传感器 二. 网关相关设计 1. LORA&#xff0c;NBIOT等设计 2. LORA&#xff0c;NBIOT等实物图 3. ZigBee测试 ZigBee测试 4. NBIoT测试 NBIoT自制模块的测试…

kafka-主题创建(主题操作的命令)

文章目录 1、topic主题操作的命令1.1、创建一个3分区1副本的主题1.1.1、获取 kafka-topics.sh 的帮助信息1.1.2、副本因子设置不能超过集群中broker的数量1.1.3、创建一个3分区1副本的主题1.1.4、查看所有主题1.1.5、查看主题详细描述 1、topic主题操作的命令 kafka发送消息会存…

mysql连接池的实现

概要&#xff1a;本文介绍mysql连接池的实现&#xff0c;要求读者了解线程池 一、为什么需要mysql连接池&#xff1f; 资源复用 &#xff1a;不使用连接池&#xff0c;每次数据库请求都新建一条连接&#xff0c;将耗费系 统资源。 流程如下&#xff1a; 通过三次握手建立 TC…

海博思创储能系统产品再获认可,获得杰出项目类别入围资格

近日&#xff0c;2024年欧洲智慧能源展览会大奖&#xff08;The smarter E AWARD 2024&#xff09;公布了入围名单&#xff0c;该奖项设有五个类别&#xff1a;光伏、储能、电动出行、智能综合能源和杰出项目奖&#xff0c;旨在表彰能源领域中的卓越创新成果。 在入围项目中&a…

linux线程,线程控制与线程相关概念

线程概念 线程这个词或多或少大家都听过&#xff0c;今天我们正式的来谈一下线程&#xff1b; 在我一开始的概念中线程就是进程的一部分&#xff0c;一个进程中有很多个线程&#xff0c;这个想法基本是正确的&#xff0c;但细节部分呢我们需要细细讲解一下&#xff1b; 什么…

Web渗透-MySql-Sql注入:联合查询注入

SQL注入&#xff08;SQL Injection&#xff09;是一种网络攻击技术&#xff0c;攻击者通过将恶意的SQL代码插入到应用程序的输入字段&#xff0c;从而欺骗应用程序执行未经授权的操作。这种攻击方式可以导致严重的安全问题&#xff0c;包括&#xff1a; 数据泄露&#xff1a;攻…

HCIP-Datacom-ARST自选题库__BGP多选【22道题】

1.BGP认证可以防止非法路由器与BGP路由器建立邻居&#xff0c;BGP认证可以分为MD5认证和Keychain认证&#xff0c;请问以下哪些BGP报文会携带BCGP Keychain认证信息?(报头携带) open Update Notication Keepalive 2.传统的BGP-4只能管理IPv4单播路由信息&#xff0c;MP-B…

数据库(10)——图形化界面工具DataGrip

以后关于数据库的图片演示就使用DataGrip了 : ) 创建数据库和表 在连接上数据库之后&#xff0c;可以选择Schema创建一个新的数据库。 点击OK后&#xff0c;就已经创建了一个空的表。 要在数据库中建立一张新的表&#xff0c;右键数据库&#xff0c;点击new table 要给新表添…