Android ADB Shell 常用命令

 更新时间:2026年05月07日 10:22:58   作者:龙之叶  
文章介绍在Linux环境下使用Android设备的常见命令和操作,涵盖了设备连接、应用与包管理、Activity与Service管理、文件系统与搜索、日志与调试、屏幕操作以及系统与工程模式等七个方面的内容,详细说明了每个方面的具体操作方法和命令用法,感兴趣的朋友跟随小编一起看看吧

1. 设备连接与排错 (Device Connection)

Linux下无权限或无法识别设备

当Linux系统无法识别Android设备,或出现 no permissions 报错时,通常是 udev 规则缺失导致。

解决方法:

  1. 获取设备ID

运行 lsusb 查看USB设备列表。找到你的设备(如含 “Google Inc.” 或厂商名)。
记录下 ID 后的两组数字,例如 18d1:4ee7

  • idVendor: 18d1
  • idProduct: 4ee7
  1. 配置udev规则

创建或编辑规则文件:

sudo vim /etc/udev/rules.d/90-android.rules

添加以下内容(替换为你的ID):

SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee7", MODE="0666", GROUP="plugdev", SYMLINK+="android", SYMLINK+="android_adb"
  1. 重启服务与ADB
sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server
adb start-server

2. 应用与包管理 (Package Management)

主要使用 pm (Package Manager) 命令。

查看已安装应用

  • 列出所有包
