实用工具系列-ADB使用方式

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(WPS二次开发QQ群:250325397),摸鱼吹牛嗨起来!

目录

一、设备相关

查看设备

对指定设备操作

通过WiFi连接电脑和手机

重启设备

向手机输入框输入内容

二、APP信息分析相关

查看当前顶层应用包名和activity名称信息

查看手机应用版本信息

获取顶层界面的布局信息

查看Activity栈信息

截图

录屏

查看APP应用信息列表

三、文件操作

导出文件到电脑目录

将电脑文件导入到手机目录

安装apk到手机

四、调式开发相关

清除应用数据

卸载应用

暂停进程添加断点

清除进程启动断点中断

重启adb进程

monkey命令

五、日志分支

抓取基本日志

导出crash或者anr日志


一、设备相关

查看设备

adb devices

说明: 23a1d87b是设备唯一标识

对指定设备操作

adb -s <serial number> shell ls /sdcard
如:adb -s 23a1d87b shell ls /sdcard
说明: -s后面传设备唯一标识,如果只连接了一台设备,则"-s"参数可以省略,示例如下:

通过WiFi连接电脑和手机

前提:手机和电脑在同一局域网,如连接同一WiFi
adb tcpip 5555
adb connect <手机 ip>

如:adb tcpip 5555
   adb connect 10.226.10.68

重启设备

adb reboot
重启指定设备: adb -s 23a1d87b reboot

向手机输入框输入内容

adb shell input text xxx
如:adb shell input text abc
说明:前提是手机光标已聚焦输入框,输入命令后,内容会自动填充到输入框中。

二、APP信息分析相关

查看当前顶层应用包名和activity名称信息

Android10之前:adb shell dumpsys window windows | findstr mCurrent
Android10或者之后:adb shell dumpsys window windows | findstr mObscuringWindow
说明: 通过命令输出的信息可以看出顶层应用包名和activity的完整类名

查看手机应用版本信息

adb shell pm dump <package name> | findstr "versionName"

获取顶层界面的布局信息

adb shell uiautomator dump <target sdcard dir>
如:adb shell uiautomator dump /sdcard/ui.xml,将当前布局信息导出到/sdcard,生成的文件名为:ui.xml,将该文件导出到电脑即可打开查看

查看Activity栈信息

#查看Activity栈信息的时候打印出来的一个LRU的Activity列表,搜关键字:Visible recent tasks (most recent first)
adb shell dumpsys activity

截图

adb shell /system/bin/screencap -p /sdcard/screenshot.png

录屏

adb shell screenrecord /sdcard/demo.mp4

查看APP应用信息列表

 adb shell pm list packages

三、文件操作

导出文件到电脑目录

adb pull <mobile src file> <pc target file>
如:adb pull /sdcard/ui.xml d:\test\

将电脑文件导入到手机目录

adb push <pc src file> <mobile target file>
如: adb push d:/test/ui.xml /sdcard/ui.xml

安装apk到手机

adb install <-r> <-t> <file path>
参数说明: -r: 覆盖安装; -t: 安装debug模式app

四、调式开发相关

清除应用数据

adb shell pm clear <package name>
如:adb shell pm clear com.xxx.xxx

卸载应用

adb uninstall <packagename>
如:adb uninstall com.xxx.xxx

暂停进程添加断点

adb shell am set-debug-app -w <process name>
如: adb shell am set-debug-app -w com.xxx.xx
说明:调试多进程很有帮助,先执行后,当指定进程启动时会弹出系统对话框暂时,直到在AndroidStudio中添加断点为止,对应用启动分析非常有帮助。

清除进程启动断点中断

adb shell am clear-debug-app
说明:退出进程启动中断后,后面进程再启动就不会有中断系统对话框了。

重启adb进程

adb kill-server
说明: 有时adb出现问题后需重启adb进程,通过该命令可快速重启adb进程。

monkey命令

#对系统设置应用和计算器应用进行monkey测试共发送500个随机事件
adb shell monkey your.package.name 500

五、日志分支

