adb常用命令详解--提升开发效率利器

文章目录

      • 文件管理
      • 截屏与录屏
      • logcat 使用
      • dumpsys 相关
      • ps 相关
      • am 相关
      • pm 相关
      • wm 相关
      • setprop 设置属性
      • input 相关
      • adb connect 远程无线调试
      • 其它

本文首发地址 https://h89.cn/archives/281.html
最新更新地址 https://gitee.com/chenjim/chenjimblog

博主 Linux 使用较多,平时开发使用各种命令也比较多,之前写过一篇博文 安卓软件开发常用命令集合,其中 adb 相关命令最多,这里把 adb 相关抽离、补充完善。adb shell ls /system/bin/ 列出的命令均可以通过 adb shell 执行,本文主要介绍博主经常用到的命令使用及功能

文件管理

  • 导出文件到电脑
    adb pull /system/priv-app/ p-app
  • 推送文件到手机
    adb push ./out.so /system/lib64
  • rm/touch/mkdir/cp/mv/find/grep 使用同 Linux 命令
    adb shell rm /system/lib64/out.so

截屏与录屏

  • 截屏并导出文件到电脑
    adb exec-out screencap -p > screen.png
    adb shell input keyevent 120

  • 录屏
    adb shell screenrecord /sdcard/example.mp4
    adb pull /sdcard/example.mp4

logcat 使用

  • logcat 并用tee重定向输出到文件log.txt
    adb logcat |tee log.txt

  • logcat过滤关键字abc的日志
    adb logcat | grep abc grep在windows依赖C:\Program Files\Git\usr\bin\grep.exe
    adb shell "logcat | grep abc" 使用android系统的grep命令
    adb shell,然后 logcat | grep -iE "abc|def" 过滤包含 abc 或者包含 def 的内容,-i 表示忽略大小写
    adb shell,然后 logcat | grep abc | grep def" 过滤包含 abc 且包含 def 的内容

  • 只过滤tag为abc的日志
    adb logcat -s abc

  • 查看 events 日志
    adb logcat -b eventsevents,默认是 main,system,crash,可选项 main system radio events crash
    adb logcat -b all 可抓取所有(main+system+kernel+events等)日志
    更多 grep 用法,可参考 linux-grep

  • logcat 只抓去ERROR的日志
    adb logcat *:E
    更多 logcat 使用方法可以参考 android logcat

dumpsys 相关

可以通过 adb shell dumpsys -l 列出可以 dump 的模块

  • 当前acitivity信息
    adb shell dumpsys activity | grep mResumedActivity
    adb shell dumpsys activity | grep ActivityRecord 可以查看相关包名、Activity堆栈

  • 查看某服务是否正在运行
    adb shell "dumpsys activity services | grep YourServiceName"

  • 查看 window 层级 (安卓10以下可能不支持此命令)
    adb shell dumpsys activity containers

  • 应用的内存信息
    adb shell dumpsys meminfo com.android.camera
    可以连续监控,以查看是否存在内存泄露问题

  • 获取某个应用的版本号
    adb shell dumpsys package com.baidu.BaiduMap | grep version

  • 查看当前合成显示的 layers
    adb shell dumpsys SurfaceFlinger

  • 获取 input 状态
    adb shell dumpsys input
    可以输出 Input Manager StateEvent Hub StateInput Reader StateInput Dispatcher StateKeyboard LayoutsPersistentDataStore 这些信息在分析 Framework 中 input 模块问题至关重要。

  • 获取当前窗口状态
    adb shell dumpsys window
    adb shell dumpsys window displays 是上面的子集,近期任务(打开应用)列表
    adb shell dumpsys window windows 是上面的子集,有更多详细信息,比如 mDrawState=HAS_DRAWN 表示已经绘制,mDrawState=NO_SURFACE 表示未显示

ps 相关

  • 查看真正运行且包含 camera 关键字的进程
    adb shell ps -A |grep camera
  • 获取进程 com.android.camera 的 pid
    adb shell ps | grep "com.android.camera" | awk '{print $2}'

