安卓调试|一文归纳总结adb调试工具常规命令

   日期:2024-12-28    作者:dgzs1985 移动:http://g8akg8.riyuangf.com/mobile/quote/9223.html

欢迎关注「全栈工程师修炼指南」公众号

点击 👇 下方卡片 即可关注我哟!

设为星标⭐每天带你 基础入门 到 进阶实践 再到 放弃学习

  花开堪折直须折,莫待无花空折枝 


作者主页:[ https://www.weiyigeek.top ]  

博客:[ https://blog.weiyigeek.top ]

安全运维开发从业者学习答疑交流群:请关注公众号回复【学习交流群


0x00 adb 调试工具命令

描述:通过前面学习我们知道adb(Android Debug Bridge Tools)即安卓调试桥 ,它是一个C/S架构工具,主要用于电脑端于安卓系统手机设备或者模拟器设备进行交互,特别是在某些情况下进入不了系统的时候adb就派上用场了,本章节汇总了adb相关使用命令参数。

adb 命令工具帮助信息打印:

在线文档:https://android.googlesource.com/platform/packages/modules/adb/+/refs/heads/master/docs/user/adb.1.md


1.常规基础命令

start/kill-server - 启动与停止守护进程

使用示例

devices - 设备状态信息

使用说明
adb 会针对每个设备输出以下状态信息:

  • 序列号: adb 会创建一个字符串,用于通过端口号唯一标识设备

  • 设备状态:

    :设备未连接到 adb 或没有响应。
    :设备已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动并可正常运行,因为在设备连接到 adb 时系统仍在启动。系统完成启动后,设备通常处于此运行状态。
    :未连接任何设备。

使用示例

温馨提示 如果您在多个设备可用时发出命令但未指定目标设备,adb 会显示错误,此时需要使用-s参数指定设备序列号。

get-* - 设备相关信息

a设备的三种状态

  • device:设备正常连接

  • offline:连接出现异常设备无响应(通常需要重连).

  • unknown:没有连接设备

使用示例

install/uninstall 安装与卸载手机应用

温馨提示: 如果您使用的是 Android Studio,则无需直接使用 adb 即可在模拟器或设备上安装您的应用, Android Studio 会为您执行应用的打包和安装操作。

logcat - 显示设备日志

reboot - 重启设备

温馨提示: 进入recovery模式后,adb工具将失去对手机的控制,我们可以通过手机重启退出recovery模式。


2.网络连接命令

tcpip - 在PORT上重新启动adbd侦听TCP

使用示例

connect/disconnet - 连接断开到设备的adbd监听

使用示例

pair - 与用于安全TCP/IP通信的设备配对

描述: 此命令在启动无线调试时,通过adbd用于链接到Android设备进行配对。
语法参数

使用示例

forward - 端口转发

使用示例

3.文件传输

描述: 使用 push、pull、sync 命令可以快速针对安卓手机中的文件进行上传下载同步等操作。
语法参数:

示例演示

扩展说明: adb shell sync 命令和adb sync命令的区别

前者:在shell中执行,将内存缓冲区中的数据 写入到磁盘
后者:同步更新all|data|odm|oem|product|system|system_ext|vendor下的数据,如果不指定目录,将同步更新/data/和/system/

4.shell - 进行设备shell终端查看执行命令

描述: 此命令在adb中占有主要地位,其可以帮助我们操作访问Android设备的相关资源,在讲解shell之前,我们先看看 root 与 remount 两个子命令其对于安卓手机shell中访问权限是非常重要的。

语法参数:

adb 权限提升

温馨提示: Android 提供了大多数常见的 Unix 命令行工具, 如需查看可用工具的列表,请使用以下命令

设备相关信息

tap/swipe - 设备点击滑动操作

描述:tap 模拟点击事件,swipe 模拟滑动事件, 可以左右滑动,可以上下滑动。


偷偷的告诉你哟极客全栈修炼】微信小程序已经上线了

可直接在微信里面直接浏览博主博客了哟,后续将上线更多有趣的小工具。


keyevent - 模拟输入点击(预定义

描述: input keyevent操作发送手机上常用的一些按键操作,KEYCODE和对应的数值在android源码中定义如下:

使用示例

screencap - 屏幕截屏操作保存

screenrecord - 录屏操作保存

描述:screenrecord是一个shell命令,支持Android4.4(API level 19)以上,视频格式为 mp4,值得注意的是不一定所有的安卓设备都有此命令。

pm - 调用软件包管理器显示已安装的应用

描述: 在 adb shell 中,您可以使用软件包管理器 (pm) 工具发出命令,以对设备上安装的应用软件包执行操作和查询。

am - 调用 activity 管理器启动应用

描述: 在 adb shell 中,您可以使用 activity 管理器 (am) 工具发出命令以执行各种系统操作,如启动 activity、强行停止进程、广播 intent、修改设备屏幕属性等等。
语法参数:

intent 参数的规范:对于采用 intent 参数的 activity 管理器命令,您可以使用以下常用选项指定 intent , 参考地址

基础示例:

dpm - 调用设备政策管理器 (dpm)

描述: 为便于您开发和测试设备管理应用,请向设备政策管理器 (dpm) 工具发出命令。
语法参数

cmd - 辅助测试命令

cmd package - 读取应用的 ART 配置文件
从 Android 7.0(API 级别 24)开始,Android 运行时 (ART) 会收集已安装应用的执行配置文件,这些配置文件用于优化应用性能.

温馨提示:您必须拥有对文件系统的 root 权限(例如在模拟器上,才能检索执行配置文件的文件名。

cmd testharness - 重置测试设备
如果您在多个测试设备上测试应用,则在两次测试之间重置设备可能很有用, 在使用 testharness 恢复设备时,设备会自动将允许通过当前工作站调试设备的 RSA 密钥备份在一个持久性位置。

getevent - 记录设备事件

语法参数:

使用示例

扩展补充: Android 手机事件名词对应及格式,假设我手指连续在(0xd8, 16f)即(216, 367)坐标附近触摸三次得到的信息如下

  • EV_ABS ABS_MT_TRACKING_ID :当前触摸的ID它会一直累加上去的

  • EV_ABS ABS_MT_POSITION_X :当前触摸的X的坐标

  • EV_ABS ABS_MT_POSITION_Y :当前触摸的Y的坐标

  • EV_KEY BTN_TOUCH : 标记是按下或者抬起的动作

  • EV_SYN SYN_REPORT : 标记一次上报结束

  • EV_ABS ABS_MT_TRACKING_ID : 如果这个值为 0xffffffff,那么说明当前是抬起动作,后面跟上的BTN_TOUCH要为UP

  • EV_KEY BTN_TOUCH : 标记是按下或者抬起的动作

  • EV_SYN SYN_REPORT : 标记一次上报结束

参考地址: https://developer.android.com/reference/android/view/KeyEvent.html

sendevent - 发送设备事件

描述: 其作用与getevent相反,它可以往input设备中写入对应的格式值, 注意此操作需要root权限。
语法示例:

使用示例

温馨提示: 使用 sendevent 发送事件时,一定要先有Down事件,才能有Up事件。

,文章就要看完了,不关注一下【全栈工程师修炼指南】吗

sqlite - 命令行执行 SQLite 命令

描述: sqlite3 可启动用于检查 SQLite 数据库的 sqlite 命令行程序()。它包含用于输出表格内容的 .dump 以及用于输出现有表格的 SQL CREATE 语句的 .schema 等命令。

settings - 系统设置

使用示例

svc - 服务管理

示例示例

温馨提示: 上述指令作者还在不断收集整理中,后续将会持续更新,请各位朋友多多关注。

本文至此完毕,更多技术文章,尽情等待下篇好文

原文地址: https://blog.weiyigeek.top/2019/4-17-73.html

如果此篇文章对你有帮助,请你将它分享给更多的人! 

公众号回复【0008】获取【Ubuntu22.04安装与加固建脚本】

公众号回复【10001】获取【WinServer安全加固脚本】

公众号回复【0011】获取【k8S二进制安装部署教程】

公众号回复【0014】获取【Nginx学习之路汇总】

公众号回复【0015】获取【Jenkins学习之路汇总】

 热文推荐  

  • 开源项目 | ChatGPT-Next-Web私人ChatGPT网页应用一键免费部署

  • 开源项目 | DB-GPT 来了,兼职奶爸搞了个数据库创新AI工具

  • 工具推荐 | 利用开源工具查看MobaXterm远程终端工具存储的Session账号密码信息

  • 企业实践 | 如何从VMWare ESXi Shell中挂载以及拷贝NTFS或者FAT32分区格式的USB闪存驱动器

  • 运维实践|从ESXi中挂载拷贝NTFS或FAT32格式物理磁盘(视频

  • Linux基础命令行奇技淫巧

  • 运维之DNS服务器Bind9配置解析和基础示例及附带命令

欢迎长(扫二维码 取更多渠道哟!

欢迎关注 【全栈工程师修炼指南】(^)ノ~

== 全栈工程师修炼指南 ==

微信沟通交流: weiyigeeker 

关注回复【学习交流群】即可加入【安全运维沟通交流小群

温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址

master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。

[全栈工程师修炼指南]  关注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章,尽在博客站点,谢谢支持

点个【 + 在 】看吧


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号