adb shell pm list packages
  • 按条件筛选
  • -f: 显示包名及其对应的APK路径
  • -d: 仅显示被禁用的包
  • -e: 仅显示启用的包
  • -s: 仅显示系统包
  • -3: 仅显示第三方安装的包
  • -i: 显示安装来源(如 installer_package_name
  • grep 过滤: adb shell pm list packages | grep "keyword"

获取应用信息

  • 查看应用APK路径
adb shell pm path <package_name>

示例:adb shell pm path com.android.settings

  • 查看应用详细信息 (dumpsys)
adb shell dumpsys package <package_name>

此命令会输出极为详细的应用组件、权限、状态等信息。

停止与清除

  • 强行停止应用
adb shell am force-stop <package_name>
  • 清除应用数据 (类似重装效果):
adb shell pm clear <package_name>

3. Activity 与 Service 管理 (Activity Manager)

主要使用 am (Activity Manager) 命令。

启动 Activity

adb shell am start -n <package_name>/<activity_class_name> [options]
  • 携带参数启动
  • --es <key> <string_value>: 传递 String 参数
  • --ei <key> <int_value>: 传递 Int 参数
  • --ez <key> <boolean_value>: 传递 Boolean 参数

示例:

adb shell am start -n com.example.app/.MainActivity --es username "test"

发送广播 (Broadcast)

adb shell am broadcast -a "<ACTION_NAME>" [extras]
  • 示例:模拟SIM卡状态变化
adb shell am broadcast -a "android.intent.action.SIM_STATE_CHANGED" --es "ss" "LOADED"

查看当前 Activity

快速确认当前显示的界面所属的 Activity。

adb shell dumpsys activity top | grep ACTIVITY

或者(Windows下若无grep):

adb shell dumpsys activity top

然后手动查找 ACTIVITY 关键字。

Service 操作

  • 查看运行中的 Service(添加到ServiceManager的):
adb shell service list
  • Dump Service 信息
adb shell dumpsys activity service <service_name>

4. 文件系统与搜索 (File System & Search)

Android Shell 支持大部分标准 Linux 命令。

文本搜索 (grep)

  • 基本用法
grep -rn "search_term" <path>
  • -r: 递归查找子目录
  • -n: 显示行号
  • -i: 忽略大小写
  • -l: 仅列出包含匹配内容的文件名
  • -w: 全词匹配(Word matching)
  • 实用场景

查找所有包含 “ERROR” 的日志文件:

find /sdcard/logs | xargs grep "ERROR"

文件查找 (find)

  • 按文件名查找
find <path> -name "<filename_pattern>"

示例:find /system -name "*.so"

容量与结构

  • 查看磁盘空间
df -h
  • 查看当前目录大小
du -sh .
  • 查看目录树结构
tree -L 2  # 仅显示2层深度

5. 日志与调试 (Logging & Debugging)

Logcat 高级用法

  • 保存日志到文件
adb logcat -v time > log.txt
  • 清除旧日志
adb logcat -c
  • 过滤特定字符串
  • Linux/Mac: adb logcat | grep "Error"
  • Windows: adb logcat | findstr "Error"
  • 包含全部缓冲区(包含 crash, radio, events 等):
adb logcat -b all

属性系统 (Properties)

  • 获取属性
adb shell getprop <key>

示例:获取运营商信息 adb shell getprop ro.carrier

  • 设置属性(通常需要root或特殊权限):
adb shell setprop <key> <value>

示例:允许覆盖安装系统App adb shell setprop debug.allow.persist.update true

进程信息

  • 查看进程
adb shell ps -ef | grep <app_name>
  • 查看进程打开的文件 (lsof):
adb shell lsof -p <pid>

Window Manager (wm)

  • 开启 ProtoLog (调试WMS/AMS)
adb shell wm logging enable-text WM_DEBUG_STATES

6. 屏幕操作 (Screen Operations)

屏幕截图

  • 截图并保存到电脑(一步到位):
adb exec-out screencap -p > screenshot.png
  • 传统方式(先存手机再拉取):
adb shell screencap -p /sdcard/sc.png
adb pull /sdcard/sc.png

屏幕录制

  • 录制视频
adb shell screenrecord /sdcard/demo.mp4
  • 限制时长(例如30秒)
adb shell screenrecord --time-limit 30 /sdcard/demo.mp4

注意:默认最长录制180秒。

7. 系统与工程模式 (Advanced & System)

解锁 Bootloader

  • 进入 Bootloader 模式
adb reboot bootloader
  • 解锁命令(需在开发者选项开启 OEM Unlock):
fastboot flashing unlock

到此这篇关于Android ADB Shell 常用命令的文章就介绍到这了,更多相关Android ADB Shell 命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • android studio组件通信:Intend启动Activity接收返回结果

    android studio组件通信:Intend启动Activity接收返回结果

    这篇文章主要介绍了android studio组件通信:Intend启动Activity接收返回结果,设计一个主Activity和一个子Activity(Sub-Activity),使用主Activity上的按钮启动子Activity,并将子Activity的一些信息返回给主Activity,并显示在主Activity上,需要的朋友可以参考一下
    2021-12-12
  • 详解Android获取所有依赖库的几种方式

    详解Android获取所有依赖库的几种方式

    本篇文章主要介绍了详解Android获取所有依赖库的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Flutter生命周期超详细讲解

    Flutter生命周期超详细讲解

    和其他的视图框架比如android的Activity一样,flutter中的视图Widget也存在生命周期,生命周期的回调函数提现在了State上面。理解flutter的生命周期,对我们写出一个合理的控件至关重要
    2023-04-04
  • Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程详解

    Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程详解

    这篇文章主要介绍了Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • android上的一个网络接口和图片缓存框架enif简析

    android上的一个网络接口和图片缓存框架enif简析

    android上的一个网络接口和图片缓存框架enif详细介绍:底层网络接口采用apache的httpclient连接池框架、图片缓存采用基于LRU的算法等等,需要了解的朋友可以详细参考下
    2012-12-12
  • Android实现图片轮播效果

    Android实现图片轮播效果

    这篇文章主要为大家详细介绍了Android实现图片轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Android使用recyclerview打造真正的下拉刷新上拉加载效果

    Android使用recyclerview打造真正的下拉刷新上拉加载效果

    这篇文章先介绍如何使用这个recyclerview,WZMRecyclerview 是一个集成了 下拉刷新、上拉加载、滑到底部自动加载、添加删除头尾部 四个主要功能的recyclerview,需要的朋友可以参考下
    2016-11-11
  • Android实现横向无限循环滚动的单行弹幕效果

    Android实现横向无限循环滚动的单行弹幕效果

    这篇文章主要为大家详细介绍了Android实现横向无限循环滚动的单行弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Android实现滑动刻度尺效果

    Android实现滑动刻度尺效果

    这篇文章主要为大家详细介绍了Android实现滑动刻度尺效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Android电话拨号器实例详解

    Android电话拨号器实例详解

    这篇文章主要为大家详细介绍了Android电话拨号器实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07

最新评论