adb常用指令

重启 -p是关机

1
adb shell reboot -p

WIFI

  • 打开/关闭wifi

    1
    adb shell svc wifi enable/disable
  • 进入wifi列表页面

    1
    adb shell am start -a android.settings.WIFI_SETTINGS

强制横屏

1
adb shell settings put system user_rotation 3

1. 设备连接状态

1
adb devices
  • 显示当前通过 USB 或网络连接的所有设备及其状态(如 deviceofflineunauthorized)。

2. 设备型号与厂商信息

1
2
3
4
5
6
7
adb shell getprop ro.product.model      # 设备型号
adb shell getprop ro.product.manufacturer # 制造商
adb shell getprop ro.product.brand # 品牌
adb shell getprop ro.build.version.release # Android 版本(如 13)
adb shell getprop ro.build.version.sdk # SDK 版本号(如 33)
adb shell getprop ro.build.display.id # 构建版本号(Build ID)
adb shell getprop ro.serialno # 设备序列号(部分设备支持)

3. 设备唯一标识

1
adb shell settings get secure android_id  # Android ID(每台设备唯一,应用沙盒内可见)

注意:IMEI、MAC 地址等敏感信息在较新 Android 版本中受限,普通 ADB shell 无法直接获取(需 root 或特殊权限)。


4. 屏幕与显示信息

1
2
3
adb shell wm size        # 屏幕分辨率(如 1080x1920)
adb shell wm density # 屏幕密度(dpi,如 420)
adb shell dumpsys display | grep mDisplayInfo # 更详细的显示信息

5. 电池信息

1
adb shell dumpsys battery
  • 显示电池状态(充电状态、电量百分比、健康度、电压等)。

6. 内存与存储

1
2
3
4
adb shell cat /proc/meminfo          # 内存信息(总内存、可用内存等)
adb shell df # 存储分区使用情况
adb shell df /data # 查看/data分区
adb shell cat /proc/partitions # 分区列表

7. CPU 与架构

1
2
3
adb shell cat /proc/device-tree/model# Soc型号
adb shell cat /proc/cpuinfo # CPU 详细信息(核心数、架构、频率等)
adb shell getprop ro.product.cpu.abi # 主 ABI(如 arm64-v8a)

8. 网络信息

1
2
3
adb shell ifconfig                   # 网络接口信息(IP、MAC 等,部分设备需 busybox)
adb shell ip addr # 较新设备推荐使用 ip 命令
adb shell netstat # 网络连接状态

9. 系统运行时间与启动信息

1
2
adb shell uptime                     # 系统已运行时间
adb shell getprop sys.boot_completed # 是否已完成启动(1 表示完成)

10. 已安装应用列表

1
2
adb shell pm list packages           # 所有已安装包名
adb shell pm list packages -3 # 仅第三方应用

11. 设备日志(Logcat)

1
adb logcat                           # 实时输出系统日志(需权限)

要通过 ADB 查看 Android 设备当前启动了哪些服务(running services),可以使用以下几种方法。注意:Android 中的“服务”通常指 系统服务(system services)应用层的 Service 组件(running app services),两者查看方式不同。


✅ 一、查看正在运行的 应用层 Service(App Services)

这是最常见的需求:想知道哪些 App 的 Service 正在运行。

命令:

1
adb shell dumpsys activity services

说明:

  • 输出所有当前活跃的 ActivityManager 管理的服务
  • 包含服务所属包名、类名、启动方式(startService / bind)、进程 PID、运行状态等。
  • 可配合 grep 过滤特定包:
    1
    adb shell dumpsys activity services | grep -A 10 -B 2 "com.example.app"

⚠️ 注意:从 Android 8.0(API 26)开始,后台服务限制加强,很多服务可能不会长期运行。


✅ 二、查看系统级 系统服务(System Services)

这些是 Android Framework 层的服务,如 activity, package, battery, location 等。

列出所有已注册的系统服务:

1
adb shell service list

输出示例:

1
2
3
4
5
6
Found 150 services:
0 sip: [android.net.sip.ISipService]
1 phone: [com.android.internal.telephony.ITelephony]
2 isms: [com.android.internal.telephony.ISms]
...
149 graphicsstats: [android.ui.IGraphicsStats]
  • 每行格式:序号 服务名: [接口]
  • 这些服务由 ServiceManager 管理,是 Binder 通信的基础。

✅ 三、查看正在运行的 进程(Processes)

虽然不是“服务”,但很多服务运行在进程中,可辅助判断:

1
2
3
adb shell ps -A          # 所有进程(较新设备)
adb shell ps # 旧版 Android
adb shell ps | grep com.your.package

或更详细地:

1
adb shell ps -ef

✅ 四、结合 dumpsys 查看特定服务状态

你可以查看某个具体系统服务的内部状态,例如:

1
2
3
4
5
adb shell dumpsys activity          # Activity 和 Service 状态
adb shell dumpsys package # 包管理服务信息
adb shell dumpsys battery # 电池服务
adb shell dumpsys location # 定位服务
adb shell dumpsys alarm # AlarmManager 服务

🔒 权限说明:

  • 上述命令不需要 root,但部分详细信息(如某些私有服务内部状态)可能受限。
  • 在 Android 10+ 中,非调试版系统对 dumpsys 的输出做了隐私限制(如隐藏其他应用的敏感信息)。

📌 总结

目标 命令
查看 App 的 Service 是否在运行 adb shell dumpsys activity services
查看所有系统服务列表 adb shell service list
查看某系统服务详细状态 adb shell dumpsys <service_name>
查看进程(辅助判断) adb shell ps -A