文章目录
- 一、adb shell中的am pm命令
- 1.1 am命令
- start [options] :启动activity通过指定的intent参数。
- startservice [options] : 启动service通过指定的intent参数
- force-stop : 强制停止指定的package包应用。
- kill [options] :杀死指定package包应用进程
- kill-all :杀死所有的后台进程。
- broadcast [options] :发送一个intent
- instrument [options] :测试命令
- profile start :在进程中运行profile,分析结果写到里。
- profile stop :停止profile。
- set-debug-app [options] :设置package包应用为debug模式。
- clear-debug-app :清空之前用set-debug-app命令设置的package包应用。
- monitor
- screen-compat
- display-size
- display-density
- to-uri
- to-intent-uri
- 1.2 pm命令
- 二、常用命令
- 更多命令
- 获取包名和界面名
- 使用adb更换apk
- 用U盘更换apk 使用SecureCRT+U盘
- 获取系统权限
- 查看版本号
- 【版本】查看APK版本
- 查看APK内存占用
- 强制停止某应用
- 清除APK的数据及缓存
- 【启动】通过命令启动APK
- 通过IPTV拉起页面
- 【包名】过滤包名关键字查看对应APK所在位置
- 查看栈顶activity
- 截屏
- 录屏
- 命令抓取网络包
- 命令抓日志
- 【安装】安装APK
- 【卸载】卸载APK(仅卸载/data/app目录下安装的apk)
- 强制删除某目录
- 查询所有系统应用
- 查询所有第三方应用
- 启动adb服务
- 停止adb服务
- adb连接设备(该设备需开启adb)
- adb断开所有已连接设备
- 查看当前连接的设备IP地址
- adb获取root权限
- adb挂载设备
- adb进入shell模式
- adb重启已连接的设备
- adb安装应用
- adb卸载应用(仅卸载/data/app目录下安装的apk)
- adb导出已连接设备中某目录的文件到本地PC
- adb将本地PC的文件直接导入到已连接设备某目录
- 查看内存
一、adb shell中的am pm命令
1.1 am命令
am全称activity manager,你能使用am去模拟各种系统的行为。
在 adb shell 中,您可以使用 Activity 管理器 (am
) 工具发出命令以执行各种系统操作,如启动 Activity、强行停止进程、广播 intent、修改设备屏幕属性,等等。在 shell 中,相应的语法为:
am command
您也可以直接从 adb 发出 Activity 管理器命令,无需进入远程 shell。例如:
adb shell am start -a android.intent.action.VIEW
start [options] :启动activity通过指定的intent参数。
startservice [options] : 启动service通过指定的intent参数
force-stop : 强制停止指定的package包应用。
kill [options] :杀死指定package包应用进程
kill-all :杀死所有的后台进程。
broadcast [options] :发送一个intent
instrument [options] :测试命令
profile start :在进程中运行profile,分析结果写到里。
profile stop :停止profile。
set-debug-app [options] :设置package包应用为debug模式。
clear-debug-app :清空之前用set-debug-app命令设置的package包应用。
monitor
screen-compat
display-size
display-density
to-uri
to-intent-uri
1.2 pm命令
pm全称package manager
,你能使用pm命令去模拟android行为或者查询设备上的应用等,当你在adb shell命令下执行pm命令:
pm command
您也可以直接从 adb 发出软件包管理器命令,无需进入远程 shell。例如:
adb shell pm uninstall com.example.MyApp
二、常用命令
开启adb服务
adb start-server
开启adb服务
关闭adb服务
adb kill-server
关闭adb 服务
2.1查询设备 adb devices -l
查看哪些设备实例已连接到 adb 服务器
可以使用 devices
命令生成已连接设备的列表。
adb devices -l
- 序列号:由 adb 创建的字符串,用于通过端口号唯一标识设备。 序列号示例:
emulator-5554
- 状态:设备的连接状态:
offline
:设备未连接到 adb 或没有响应。device
:设备现已连接到 adb 服务器。此状态并不表示 Android 系统已完全启动并可正常运行,因为在设备连接到 adb 时系统仍在启动。在启动后,这将是设备的正常运行状态。no device
:未连接任何设备。
- 说明:包含
-l
选项,devices
命令会告知设备列表。
2.2 将命令发送至特定设备 adb devices -s
请使用 devices
命令获取目标设备的序列号。
获得序列号后,请结合使用 -s
选项与 adb 命令来指定序列号。
在以下示例中,先获得了已连接设备的列表,然后使用其中一个设备的序列号在该设备上安装了 helloWorld.apk
。
$ adb devices
List of devices attached
emulator-5554 device
emulator-5555 device
$ adb -s emulator-5555 install helloWorld.apk
如果有多个可用设备,但只有一个是模拟器,请使用 -e
选项将命令发送至该模拟器。同样,如果有多个设备,但只连接了一个硬件设备,请使用 -d
选项将命令发送至该硬件设备。
2.3 安装应用 adb install
使用 adb 的 install
命令在模拟器或连接的设备上安装 APK:
adb install path_to_apk
安装测试 APK 时,必须在 install
命令中使用 -t
选项。
2.4 设置端口转发 adb forward
使用 forward
命令设置任意端口转发 , 将特定主机端口上的请求转发到设备上的其他端口。
示例设置了主机端口 6100 到设备端口 7100 的转发:
adb forward tcp:6100 tcp:7100
以下示例设置了主机端口 6100 到 local:logd 的转发:
adb forward tcp:6100 local:logd
2.5 将文件复制到设备push/从设备复制文件pull
-
pull
将文件复制到设备。 -
push
命令从设备复制文件。
与 install
命令(仅将 APK 文件复制到特定位置)不同,使用 pull
和 push
命令可将任意目录和文件复制到设备中的任何位置。
从设备中复制某个文件或目录(及其子目录)
adb pull remote local
如需将某个文件或目录(及其子目录)复制到设备
adb push local remote
将 local
和 remote
替换为开发机器(本地)和设备(远程)上的目标文件/目录的路径。例如:
adb push foo.txt /sdcard/foo.txt
2.6 停止 adb 服务器 adb kill-server
如需停止 adb 服务器,使用 adb kill-server
命令 。
2.7 截取屏幕截图
screencap
命令是一个用于对设备显示屏截取屏幕截图的 shell 实用程序。在 shell 中,语法如下:
screencap filename
如需从命令行使用 screencap
,请输入以下命令:
adb shell screencap /sdcard/screen.png
以下屏幕截图会话示例展示了如何使用 adb shell 截取屏幕截图,以及如何使用 pull
命令从设备下载屏幕截图文件:
$ adb shell
shell@ $ screencap /sdcard/screen.png
shell@ $ exit
$ adb pull /sdcard/screen.png
2.8 录制视频
screenrecord
命令是一个用于录制设备(搭载 Android 4.4(API 级别 19)及更高版本)显示屏的 shell 实用程序。该实用程序将屏幕 Activity 录制为 MPEG-4 文件。您可以使用此文件创建宣传视频或培训视频,或将其用于调试或测试。
在 shell 中,使用以下语法:
screenrecord [options] filename
如需从命令行使用 screenrecord
,请输入以下命令:
adb shell screenrecord /sdcard/demo.mp4
按 Ctrl + C 键(在 Mac 上,按 Command + C 键)可停止屏幕录制;如果不手动停止,到三分钟或 --time-limit
设置的时间限制时,录制将会自动停止。
如需开始录制设备屏幕,请运行 screenrecord
命令以录制视频。然后,运行 pull
命令以将视频从设备下载到主机。下面是一个录制会话示例:
$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4
screenrecord
实用程序能以您要求的任何支持的分辨率和比特率进行录制,同时保持设备显示屏的宽高比。默认情况下,该实用程序以本机显示分辨率和屏幕方向进行录制,时长不超过三分钟。
screenrecord
实用程序的局限性:
- 音频不与视频文件一起录制。
- 无法在搭载 Wear OS 的设备上录制视频。
- 某些设备可能无法以它们的本机显示分辨率进行录制。如果在录制屏幕时出现问题,请尝试使用较低的屏幕分辨率。
- 不支持在录制时旋转屏幕。如果在录制期间屏幕发生了旋转,则部分屏幕内容在录制时将被切断。-
更多命令
获取包名和界面名
adb shell dumpsys window windows | findstr mFocusedApp
使用adb更换apk
adb connect ip //连接机顶盒
adb remount //获取权限
adb push newAppName.apk /system/app //将新apk推到机顶盒
adb shell //进入shell
cd /system/app
chmod 777 newAppName.apk
rm oldAppName.apk //删除或者mv oldAppName.apk oldAppName.apk.bak
sync
reboot
用U盘更换apk 使用SecureCRT+U盘
1、mount -rwo remount /system
2、cd /system/app
3、ll
4、rm oldAppName.apk
5、cp /U盘路径/newAppName.apk
6、sync
7、chmod 644/777 newAppName.apk
8、reboot
获取系统权限
mount -o remount /system
查看版本号
getprop ro.build.version.incremental
【版本】查看APK版本
pm dump XXX(包名) | grep version
pm dump com.xxx | grep version
查看APK内存占用
procrank | grep apk包名关键字
强制停止某应用
am force-stop 包名
清除APK的数据及缓存
pm clear 包名
【启动】通过命令启动APK
am start -n APK包名/启动类名
am start -a APK的action
adb shell am start -n com.xxx
adb shell am start -n com.xxx
通过IPTV拉起页面
am start -n IPTV包名/启动类名 -e intentMsg "http://XXX"
【包名】过滤包名关键字查看对应APK所在位置
pm list packages -f | grep apk包名
dumpsys package apk包名
查看栈顶activity
dumpsys activity | grep "mFocusedActivity"
截屏
/system/bin/screencap -p /sdcard/screencap.png
录屏
screenrecord /sdcard/BlackScreen.mp4
命令抓取网络包
tcpdump -i any -p -s 0 -w /data/123.pcap
命令抓日志
logcat -c && logcat -v threadtime > /data/123.log
重定向抓log
logcat -v time > /data/d.log
【安装】安装APK
pm install -r 待安装apk文件目录
使用 -r 选项进行重新安装,该选项会保留应用程序的数据。
安装 adb install -r D:\xxx\xxx.apk
【卸载】卸载APK(仅卸载/data/app目录下安装的apk)
pm uninstall apk包名
adb shell pm uninstall com.xxx
强制删除某目录
rm -rf XXX目录
查询所有系统应用
pm list packages -s
查询所有第三方应用
pm list packages -3
启动adb服务
adb strat-server
停止adb服务
adb kill-server
adb连接设备(该设备需开启adb)
adb connect 设备ip
adb断开所有已连接设备
adb disconnect
查看当前连接的设备IP地址
adb devices
adb获取root权限
adb root(切换为root用户,若要使用shell命令,需再次重新连接该设备)
adb挂载设备
adb remount
adb进入shell模式
adb shell
adb重启已连接的设备
adb reboot
adb安装应用
adb install -r 待安装应用文件存放目录
adb卸载应用(仅卸载/data/app目录下安装的apk)
adb uninstall 待卸载应用的包名
adb导出已连接设备中某目录的文件到本地PC
adb pull 已连接设备中的文件目录 本地PC磁盘目录
adb将本地PC的文件直接导入到已连接设备某目录
adb push 本地PC中文件的目录 已连接设备的某目录
查看内存
adb shell后
cat /proc/meminfo