adb命令

adb命令 – 通用

查看信息

查看设备号

adb devices   

指定连接设备使用命令

adb -s xxx 命令 

查看adb版本

adb version

查看序列号

adb get-serialno

查看bug报告

adb bugreport

查看adb帮助

adb help

安装apk

安装应用

adb install xxxx.apk   #此安装方式,如果已经存在,无法安装

覆盖安装

adb install -r xxxx.apk  

安装测试APK

adb install -t xxxx.apk        #可和 -r 参数一起使用

安装低版本APK

adb install -d xxxx.apk

安装并授予所有运行时权限

adb install -g xxxx.apk

锁定该应用程序

adb install -l xxxx.apk

安装到sd卡

adb install -s xxxx.apk

卸载apk

1)直接卸载

查看包名:

adb shell pm list packages

指定包名卸载:

adb uninstall 包名

保留用户数据卸载

adb uninstall -k(keep) 包名

2)获取root权限卸载

如果直接卸载不成功,则可能需要获取root权限,删除指定文件下的apk

通过包名获取apk路径(包名地址):

adb shell pm path {包名}

root权限:

adb root

读写权限

adb remount

删除apk:

adb shell rm {包名地址}

3)shell卸载

进入apk目录下进行删除
获取root权限后
进入shell:

adb shell

查看包名:

pm list package

获取路径:

pm path {包名}

进入apk所在目录

cd /system/app/xxx

彻底删除apk:

rm -rf xxx.apk

传递文件

将移动设备中的文件传送到PC上

adb pull 移动设备路径 PC路径

将PC中的文件传送到移动设备端

adb push PC路径 移动设备路径 (sdcard)

日志

查看和跟踪系统日志缓冲区的信息

adb logcat

日志等级

参数含义作用
VVerbose最低等级,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中
DDebug调试,用于调试的信息,可以在发布产品中关闭,比较常见
Iinfo信息,一般提示性的信息
WWarning警告
EError错误,已经出现可影响运行的错误,比如应用crash时输出的日志

在 E级别中可以搜索这个关键字:fatal exception
ANR全名Application Not Responding,也就是应用无响应
当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框
在日志中查询:ANR in
在查到ANR in 之后 上一行会有

打印时间

adb logcat -v time 

使用不同的颜色来显示每个优先级

adb logcat -v color 

将日志输出到文件(文件存在手机上)

adb logcat -f 文件名/路径

保存日志到PC上

adb logcat > 文件名/路径

清理已存在的日志

adb logcat -c 

打印Warning以上级别的日志

adb logcat *:W 

关机重启

重启手机

adb reboot  

重启手机到recovery刷机模式

adb reboot recovery           

重启手机到bootloader界面

adb reboot bootloader        

关闭手机

adb shutdown        

adb命令 – adb shell

录屏截图

屏幕截图

adb shell screencap /sdcard/xxx.png

老版本无exec-out命令,只适合于新版的截图

adb exec-out screencap -p > xxx.png 

录制视频

adb shell screenrecord /sdcard/xxx.mp4

查看设备信息

查看手机信息

adb shell getprop                                

查看设备型号

adb shell getprop ro.product.model

查看手机序列号

adb shell getprop ro.serialno 

查看Android系统版本

adb shell getprop ro.build.version.release

查看IP地址

adb shell ifconfig | find “Mask”
adb shell ifconfig wlan0

查看网络连接状态

adb shell netcfg

查看更多硬件与系统属性

adb shell cat /system/build.prop

查看占用内存前10 的app

adb shell top -s 10

模拟手机按键(input)

打开“指针位置” 设置
设置——开发者选项——指针位置

模拟点击事件

adb shell input tap x坐标 y坐标

输入文本
首先需要把光标移到输入框,然后执行以下命令

adb shell input text xxx

模拟滑动事件

adb shell input swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>

返回键

adb shell input keyevent 4

返回home键(置应用于后台)

adb shell input keyevent 3

音量放大

adb shell input keyevent 24

音量缩小

adb shell input keyevent 25

具体键值可参考input keyevent发送按键值

adb命令 – pm&am

pm

pm -- package manager,使用 pm 命令可以去模拟 android 行为或者查询设备上的应用信息等。

输出所有软件包,或者,仅输出软件包名称包含 filter 中的文本的软件包

list packages [options] filter	

具体选项:
-f:查看它们的关联文件。
-d:进行过滤以仅显示已停用的软件包。
-e:进行过滤以仅显示已启用的软件包。
-s:进行过滤以仅显示系统软件包。
-3:进行过滤以仅显示第三方软件包。
-i:查看软件包的安装程序。
-u:也包括已卸载的软件包。
--user user_id:要查询的用户空间。

输出所有已知的权限组

list permission-groups	

输出所有已知的权限,或者,仅输出 group 中的权限

list permissions [options] group
	