am 相关

  • 结束进程
    adb shell am force-stop com.chenjim.package 结束指定包名的应用
    adb shell pkill chenjim* 结束包名含有chenjim所有正在运行的应用

  • adb 触发应用 gc
    adb shell kill -10 23683 后面数值是进程 PID
    pid=$(adb shell ps | grep "com.android.camera" | awk '{print $2}') && adb shell kill -10 $pid 也可以直接执行此命令

  • 启动安卓原生 Launcher3 桌面应用
    adb shell am start -n com.android.launcher3/.Launcher

  • 启动安卓原生设置应用
    adb shell am start -n "com.android.settings/.Settings"

  • 启动安卓原生拨号应用
    adb shell "am start -n com.android.dialer/.DialtactsActivity"

  • 启动MTK工程模式 (##3646633## )
    adb shell am start -n com.mediatek.engineermode/.EngineerMode

  • 启动MTK日志应用mtklog ( *1973461# )
    adb shell am start -n com.mediatek.mtklogger/.MainActivity

  • 启动高通日志应用 ( *1973461# )
    adb shell am start -n com.hmct.ftmode/.FTModeMain

  • 发广播恢复出厂设置,不是所有设备都有效,其流程参考 链接
    adb shell am broadcast -a android.intent.action.MASTER_CLEAR

  • 发带参数广播如下,更多介绍参考 链接
    adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true

  • 启动服务Service
    adb shell am startservice -n com.chenjim.pkg/.YourService

pm 相关

  • 系统安装所有应用包名及位置
    adb shell "pm list packages -f " 列出所有应用安装位置
    adb shell "pm list packages -f | grep camera" 关键字过滤
    adb shell pm path com.android.camera 列出指定包安装位置

  • 清除应用数据(包含缓存)
    adb shell pm clear com.android.camera

wm 相关

  • 调整设备显示尺寸分辨率
    adb shell wm size 返回当前应用显示尺寸
    adb shell wm size 1600x2560 重新设置显示分辨率为 1600x2560 , 在适配一些特殊尺寸UI 是很有用

  • 调整设备屏幕密度
    adb shell wm density 获取当前屏幕密度,得到的结果比如 480
    adb shell wm density 320 相对上面的 480 ,界面元素会变小

setprop 设置属性

setprop 设置属性,getprop 可以获取属性

  • 设置系统属性
    adb shell setprop persist.sys.camera.sensor.enable true
    persist 表示重启断电不变,如果是 ro 等,重启就不存在了
    sys 表示系统模块,比如 sys、system、dev、default 或 config
    camera 表示 sys 的子模块
    sensor 表示字段的名称
    enable 表示字段的类型,并无具体的规则,使用建议:enableconfig
    可以通过 android.os.SystemProperties 在代码获取配置的值
    更多可参考 add-system-properties

  • 打开ipod debug模式
    输入如下命令,ipo关机后,adb仍然可以处于工作的状态。
    adb shell setprop ipod_debug 1

  • 获取 Settings.System.SHOW_KEY_PRESSES 的值
    adb shell settings get system show_key_presses

input 相关

  • 发送模拟按键事件
    adb shell input keyevent 21 其中 21 表示 KEYCODE_DPAD_LEFT
    更多 KeyEvent 含义参考 android.view.KeyEvent

  • 模拟点击某个点
    adb shell input tap 230 2065

  • 模拟滑动事件
    adb shell input swipe 500 1200 500 900 300
    在 300ms 从 [500,1200] 上滑到 [500,900]

  • 基于 windows 的 adb 自动按键测试 bat 脚本

    : 注释:bat文件默认字符集为ANSI,否则有乱码
    @echo off
    set times=5
    set gap=3
    echo 最多执行%times%次,每次间隔%gap%秒
    for /l %%i in (1,1,%times%) do (choice /t %gap% /d y /n >nuladb shell input keyevent 21echo 按键 KeyEvent.KEYCODE_DPAD_LEFT,当前第%%i%次
    )
    pause
    

adb connect 远程无线调试

  • 方法一:打开手机的开发者模式,开启 开发者选项,开启无线调试,如下图所示

    连接设备 adb connect 192.168.31.96:42005
    断开连接 adb disconnect 192.168.31.96:42005
  • 方法二:使用一些老旧设备,需要完全root权限,一般手机系统不行
    1. 手机连接电脑,执行 adb root (都可以USB线连接了,无线连接只能备用吧)
    2. 手机下载安装终端,并授权ROOT权限
      (MIUI系统开发版在菜单’设置–>应用设置–>授权管理->ROOT权限管理’)
      在终端 执行以下命令设置远程调试端口,并重启 adbd
      su
      setprop service.adb.tcp.port 5555
      stop adbd
      start adbd
      
    3. 在手机终端执行以下命令获取手机IP信息
      ip neigh
    4. 在电脑远程连接设备命令如下
      adb connect 192.168.59.132
      192.168.59.132 是手机WIFI分配的IP地址,默认端口是上面步骤设置的5555
      参考自:https://juejin.cn/post/6844903496861351943

其它

  • 重启到 recovery 清数据
    命令 adb reboot recovery

  • 查看存储使用情况
    adb shell df -h


相关连接

  • Git配置和常用命令
  • 安卓软件开发常用命令集合
  • adb常用命令详解–提升开发效率利器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

04 翼型和机翼、尾翼几何选择

04 翼型和机翼、尾翼几何选择 4 -1 引言4-2 翼型的选择4-2-1 翼型的几何4-2-2 翼型的升力和阻力4-2-3 翼型选择与设计4-2-4 设计升力系数4-2-5 失速4-2-6 翼型厚度比4-2-7 关于翼型其他方面的考虑 4-3 机翼几何外形4-3-1 展弦比4-2-3 机翼后掠角4-3-3 机翼稍根比4-3-4 机翼扭转…

团结的力量:友情、互助与感恩

时间如白驹过隙,半载光阴转瞬即逝。回首过去的六个月,在CSDN平台上,我经历了无数的挑战和成长。在大厂和阿豪的帮助下,我的粉丝数终于突破了万大关。这不仅是我个人的成就,更是我们团结、互助和感恩精神的见证。 初识…

aardio实战篇) 下载微信公众号文章为pdf和html

首发地址: https://mp.weixin.qq.com/s/w6v3RhqN0hJlWYlqTzGCxA 前言 之前在PC微信逆向) 定位微信浏览器打开链接的call提过要写一个保存公众号历史文章的工具。这篇文章先写一个将文章保存成pdf和html的工具,后面再补充一个采集历史的工具&#xff0c…

HTTP协议版本历程

HTTP协议的发展历程 版本推出年份当前状态HTTP/0.91991年已过时HTTP/1.01996年已过时HTTP/1.11997年标准HTTP/2.02015年标准HTTP/3.02022年标准 HTTP/0.9 HTTP/0.9非常简单,并不涉及数据包传输,通过请求和响应的交换达成通信,请求由单行指…

SmartEDA、Multisim、Proteus大比拼:电路设计王者之争?

在电路设计领域,SmartEDA、Multisim和Proteus无疑是三款备受瞩目的软件工具。它们各自拥有独特的功能和优势,但在这场电路设计王者的竞争中,谁才是真正的领跑者?让我们深入探究这三款软件的异同,揭示它们各自的魅力所在…

图像处理与视觉感知复习--图像特征描述图像生成

文章目录 角点(关键点)的特点图像分类的流程梯度方向直方图(HOG)流程平移、旋转和尺度特征(SIFT)流程常用的图像生成模型GAN的原理Diffusion Model的原理mAP计算方法 角点(关键点)的…

Vue48-ref属性

一、需求:操作DOM元素 1-1、使用原生的id属性 不太好! 1-2、使用 ref属性 原生HTML中,用id属性给元素打标识,vue里面用ref属性。 给哪个元素加了ref属性,vc实例对象就收集哪个元素!!&#xff0…

HTML初体验

可参考jd.com官网&#xff0c;ctrlu查看当前页面源代码 找到你的项目&#xff0c;在项目中创建html类型的网页文件 标准的HTML正确书写格式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title&…

仅靠独立网站也能赚到100万,真的太牛了

你听说过 Photopea 吗&#xff1f;这是一个免费的类似 Photoshop 的图像编辑器。 这个项目&#xff1a; 每月1300万访问量每月150万用户使用小时每月10万美元的广告收入 Photopea 项目的天才创造者是 Ivan Kutskir。 令人惊讶的是&#xff0c;他独自处理了每日50万用户&…

Tomcat配置详解

文章目录 一、配置文件介绍配置文件日志文件 二、组件组件分层和分类核心组件Tomcat处理请求过程URL对应关系 三、部署java程序手动部署搭建博客状态页 四、常见配置详解tomcat端口号安全配置管理虚拟主机配置Context配置 四、Tomcat Nginx动静分离 一、配置文件介绍 配置好环…

区间DP——AcWing 282. 石子合并

区间DP 定义 区间 DP 是动态规划的一种特殊形式&#xff0c;主要是在一段区间上进行动态规划计算。 运用情况 通常用于解决涉及在一段区间内进行操作、计算最优值等问题。比如计算一个区间内的最大子段和、最小分割代价等。一些常见的场景包括合并操作、划分操作等在区间上…

夏季河湖防溺水新举措:青犀AI视频智能监控系统保障水域安全

近日一则新闻引起大众关注&#xff0c;有网友发布视频称&#xff0c;假期在逛西湖时&#xff0c;发现水面上“平躺”漂浮着一名游客在等待救援。在事发3分钟内&#xff0c;沿湖救生员成功将落水游客救到了岸边。 随着夏季的到来&#xff0c;雨水增多&#xff0c;各危险水域水位…

如何下载GoldWave 6.80软件及详细安装步骤

GoldWave功能介绍&#xff1a; GoldWave是一款很强大多功能数字音频编辑软件&#xff0c;可以用来消除某些音乐里边的噪音&#xff0c;可以用来声音编缉、播放、录制和转换还是多功能。它的音频特效有很多种可供选择。 GoldWave音频编辑软件与Windows其它应用软件一样&#x…

GaussDB技术解读——GaussDB架构介绍(四)

目录 11 GaussDB云原生架构 11.1 云原生关键技术架构 11.2 关键技术方案 11.2.1 通信组件 11.2.2 集群管理组件 11.2.3 多租组件 GaussDB架构介绍&#xff08;三&#xff09;从智能关键技术方案、驱动接口关键技术方案等方面对GaussDB架构进行了解读&#xff0c;本篇将…

SpringCloud:Feign远程调用

程序员老茶 &#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; P   S : 点赞是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#…

驾驭未来:智能网关如何革新车联网体验

车联网&#xff08;Internet of Vehicles&#xff09;是一个跨领域的技术综合体&#xff0c;它基于物联网&#xff0c;利用先进的信息通信技术实现车与车、车与路、车与人、车与服务平台等的全方位网络连接。 龙兴物联智能网关是集成了多协议、多接口&#xff0c;具有综合数据采…

[图解]建模相关的基础知识-11

1 00:00:00,700 --> 00:00:05,090 下一个知识点就是函数在集合上的限制 2 00:00:08,290 --> 00:00:10,200 符号可以这样来 3 00:00:10,210 --> 00:00:16,640 F然后一个往下的箭头A 4 00:00:16,650 --> 00:00:19,520 意思就是说F里面的元素 5 00:00:20,120 --&…

闭包表(Closure Table)

设计血缘关系&#xff08;data-lineage&#xff09;时&#xff0c;想到要使用的表模型。 表设计 节点记录表 - node CREATE TABLE lineages_node (name varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 节点名称,id bigint(20) unsigned NOT NULL AUTO_INCREM…

element--el-table合计换行显示

el-table合计换行显示 效果图实现1、使用到的参数2、代码演示 效果图 实现 1、使用到的参数 官网链接&#xff1a;element-table 将show-summary设置为true就会在表格尾部展示合计行。默认情况下&#xff0c;对于合计行&#xff0c;第一列不进行数据求合操作&#xff0c;而是…

【Python/Pytorch - 网络模型】-- SVD算法

文章目录 文章目录 00 写在前面01 基于Pytorch版本的SVD算代码02 理论知识 00 写在前面 &#xff08;1&#xff09;矩阵的奇异值分解在最优化问题、特征值问题、最小二乘方问题、广义逆矩阵问题及统计学等方面都有重要应用&#xff1b; &#xff08;2&#xff09;应用&#…