adb shell一些常用的命令

adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debug工具。

然而, 为何称之为Bridge呢? 因为adb是一个标准的CS结构的工具, 是要连接开发电脑和你的调试手机的.包含如下几个部分:

    1.Client端, 运行在开发机器中, 即你的开发PC机, 用来发送adb命令。

    2.Deamon守护进程,,运行在调试设备中,,即的调试手机或模拟器。

    3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机, 用来管理PC中的Client端和手机的Deamon之间的通信。

1 adb devices

列举当前连接的调试设备

2 adb logcat

打印log信息

3 adb shell -> cd data/data/-> ls

获取所有应用包名

4 adb install/uninstall

安装卸载apk (install 的时候跟上apk的绝对路径)

5 adb pull/push

调试设备和开发PC之间拷贝文件

6 adb start/kill server

启动/杀死adb简介中提到的Server端进程.

由于adb并不稳定, 有时候莫名的问题掉线时, 可以先kill-server, 然后start-server来确保Server进程启动. 往往可以解决问题。

高阶用法

1 adb connect/disconnect

通过wifi进行远程连接手机进行调试(需先连上usb模式, 开启远程调试模式:
$ adb tcpip 5555)

2 adb shell am

am即activity manager.
该命令用来执行一些系统动作, 例如启动指定activity, 结束进程, 发送广播, 更改屏幕属性等. 调试利器.

指令 说明 备注
start 根据intent指向启动Activity Intent可以是显示的指向activity, 也可以是ACTION方式, 并且可以添加flag, data等参数信息.
startservice 启动Service 可以添加flag, data等参数信息.
broadcast 发送广播 可以添加flag, data等参数信息.
monitor 启动一个Crash和ANR的监听器 如有Crash或ANR会在控制台输出相关信息.
force-stop 强制停止该包相关的一切 传入package name.
kill 杀死该包相关的所有进程 传入package name.
kill-all 杀死所有后台进程  
display-size WxH 改变显示的分辨率 例如adb shell am display-size 1280x720, 手机可能不支持.
display-density 改变显示的density 例如adb shell am display-density 320, 手机可能不支持.

3 adb shell pm

pm即package manager.
用来执行package相关的操作, 例如安装卸载, 查询系统的安装包等.

指令 说明 备注
list packages 列出满足filter条件的所有包  
list permissions 列出该Group的所有权限  
list features 查看系统支持哪些feature 例如蓝牙, wifi, 摄像头等.
install /uninstall 安装卸载  
clear 清除应用数据  

4 adb shell screencap

截屏,(ex: adb shell screencap /sdcard/test.png)

5 adb shell screenrecord

 录制屏幕

6 adb shell dumpsys

强大的dump工具, 可以输出很多系统信息. 例如window, activity, task/back stack信息, wifi信息等.

常用dumpsys:

指令 说明 备注 细分参数
activity 输出app组件相关信息 还可以用细分参数获得单项内容, 下同. 例如adb shell dumpsys activity activities来获取activity task/back stack信息. activites, service, providers, intents, broadcasts, processes
alarm 输出当前系统的alarm信息 / /
cpuinfo 输出当前的CPU使用情况 / /
diskstats 输出当前的磁盘使用状态 / /
batterystats 电池使用信息 / /
package package相关信息, 相当于pm功能的集合 输出诸如libs, features, packages等信息 /
meminfo 输出每个App的内存使用和系统内存状态 可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp /
window 输出当前窗口相关信息 / policy, animator, tokens, windows

你可能感兴趣的:(安卓)