具体选项:
-g:按组进行整理。
-f:输出所有信息。
-s:简短摘要。
-d:仅列出危险权限。
-u:仅列出用户将看到的权限。

列出所有测试软件包

list instrumentation [options]	

具体选项:
-f:列出测试软件包的 APK 文件。
target_package:仅列出此应用的测试软件包。

输出系统的所有功能

list features	

输出当前设备支持的所有库

list libraries	

输出系统中的所有用户

list users	

输出给定 package 的 APK 的路径

path package	

将软件包(通过 path 指定)安装到系统

install [options] path	

具体选项:
-r:重新安装现有应用,并保留其数据。
-t:允许安装测试 APK。仅当您运行或调试了应用或者使用了 Android Studio 的 Build > Build APK 命令时,Gradle 才会生成测试 APK。如果是使用开发者预览版 SDK(如果 targetSdkVersion 是字母,而非数字)构建的 APK,那么安装测试 APK 时必须在 install 命令中包含 -t 选项。
-i installer_package_name:指定安装程序软件包名称。

--install-location location:使用以下某个值设置安装位置:
0:使用默认安装位置。
1:在内部设备存储上安装。
2:在外部介质上安装。

-f:在内部系统内存上安装软件包。
-d:允许版本代码降级。
-g:授予应用清单中列出的所有权限。
--fastdeploy:通过仅更新已更改的 APK 部分来快速更新安装的软件包。
--incremental:仅安装 APK 中启动应用所需的部分,同时在后台流式传输剩余数据。如要使用此功能,必须为 APK 签名,创建一个 APK 签名方案 v4 文件,并将此文件放在 APK 所在的目录中。只有部分设备支持此功能。此选项会强制 adb 使用该功能,如果该功能不受支持,则会失败。附加 --wait 选项,可等到 APK 完全安装完毕后再授予对 APK 的访问权限。
--no-incremental 可阻止 adb 使用此功能。

从系统中移除软件包

uninstall [options] package

具体选项:
-k:移除软件包后保留数据和缓存目录。

删除与软件包关联的所有数据。

clear package	

启用给定的软件包或组件(写为“package/class”)

enable package_or_component	

停用给定的软件包或组件(写为“package/class”)

disable package_or_component	
disable-user [options] package_or_component	

具体选项:
--user user_id:要停用的用户。

向应用授予权限

grant package_name permission	

在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。
在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。

从应用撤消权限

revoke package_name permission	

在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。
在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。

更改默认安装位置

set-install-location location	

位置值如下:
0:自动:让系统决定最合适的位置。
1:内部:在内部设备存储上安装。
2:外部:在外部介质上安装。

注意:此命令仅用于调试目的;使用此命令可能会导致应用中断和其他意外行为。

返回当前安装位置

get-install-location	

返回值如下:
0 [auto]:让系统决定最合适的位置
1 [internal]:在内部设备存储上安装
2 [external]:在外部介质上安装

指定是否应强制执行指定权限

set-permission-enforced permission [true | false]	

减少缓存文件以达到给定的可用空间

trim-caches desired_free_space	

创建具有给定 user_name 的新用户,从而输出该用户的新用户标识符

create-user user_name	

移除具有给定 user_id 的用户,从而删除与该用户关联的所有数据。

remove-user user_id	

输出设备支持的最大用户数。

get-max-users	

输出给定 package 的域名验证状态,如果未指定软件包,则输出所有软件包的域名验证状态

get-app-links [options] [package]	

状态代码的定义如下:
none:没有为此域名记录任何内容
verified:域名已成功通过验证
approved:强行批准了域名,通常是通过执行 shell 命令来实现的
denied:强行拒绝了域名,通常是通过执行 shell 命令来实现的
migrated:从旧响应流程中保留的验证状态
restored:从用户数据恢复流程中保留的验证状态
legacy_failure:旧版验证程序拒绝了域名,原因未知
system_configured:设备配置自动批准了域名
>= 1024:设备验证程序特定的自定义错误代码

具体选项:
--user user_id:包括用户选择的域名(涵盖所有域名,而不仅仅是执行 autoVerify 的域名)。

重置给定软件包的域名验证状态,如果未指定任何软件包,则重置所有软件包的域名验证状态。

reset-app-links [options] [package]	

package:要重置的软件包,如果使用“all”,则重置所有软件包

具体选项:
--user user_id:包括用户选择的域名(涵盖所有域名,而不仅仅是执行 autoVerify 的域名)

广播给定 package 的域名验证请求,如果未指定软件包,则发送所有软件包的域名验证请求。仅当软件包之前未记录响应时发送该请求。

verify-app-links [--re-verify] [package]	

--re-verify:即使软件包已记录响应也发送

手动设置软件包的域名状态

set-app-links [--package package] state domains	
仅当软件包将域名声明为 autoVerify 时,此命令才能正常运行。此命令不会针对无法应用的域名报告失败。

