0
点赞
收藏
分享

微信扫一扫

常用的adb命令学习整理


最近有接触到一些Android设备的测试,在测试过程中我们使用了adb工具来进行测试,以下是我整理的一些我学习到的点。


什么是adb?

adb(Android Debug Bridge)安卓调试桥,是连接Android设备与PC端的桥梁,顾名思义,adb就是一个debug工具

adb的作用

可以让用户在电脑上对Android设备进行全面的操作

adb的工作原理

常用的adb命令学习整理_root权限

上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。

(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb Client发来的命令。

(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到 了adb daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。

环境配置

将android sdk工作目录添加到系统环境变量中可使用adb命令。

设备连接

①Android设备与电脑直接通过USB线直连;

②Android设备与电脑在同一局域网内,通过IP地址连接;

③Android设备已打开调试模式。

常用命令

启动adb server 

adb start-server

停止adb server

adb kill-server

查看当前连接设备

adb devices

连接设备

adb connect ip:port

进入设备

①adb shell 该命令适合Android设备与电脑直接通过USB线直连使用

②adb -s ip shell  该命令适合Android设备与电脑在同一局域网内,使用设备的ip进入设备

在这个Linux shell中,我们可以执行各种Linux命令

使用su提权

adb shell su 用户命令提示符$变成#,命令行提示符是$则表示没有root权限,是#则表示已root

查看进程pid

adb shell ps

USER所属用户

PID进程id

PPID父进程id

NAME进程名

查看设备实时资源占用情况

adb shell top

PID进程id

PR优先级

CPU%当前瞬间占用CPU百分比

S进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

#THR线程数

VSS虚拟耗用内存(virtual set size,包含共享库占用的内存)

RSS 实际使用物理内存(resident set size,包含共享库占用的内存)

PCY调度策略优先级

UID进程所有者的用户ID

NAME进程名

查看设备内存信息

adb free

Mem 物理内存

-/+ buffers/cache 物理内存已用多少,可用多少

Swap 交换空间

Total 总量

Used 已使用

Free 空闲

Shared 共享

Buffers 缓存,可回收

Cache 缓存,可回收   cachebuffer的区别,一个是以裸设备或分区为背景,一个是以文件系统里的文件为背景

查看某一进程的内存信息

dumpsys meminfo pid

Native Heap Size 从mallinfo usmblks获得,总内存

Native Heap Alloc 从mallinfo uorblks获得,分配内存

Native Heap Free 从mallinfo fordblks获得,剩余内存  mallinfo是一个C库

Dalvik Heap Size 从Runtime totalMemory()获得,总内存

Dalvik Heap Alloc  Runtime totalMemory()-Runtime freeMemory(),分配内存

Dalvik Heap Free 从Runtime freeMemory()获得,剩余内存  

Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态,具体参考下表

常用的adb命令学习整理_android_02

重启设备

adb reboot

查看日志

adb logcat

清空日志

adb logcat -c

定位当前操作位置

adb shell pwd

将设备中的文件保存在电脑本地

adb pull <设备里的文件路径> [电脑上的目录]

将电脑本地的文件复制到设备中

adb push <电脑上的文件路径> <设备里的目录>

root权限

adb root

取消root权限

adb unroot

安装apk

adb install test.apk  安装包需要放在adb工具目录下

adb install -r test.apk  覆盖安装

卸载app

adb uninstall com.test.app

adb uninstall -k com.test.app  卸载但保留配置数据和缓存文件

查看Android端安装的所有apk包名

adb shell pm list packages

使用monkey进行压力测试

adb shell monkey -p <packagename> -v 500 向指定应用程序发送500个伪随机事件


最近有接触到一些Android设备的测试,在测试过程中我们使用了adb工具来进行测试,以下是我整理的一些我学习到的点。

什么是adb?
adb(Android Debug Bridge)安卓调试桥,是连接Android设备与PC端的桥梁,顾名思义,adb就是一个debug工具。
adb的作用
可以让用户在电脑上对Android设备进行全面的操作。
adb的工作原理
上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。
(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb Client发来的命令。
(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到 了adb daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。
环境配置
将android sdk工作目录添加到系统环境变量中,即可使用adb命令。
设备连接
①Android设备与电脑直接通过USB线直连;
②Android设备与电脑在同一局域网内,通过IP地址连接;
③Android设备已打开调试模式。
常用命令
启动adb server
adb start-server
停止adb server
adb kill-server
查看当前连接设备
adb devices
连接设备
adb connect ip:port
进入设备
①adb shell 该命令适合Android设备与电脑直接通过USB线直连使用
②adb -s ip shell 该命令适合Android设备与电脑在同一局域网内,使用设备的ip进入设备
在这个Linux shell中,我们可以执行各种Linux命令
使用su提权
adb shell su 用户命令提示符由$变成#,命令行提示符是$则表示没有root权限,是#则表示已root
查看进程pid
adb shell ps
USER所属用户
PID进程id
PPID父进程id
NAME进程名
查看设备实时资源占用情况
adb shell top
PID进程id
PR优先级
CPU%当前瞬间占用CPU百分比
S进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
#THR线程数
VSS虚拟耗用内存(virtual set size,包含共享库占用的内存)
RSS 实际使用物理内存(resident set size,包含共享库占用的内存)
PCY调度策略优先级
UID进程所有者的用户ID
NAME进程名
查看设备内存信息
adb free
Mem 物理内存

  • + buffers/cache 物理内存已用多少,可用多少

Swap 交换空间
Total 总量
Used 已使用
Free 空闲
Shared 共享
Buffers 缓存,可回收
Cache 缓存,可回收 cache与buffer的区别,一个是以裸设备或分区为背景,一个是以文件系统里的文件为背景
查看某一进程的内存信息
dumpsys meminfo pid
Native Heap Size 从mallinfo usmblks获得,总内存
Native Heap Alloc 从mallinfo uorblks获得,分配内存
Native Heap Free 从mallinfo fordblks获得,剩余内存 mallinfo是一个C库
Dalvik Heap Size 从Runtime totalMemory()获得,总内存
Dalvik Heap Alloc Runtime totalMemory()-Runtime freeMemory(),分配内存
Dalvik Heap Free 从Runtime freeMemory()获得,剩余内存
Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态,具体参考下表
重启设备
adb reboot
查看日志
adb logcat
清空日志
adb logcat -c
定位当前操作位置
adb shell pwd
将设备中的文件保存在电脑本地
adb pull <设备里的文件路径> [电脑上的目录]
将电脑本地的文件复制到设备中
adb push <电脑上的文件路径> <设备里的目录>
root权限
adb root
取消root权限
adb unroot
安装apk
adb install test.apk 安装包需要放在adb工具目录下
adb install -r test.apk 覆盖安装
卸载app
adb uninstall com.test.app
adb uninstall -k com.test.app 卸载但保留配置数据和缓存文件
查看Android端安装的所有apk包名
adb shell pm list packages
使用monkey进行压力测试
adb shell monkey -p <packagename> -v 500 向指定应用程序发送500个伪随机事件

举报

相关推荐

0 条评论