文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android adb命令

2022-06-06 13:03

关注

官方参考地址:https://developer.android.com/studio/command-line/adb.html?hl=zh-cn

基本命令:
查看连接的设备

adb devices

进入指定设备
adb -s serialNumber shell

连接状态
adb get-state

查看版本
adb version

启动ADB服务
adb start-server

停止ADB服务
adb kill-server

电脑推送到手机

adb push local remote, eg. adb push F:\logs /sdcard/youku

手机拉取到电脑
adb pull remote local, eg. adb pull /sdcard/aa.txt F:\logs

进入adb shell

adb shell

退出
adb shell exit

安装应用

adb install path_to_apk

卸载应用
adb uninstall $packagename

查看目录

adb shell下ls

重启
adb reboot

查看内存信息

adb shell dumpsys meminfo $package_name or $pid

查看应用信息
adb shell dumpsys package $package_name

adb shell下的am与pm

注:am和pm命令必须先切换到adb shell模式下才能使用

am

am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。当你在adb shell命令下执行am命令:

am 
启动app am start -n {packageName}/.{activityName}
 adb shell am start [options]            

adb shell am start -n 包名/包名+类名
(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
例:am start -n com.jfwl.rental/.activity.MainActivity
am start -n com.android.camera/.Camera -e abc hello (带extra 的 intent, 其中 extra 的 key 为 abc ,value 为字串 “hello”)
貌似只有入口activity可以被launch

杀app的进程

am kill
例:am kill com.jfw.rey 不起作用

强制关闭应用

am force-stop
例:am force-stop com.jfw.rey

启动服务

am startservice
例: adb shell am startservice -n com.lt.test/.MyService

停止服务

am stopservice
例: adb shell am stopservice -n com.lt.test/.MyService

发起一个ACTION

am start -a ACTION

例:打开简书 am start -a android.intent.action.VIEW -d http://www.jianshu.com/
拨打电话 am start -a android.intent.action.CALL -d tel:10086
启动系统相机 am start -a android.media.action.IMAGE_CAPTURE
adb shell am start -a com.lt.test.action.SECOND (发送一个action启动activity)

发送一个广播

adb shell am broadcast [options] 

例: adb shell am broadcast -a “action_finish” (发送一个广播去关闭一个activity)
adb shell am broadcast -n com.lt.test/.MyBroadcast

pm

pm全称package manager,你能使用pm命令去模拟Android行为或者查询设备上的应用等,当你在adb shell命令下执行pm命令:

pm 
列出手机所有的包名
pm list packages

pm list packages
列出所有软件包
pm list packages com.qq
列出包含com.qq的包 安装/卸载
pm install/uninstall
命令 说明
pm install [options] path 将软件包(通过 path 指定)安装到系统。
pm uninstall [options] package 从系统中移除软件包。
clear package 删除与软件包关联的所有数据。
pm list permission-groups 输出所有已知的权限组。
pm list permissions [options] group 输出所有已知权限
pm list features 输出系统的所有功能。
pm list libraries 输出当前设备支持的所有库。
pm list users 输出系统上的所有用户。
pm path package 输出给定 package 的 APK 的路径。
pm get-install-location 返回当前安装位置。返回值: 0 [auto]:让系统决定最佳位置。
1 [internal]:安装在内部设备存储上,。2 [external]:安装在外部介质上。
模拟用户事件 键盘事件:
adb shell input keyevent 
,其中KEYCODE见本文结尾的附表例:点击返回键,相应指令:adb shell input keyevent 4 adb shell input keyevent 3 (Home键) 点击事件:
adb shell input tap  
例: 点击坐标(500,500),相应指令: adb shell input tap 500 500. 滑动事件:
adb shell input swipe    
例: 从坐标(300,500)滑动到(100,500),相应指令: adb shell input swipe 300 500 100 500.例: 200ms时间从坐标(300,500)滑动到(100,500),相应指令: adb shell input swipe 300 500 100 500 200. logcat日志 显示包含的logcat
logcat \| grep 
显示包含,并忽略大小写的logcat
logcat \| grep -i 

例:进入adb shell输入logcat | grep ABC 显示包含ABC的log 打印tag为xys标签
log adb logcat -s xys
读完所有log后返回,而不会一直等待
logcat -d
清空log并退出
logcat -c
打印最近的
count logcat -t 
格式化输出Log,其中format有如下可选值:
logcat -v 

brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容

例: 查看某个进程的日志 adb logcat -v process |grep 8607

保存log到文件
adb logcat > ./log.txt
进行屏幕截图

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
录制视频

screenrecord 命令是一个用于录制设备(运行 Android 4.4(API 级别 19)及更高版本)显示屏的 shell 实用程序。此实用程序将屏幕 Activity 录制到 MPEG-4 文件。
注:音频不与视频文件一起录制。

开发者可以使用此文件创建宣传视频或培训视频。在 shell 中,此语法为:

screenrecord [options] filename

要从命令行使用 screenrecord,请输入以下命令:

$ adb shell screenrecord /sdcard/demo.mp4

按 Control + 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 实用程序可以任何支持的分辨率和所需的比特率进行录制,同时保留设备显示屏的纵横比。默认情况下,此实用程序以原生显示分辨率和屏幕方向进行录制,最大时长为三分钟。

设置端口转发

您可以使用 forward 命令设置任意端口转发 — 将对特定主机端口的请求转发到模拟器/设备实例上的其他端口。下面向您介绍如何设置主机端口 6100 到模拟器/设备端口 7100 的转发:

adb forward tcp:6100 tcp:7100
通过 WLAN 连接到设备

一般情况下,通过 USB 使用 adb。不过,也可以按照下面的说明通过 WLAN 使用它。

将 Android 设备和 adb 主计算机连接到这两者都可以访问的常用 WLAN 网络。请注意,并非所有访问点均适用;您可能需要使用已正确配置防火墙的访问点以支持 adb 的访问点。
注:如果您尝试连接到 Android Wear 设备,则通过关闭与其连接的手机的蓝牙强制将它连接到 WLAN。 使用 USB 电缆将设备连接到主计算机。 设置目标设备以侦听端口 5555 上的 TCP/IP 连接。
$ adb tcpip 5555
从目标设备断开 USB 电缆连接。 查找 Android 设备的 IP 地址。例如,在 Nexus 设备上,您可以通过访问 Settings > About tablet(或 About phone) > Status > IP address 查找 IP 地址。或者,在 Android Wear 设备上,您可以通过访问 Settings > Wi-Fi Settings > Advanced > IP address 查找 IP 地址。 连接至设备,通过 IP 地址识别此设备。
$ adb connect device_ip_address
请确认您的主计算机已连接至目标设备:
$ adb devices
List of devices attached
device_ip_address:5555 device

现在,您可以开始操作了!
如果 adb 连接丢失:

请确保您的主机仍与您的 Android 设备连接到同一个 WLAN 网络。 通过再次执行 adb connect 步骤重新连接。 如果无法连接,则重置 adb 主机:
adb kill-server

然后,从头开始操作。
停止方法:

adb disconnect //断开wifi连接
adb usb //切换到usb模式

其他操作

获取序列号
adb get-serialno
重启到bootloader,即刷机模式
adb reboot bootloader
重启到recovery,即恢复模式
adb reboot recovery
获取机器MAC地址
adb shell cat /sys/class/net/wlan0/address
查看占用内存排序
adb shell top
查看占用内存前6的
app:adb shell top -m 6
刷新一次内存信息,然后返回:
adb shell top -n 1
查询各进程内存使用情况:
adb shell procrank
杀死一个进程:
adb shell kill [pid]
查看进程列表:
adb shell ps
查看指定进程状态:
adb shell ps -x [PID]
查看后台services信息:
adb shell service list
查看当前内存占用:
adb shell cat /proc/meminfo
查看IO内存分区:
adb shell cat /proc/iomem
将system分区重新挂载为可读写分区:
adb remount
列出目录下的文件和文件夹,等同于dos中的dir命令:
adb shell ls
进入文件夹,等同于dos中的cd 命令:
adb shell cd 
重命名文件:
adb shell rename path/oldfilename path/newfilename
删除system/avi.apk:
adb shell rm /system/avi.apk
删除文件夹及其下面所有文件:
adb shell rm -r 
移动文件:
adb shell mv path/file newpath/file
设置文件权限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
新建文件夹:
adb shell mkdir path/foldelname
查看文件内容:
adb shell cat 
查看wifi密码:
adb shell cat /data/misc/wifi/*.conf
查看bug报告:
adb bugreport
跑monkey:
adb shell monkey -v -p your.package.name 500 adb -s 192.168.244.151:5555 shell monkey -v -p com.bolexim 500

附表
下表中, 箭头左边为keycode值,箭头右边为keycode的含义,部分用中文标注

0 –> “KEYCODE_UNKNOWN” 
1 –> “KEYCODE_MENU”
2 –> “KEYCODE_SOFT_RIGHT”
3 –> “KEYCODE_HOME” //Home键
4 –> “KEYCODE_BACK” //返回键
5 –> “KEYCODE_CALL” 
6 –> “KEYCODE_ENDCALL” 
7 –> “KEYCODE_0” //数字键0
8 –> “KEYCODE_1” 
9 –> “KEYCODE_2” 
10 –> “KEYCODE_3”
11 –> “KEYCODE_4” 
12 –> “KEYCODE_5” 
13 –> “KEYCODE_6” 
14 –> “KEYCODE_7” 
15 –> “KEYCODE_8” 
16 –> “KEYCODE_9” 
17 –> “KEYCODE_STAR” 
18 –> “KEYCODE_POUND” 
19 –> “KEYCODE_DPAD_UP” 
20 –> “KEYCODE_DPAD_DOWN” 
21 –> “KEYCODE_DPAD_LEFT”
22 –> “KEYCODE_DPAD_RIGHT” 
23 –> “KEYCODE_DPAD_CENTER” 
24 –> “KEYCODE_VOLUME_UP” //音量键+
25 –> “KEYCODE_VOLUME_DOWN” //音量键-
26 –> “KEYCODE_POWER” //Power键
27 –> “KEYCODE_CAMERA” 
28 –> “KEYCODE_CLEAR”
29 –> “KEYCODE_A” //字母键A
30 –> “KEYCODE_B” 
31 –> “KEYCODE_C” 
32 –> “KEYCODE_D” 
33 –> “KEYCODE_E” 
34 –> “KEYCODE_F” 
35 –> “KEYCODE_G”
36 –> “KEYCODE_H”
37 –> “KEYCODE_I”
38 –> “KEYCODE_J” 
39 –> “KEYCODE_K” 
40 –> “KEYCODE_L” 
41 –> “KEYCODE_M”
42 –> “KEYCODE_N” 
43 –> “KEYCODE_O” 
44 –> “KEYCODE_P” 
45 –> “KEYCODE_Q” 
46 –> “KEYCODE_R”
47 –> “KEYCODE_S”
48 –> “KEYCODE_T” 
49 –> “KEYCODE_U” 
50 –> “KEYCODE_V” 
51 –> “KEYCODE_W” 
52 –> “KEYCODE_X”
53 –> “KEYCODE_Y” 54 –> “KEYCODE_Z”
55 –> “KEYCODE_COMMA” 
56 –> “KEYCODE_PERIOD”
57 –> “KEYCODE_ALT_LEFT” 
58 –> “KEYCODE_ALT_RIGHT” 
59 –> “KEYCODE_SHIFT_LEFT” 
60 –> “KEYCODE_SHIFT_RIGHT”
61 -> “KEYCODE_TAB” 
62 –> “KEYCODE_SPACE” 
63 –> “KEYCODE_SYM” 
64 –> “KEYCODE_EXPLORER” 
65 –> “KEYCODE_ENVELOPE” 
66 –> “KEYCODE_ENTER” //回车键
67 –> “KEYCODE_DEL” 
68 –> “KEYCODE_GRAVE” 
69 –> “KEYCODE_MINUS” 
70 –> “KEYCODE_EQUALS” 
71 –> “KEYCODE_LEFT_BRACKET” 
72 –> “KEYCODE_RIGHT_BRACKET” 
73 –> “KEYCODE_BACKSLASH” 
74 –> “KEYCODE_SEMICOLON” 
75 –> “KEYCODE_APOSTROPHE”
76 –> “KEYCODE_SLASH” 
77 –> “KEYCODE_AT” 
78 –> “KEYCODE_NUM” 
79 –> “KEYCODE_HEADSETHOOK” 
80 –> “KEYCODE_FOCUS”
81 –> “KEYCODE_PLUS”
82 –> “KEYCODE_MENU”
83 –> “KEYCODE_NOTIFICATION”
84 –> “KEYCODE_SEARCH”

作者:川峰


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