--package package:要设置的软件包,如果使用“all”,则设置所有软件包

state:要为域名设置的代码,有效值为:
STATE_NO_RESPONSE (0):按未记录过任何响应的情况进行重置。
STATE_SUCCESS (1):将域名视为已成功通过域名验证代理的验证。请注意,域名验证代理可以覆盖此设置。
STATE_APPROVED (2):将域名视为一律批准,防止域名验证代理更改状态。
STATE_DENIED (3):将域名视为一律拒绝,防止域名验证代理更改状态。

domains:要更改的域名的列表(以空格分隔),如果使用“all”,则更改所有域名。

am

am -- activity manager,可以使用 am 命令去模拟各种系统的行为,例如去启动一个 activity,强制停止进程,发送广播等。

启动由 intent 指定的 Activity。

start [options] intent	

具体选项:
-D:启用调试功能。
-W:等待启动完成。
--start-profiler file:启动性能分析器并将结果发送至 file。
-P file:类似于 --start-profiler,但当应用进入空闲状态时剖析停止。
-R count:重复启动 activity count 次。在每次重复前,将完成顶层 activity。
-S:在启动 activity 前,强行停止目标应用。
--opengl-trace:启用 OpenGL 函数的跟踪。
--user user_id | current:指定要作为哪个用户运行;如果未指定,则作为当前用户运行。

启动由 intent 指定的 Service

startservice [options] intent	

具体选项:
--user user_id | current:指定要作为哪个用户运行;如果未指定,则作为当前用户运行。

强行停止与 package(应用的软件包名称)关联的所有进程

force-stop package	

终止与 package(应用的软件包名称)关联的所有进程

kill [options] package	 此命令仅终止可安全终止且不会影响用户体验的进程。

具体选项:
--user user_id | all | current  :指定要终止哪个用户的进程;如果未指定,则终止所有用户的进程。

终止所有后台进程

kill-all	

发出广播 intent

broadcast [options] intent	

具体选项包括:
[--user user_id | all | current] :指定要发送给哪个用户;如果未指定,则发送给所有用户。

使用 Instrumentation 实例启动监控

instrument [options] component	通常情况下,目标 component 采用 test_package/runner_class 格式。

具体选项:
-r:输出原始结果(否则,对 report_key_streamresult 进行解码)。与 [-e perf true] 结合使用可生成性能测量的原始输出。
-e name value:将参数 name 设为 value。 对于测试运行程序,通用格式为 -e testrunner_flag value[,value...]-p file:将剖析数据写入 file。
-w:等待插桩完成后再返回。测试运行程序需要使用此选项。
--no-window-animation:运行时关闭窗口动画。
--user user_id | current:指定以哪个用户身份运行插桩;如果未指定,则以当前用户身份运行。

启动 process 的性能分析器,将结果写入 file

profile start process file

停止 process 的性能分析器

profile stop process	

转储 process 的堆,写入 file

dumpheap [options] process file	

具体选项:
--user [user_id | current]:提供进程名称时,指定要转储的进程的用户;如果未指定,则使用当前用户。
-n:转储原生堆,而非托管堆。

设置要调试的应用 package

set-debug-app [options] package	

具体选项:
-w:应用启动时等待调试程序。
--persistent:保留此值。

清除之前使用 set-debug-app 设置的待调试软件包

clear-debug-app	

开始监控崩溃或 ANR

monitor [options]	

具体选项:
--gdb:在崩溃/ANR 时,在给定的端口上启动 gdbserv。

控制 package 的屏幕兼容性模式

screen-compat {on | off} package	

替换设备显示尺寸

display-size [reset | widthxheight] 此命令支持使用大屏设备模仿小屏幕分辨率(反之亦然),对于在不同尺寸的屏幕上测试应用非常有用。
示例:
am display-size 1280x800

替换设备显示密度

display-density dpi	
此命令支持使用低密度屏幕在高密度屏幕环境上进行测试(反之亦然)对于在不同密度的屏幕上测试应用非常有用
示例:
am display-density 480

以 URI 的形式输出给定的 intent 规范

to-uri intent	

以 intent: URI 的形式输出给定的 intent 规范

to-intent-uri intent	

adb命令 – dumpsys

dumpsys 默认打印出当前系统所有service信息,在后面可加上具体的服务名

查看内存信息

adb shell dumpsys meminfo  #获取pid
adb shell dumpsys meminfo pid

adb命令 – 性能相关
包信息Package Information

adb shell dumpsys package 

查看指定APK CPU

adb shell dumpsys cpuinfo |findstr com.android.xxx  

获取电池信息

adb shell dumpsys battery    

查看显示帧率

adb shell dumpsys gfxinfo	

查看显示参数

adb shell dumpsys display	

查看位置信息

adb shell dumpsys location	

更全面信息可参考ADB 用法大全&Android 调试桥 (adb)

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rpk712

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值