抓取基本日志

adb logcat –b radio > <pc target path>
adb logcat –b system > <pc target path>
adb logcat –b events > <pc target path>
adb logcat –b main > <pc target path>
参数说明: 
    -b: 抓取指定类型的日志
    > path: 将日志内容输入到指定的文件
如:adb logcat –b main > d:\test\test.log

导出crash或者anr日志

adb bugreport
说明:导出是zip文件,里面包含了crash、anr和一些墓碑日志。

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

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

相关文章

C++ | Leetcode C++题解之第22题括号生成

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> res; //记录答案 vector<string> generateParenthesis(int n) {dfs(n , 0 , 0, "");return res;}void dfs(int n ,int lc, int rc ,string str){if( lc n && rc n…

如何应对Android面试官 -> ActivityManagerService 是怎么启动的?

前言 本章主要讲解下 什么是 AMS&#xff0c;以及它是如何启动的&#xff1b; SystemServer SystemServer 通过按下电源键接通电源之后就会启动 BootRoom&#xff0c;BootRoom 就会拉起一个 BootLoader 程序&#xff0c;此程序会拉起 Linux Kernel「系统内核」&#xff0c;我们…

小程序如何通过把动态数据值传入到css文件中控制样式

场景&#xff1a;动态改变一个模块的高度 一、常用解决方法&#xff1a;行内样式绑值&#xff0c;或者动态class来传递 <viewclass"box":style"height: ${boxHeight}px">我是一个动态高度的box,我的高度是{{boxHeight}}px </view>二、高度传…

关于Linux下的进程替换(进程篇)

目录 进程替换是什么&#xff1f; 进程替换需要怎样操作&#xff1f; 替换函数 命名理解 不创建子进程进行进程替换 关于替换程序时的写时拷贝 fork创建子进程进行替换 函数1&#xff1a;execl 函数2&#xff1a;execv 函数3&#xff1a;execlp 函数4&#xff1a;execvp…

python-study-day1-(病人管理系统-带sql)

MainWindow代码 from tkinter import * from tkinter import messagebox from tkinter.ttk import Comboboxclass MianWindow(Frame):def __init__(self, masterNone):super().__init__(master, padx30, pady20)self.flag 0self.pack(expandTrue, fillBOTH)self.id StringVa…

vue3:菜单、标签页和面包屑联动效果

文章目录 1.整体思路2.实现过程 概要 提示&#xff1a;这里可以添加技术概要 例如&#xff1a; openAI 的 GPT 大模型的发展历程。 1.整体思路 在之前做的后台项目中&#xff0c;菜单、标签页和面包屑之间的联动&#xff0c;自己都是通过在路由前置守卫中&#xff0c;定义b…

铭飞SQL注入严重信息泄露【附POC】

感谢您抽出 阅读本文 MCMS是一个<完整开源的Java CMS&#xff01;基于SpringBoot 2架构&#xff0c;前端基于vue、element ui。MCMS存在SQL注入漏洞&#xff0c;攻击者可通过该漏洞获取数据库敏感信息等。目前厂商暂未发布修复措施解决此安全问题&#xff0c;建议使用此软件…

配置QtCreator能加载自定义插件的环境

配置对应环境 引言查看当前版本配置能够加载插件的环境 引言 生成的自定义插件能在QtCreator的设计器中加载&#xff0c;需要满足当前使用的QtCreator的编译时所需的Qt库和编译器。 查看当前版本 这里需要先查看自己使用的QtCreator的版本&#xff0c;即生成QtCreator时使用…

【LeetCode】回溯算法类题目详解

所有题目均来自于LeetCode&#xff0c;刷题代码使用的Python3版本 回溯算法 回溯算法是一种搜索的方法&#xff0c;在二叉树总结当中&#xff0c;经常使用到递归去解决相关的问题&#xff0c;在二叉树的所有路径问题中&#xff0c;我们就使用到了回溯算法来找到所有的路径。 …

淘宝1688京东店铺所有商品数据接口(item_search_shop接口系列,可测试)

