adb指令记录

记在前面

本文旨在记录自己遇到用过的adb指令,方便日后查找

建议:使用本文档时,使用查找功能

注:以下命令全部基于adb设置到环境变量之中

adb指令(非shell命令)

安装app

1
adb install apk文件绝对路径

卸载app

1
adb uninstall 包名

将设备文件拉取到本地

1
adb pull 设备文件路径 本地保存路径

将本地文件上传到设备

1
adb push 本地文件路径 设备文件保存路径

截屏

1
adb shell screencap -p 截图文件保存设备上的路径

录屏

1
adb shell screenrecord 录屏保存设备上的路径

输入文本内容

1
adb shell input text '输入的内容'

不懂这指令什么效果

查看手机架构

查看cpu架构:

1
adb shell getprop ro.product.cpu.abi

查看该手机支持的全部架构:

1
adb shell getprop ro.product.cpu.abilist

查看所有进程信息

1
2
adb shell ps
adb shell ps -ef

可以用shell的管道特性,来查找关键词的进程:

1
adb shell "ps |grep keyword"

keyword是要查找的关键词

杀死进程

1
adb shell kill -9 进程号
1
adb shell am force-stop 包名全称

查看当前运行app详细信息

1
adb shell dumpsys activity top

查看指定应用详细情况

1
adb shell dumpsys 包名

查看指定包名应用的数据库存储信息

1
adb shell dumpsys dbinfo 包名

端口转发

1
adb forward tcp:27042 tcp:27042

查看当前进程内存信息

1
adb shell dumpsys meminfo 包名或者进程id

清空应用数据

1
adb shell pm clear 包名

shell命令

绝大部分shell命令可以通过adb shell + [command]做到

安装app

1
pm install apk路径

卸载app

1
pm uninstall 包名

启动应用

1
am start -n 包名/包名.activity名称

启动服务

1
am startservice -n 包名/包名.service名称

查看设备ip地址

1
netcfg

运行java代码

1
app_process  代码运行目录 代码主类

运行一个dex文件

1
dalvikvm -cp dex文件 运行主类

查看进程包名

通过/proc/pid目录中的cmdline可以得到指定pid进程包名:

1
cat cmdline
image-20230726125921112

本质是获得指定进程的cmd窗口内容

对于proc目录的详情,请参考:proc目录学习

进程查询

1
ps -ef

查看指定应用debug数据

1
run-as 包名

列出文件列表

1
ls [-a|-A……] [filename|directory]
参数 描述
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-A 显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”、“..”
-c 按文件的修改时间排列
-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道后面标记“
-I 以列表格式来显示文件的详细信息
-L 若指定文件为一个符号链接文件,则显示链接所指向的文件
-o 与-l选项相同,只是不显示拥有者的信息
-r 按字母逆序或最早优先的顺序显示输出结果
-R 递归式地显示指定目录的各个子目录中的文件
-t 按修改时间顺序显示输出结果
-u 按文件上次存取的时间显示输出结果
-h 文件大小按k、M、G为单位显示,与-l一起使用

备注:

.(点) 表示当前目录

..(点点) 表示上一级目录

切换文件路径

1
cd [directory]

cd ~:切换到家目录

cd -:返回上一次操作目录

cd ../:返回上一级目录

注:如果单独使用cd命令,用户将返回到自己的主目录中,如果cd命令的目标路径不正确,系统会提示“没有这个文件或目录”,否则就从当前位置跳转到目标位置。目标路径名可以是绝对路径,也可以是相对路径。使用绝对路径,无论用户当前处在什么位置,只要是授权用户,就可以转移到指定目录中;使用相对路径时,cd命令以当前位置为起点,跳转到指定目录中。因此,这就需要用户事先明确自己所处的位置。

创建普通文件、更新访问文件的时间

1
touch [filename]

如果文件不存在,就创建该文件

如果文件存在,就更新文件的时间

删除文件或目录

1
rm [-i|-f|-r|-v] [DEST]

DEST表示目标文件,既可以是普通文件,也可以是目录。rm命令支持多文件/目录删除。删除操作需要具有必要的权限,通常至少要对目标文件/目录具有写入权限。

rm dir/ -r:删除一个目录,-r表示递归地删除目录

参数 描述
-f 非交互模式的删除操作,忽略不存在的文件
-i 交互模式的删除操作。在删除目标文件之前将给出提示,要求用户确认,回答“y”表示目标文件将被删除
-r 若源文件是一个目录,rm命令将递归地删除该目录下的所有子目录和文件
-v 显示详细的删除过程

复制文件

1
cp [-a|-d……] [SOURSE] [DEST]
参数 描述
-a 该选项通常在拷贝目录时使用,保留链接、文件属性,并递归地拷贝目录,其作用等于dpr选项的组合
-d 拷贝时保留链接
-f 非交互模式的复制操作。覆盖已经存在的目标文件而不提示
-i 交互模式的复制操作,与-f选项相反。在覆盖目标文件之前将给出提示,要求用户确认,回答“y”表示目标文件将被覆盖
-p 除复制源文件内容外,还将其修改时间和访问权限也同时复制
-r 若源文件是一个目录,cp命令将递归地复制该目录下的所有子目录和文件

移动文件

1
mv [-i|-f|-v] [SOURSE] [DEST]
参数 描述
-f 非交互模式的移动操作。覆盖已经存在的目标文件而不提示
-i 交互模式的移动操作。在覆盖目标文件之前将给出提示,要求用户确认,回答“y”表示目标文件将被覆盖
-v 显示详细的移动过程

打印当前路径

1
pwd

修改文件或目录权限

1
2
chmod [options] file
chmod (u/g/o/a)+/-/=(r/w/x) filename

u:user

g:group

o:other

a:all

+:获取一个权限

-:除去一个权限

=:赋值一个权限

r:可读

w:可写

x:可执行

将文件的权限用3个八进制数来表示,可以更方便地修改多个权限,例如:

1
2
3
4
5
rwx	r-x	r-x			
111 101 101 (755)

rw- r-- r--
110 100 100 (644)

chmod 644 file 将file的权限改成rw- r-- r--

chmod 755 file 将file的权限改成rwx r-x r-x

chmod 777 file 使文件获取所有权限