淘宝、1688和京东都提供了API接口供开发者调用&#xff0c;以获取店铺和商品的详细数据。对于您提到的item_search_shop接口系列&#xff0c;这主要是用于获取店铺所有商品的数据。然而&#xff0c;具体的接口名称和功能可能会因平台而异&#xff0c;且可能随着平台的更新而有所…

LigaAI x 极狐GitLab,共探 AI 时代研发提效新范式

近日&#xff0c;LigaAI 和极狐GitLab 宣布合作&#xff0c;双方将一起探索 AI 时代的研发效能新范式&#xff0c;提供 AI 赋能的一站式研发效能解决方案&#xff0c;让 AI 成为中国程序员和企业发展的新质生产力。 软件研发是一个涉及人员多、流程多、系统多的复杂工程&#…

微服务面试题二

1.什么是雪崩 微服务之间相互调用&#xff0c;因为调用链中的一个服务故障&#xff0c;引起整个链路都无法访问的情况。 如何解决雪崩&#xff1f; 超时处理&#xff1a;请求超时就返回错误信息&#xff0c;不会无休止等待仓壁模式&#xff1a;限定每个业务能使用的线程数&a…

cordova后台插件开发新手教程

typora-root-url: imags cordova后台插件开发新手教程 预安装环境&#xff1a;JDK11、Android studios、nodo.js 一、环境搭建 1.安装Cordova npm install -g cordova2.创建项目 cordova create 具体命令&#xff1a; cordova create 目录名 包名 项目名 执行结果终端&am…

大模型RAG(三)检索环节(Retriever)

1. 搜索索引 &#xff08;1&#xff09;向量存储索引 最原始的实现是使用平面索引 — 查询向量和所有块向量之间的暴力计算距离。根据索引选择、数据和搜索需求&#xff0c;还可以存储元数据&#xff0c;并使用元数据过滤器来按照日期或来源等条件进行信息检索。LlamaIndex 支…

【实战JVM】打破双亲委派机制之线程上下文类加载器

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

CS与MSF联动/shell互相反弹

Cs的shell反弹到msf 参考资料:https://blog.csdn.net/Zlirving_/article/details/113862910 先建立监听器 先建立一个监听器&#xff0c;和msf的要一一对应&#xff0c;上面的ip必须是可以ping通的大部分情况是外网ip Msf&#xff1a; use exploit/multi/handler set paylo…

Netty学习——实战篇1 BIO、NIO入门demo 备注

1 BIO 实战代码 Slf4j public class BIOServer {public static void main(String[] args) throws IOException {//1 创建线程池ExecutorService threadPool Executors.newCachedThreadPool();//2 创建ServerSocketServerSocket serverSocket new ServerSocket(8000);log.in…

高清无水印短视频素材去哪找?今天讲五个素材网站,记得收藏

在视频剪辑的世界里&#xff0c;我就像是那个经常带着一副老花镜在宝藏地图上寻宝的老海盗。每次寻宝之旅&#xff0c;我都能从九才素材网这个家门口的宝藏开始&#xff0c;然后驾驶我的老旧剪辑船&#xff0c;航向国际的深蓝大海&#xff0c;寻找那些只属于知情者的秘密宝藏。…

【C++进阶】C++异常详解

C异常 一&#xff0c;传统处理错误方式二&#xff0c;C处理的方式三&#xff0c;异常的概念四&#xff0c;异常的使用4.1 异常和捕获的匹配原则4.2 函数调用链中异常栈展开匹配原则4.3 异常的重新抛出&#xff08;异常安全问题&#xff09;4.4 RAII思想在异常中的作用 五&#…

使用Java+Maven+TestNG进行自动化测试

写作背景&#xff1a;有点Java基础的功能测试人员&#xff08;点点点工程师&#xff09;&#xff0c;所在项目有"去QE"的趋势&#xff0c;所以自己要多点亮其他技能&#xff0c;让路子走宽点。 简单说一下去QE&#xff1a;项目测试不再有专职的测试工程师来做&#x…