常用adb指令

特别声明:本文参考整理自:https://blog.csdn.net/zhonglunshun/article/details/78362439

一、设备相关

1、adb devices , 获取设备列表及设备状态
$ adb devices
2、连接设备
  • 连接
$ adb connect 793eca9e:5555
  • 查看连接状态
$ adb get-state

注:
若执行指令 adb get-state报错:

This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.

则执行指令:adb kill-server

二、安装包相关

1、查看设备已安装应用包名
//查看所有应用:
$ adb shell pm list packages
//查看系统应用:
$ adb shell pm list packages -s
//第三方应用:
$ adb shell pm list packages -3
//过滤查看应用:
$ adb shell pm list packages | grep mazhuang

2、安装应用
"""
adb install 实际是分三步完成:
*       push apk 文件到 /data/local/tmp。
*       调用 pm install 安装。
*       删除 /data/local/tmp 下的对应 apk 文件。
参数  含义
-l  将应用安装到保护目录 /mnt/asec
-r  允许覆盖安装
-t  允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用
-s  将应用安装到 sdcard
-d  允许降级覆盖安装
-g  授予所有运行时权限
"""
$ adb install [-lrtsdg] <path_to_apk>
3、卸载应用
//参数:-k:表示卸载应用但保留数据和缓存目录
$ adb uninstall [-k] 应用包名(格式:com.xxx.xxx)
4、清除应用数据与缓存
$ adb shell pm clear <packagename>
5、查看应用详情信息
$ adb shell dumpsys packages <packagename>
6、查看前台Activity
$ adb shell dumpsys activity activities | grep mFocusedActivity
7、查看正在运行的Services
$ adb shell dump sys activity services [<packagename>]
6、启动应用
$ adb shell am start -n package/acticity

三、文件管理

1、复制设备里的文件到电脑
adb pull <surece_file_path> <destination_file_path>

2、复制电脑里的文件到设备

adb push <source_file_path> <detionation_file_path>

四、模拟按键/输入

1、模拟点击
$ adb shell input x y
2、
$ adb shell input keyevent keycode
3、滑动解锁
$ adb shell input swipe start_x start_y end_x end_y
4、输入文本
$ adb shell input text hello

五、查看日志文件

1、输出日志文件
"""
Android 的日志分为如下几个优先级(priority):
*       V —— Verbose(最低,输出得最多)
*       D —— Debug I —— Info
*       W —— Warning
*       E —— Error
*       F—— Fatal
*       S —— Silent(最高,啥也不输出)
例如:adb logcat *:W
"""
$ adb logcat [<option>] …[<filter-spec>]…

2、按照tag和级别过滤日志

//表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)
$ adb logcat ActivityManager:I MyAPP:D *:S

3、日志格式
  • brief:<priority>/<tag>(<pid>): <message>
  • process:<priority>(<pid>) <message>
  • tag:<priority>/<tag>: <message>
    -raw:<message>
  • time:<datetime> <priority>/<tag>(<pid>): <message>
  • threadtime:<datetime> <pid> <tid> <priority> <tag>: <message>
  • long:[ <datetime> <pid>:<tid> <priority>/<tag> ] <message>
$ adb logcat -v <format>
4、内核日志
$ adb shell dmesg

六、查看设备信息

1、型号

$ adb shell getprop ro.product.model

2、电池状况

$ adb shell dump sys battery

3、屏幕分辨率

$ adb shell wm size

4、屏幕密度

$ adb shell wm density

5、android_id

$ adb shell setting get secure android_id

6、IMEI

$ adb shell dump sys iphonesubinfo

7、系统版本

$ adb shell getprop ro.build.version.release

8、IP地址

$ adb shell ifconfig |grep Mask

9、Mac地址

$ Adb shell cat /sys/class/net/wlan0/address

10.CPU信息

$ adb shell cat /proc/cupinfo

11、内存信息

$ adb shell cat /proc/meminfo

七、修改设置

#######1、修改分辨率

$ adb shell wm size 480*1024
2、分辨率重置
$ adb shell wm size reset
3、修改屏幕密度
$ adb shell wm density reset
4、屏幕密度重置
$ adb shell wm density 160
5、修改显示区域
$ adb shell wm overscan left, top, right, down
7、恢复原显示区域
$ adb shell wm overscan reset
8、状态栏和导航栏的显示隐藏
  • immersive.full 同时隐藏
  • immersive.status 隐藏状态栏
  • immersive.navigation 隐藏导航栏
  • immersive.preconfirms ?
$ adb shell settings put global policy_control<key-value>
9、恢复屏幕正常模式
$ adb shell settings put global policy_control null

八、截屏与录制

1、屏幕截图
//-p    指定保存文件为 png 格式
//-d display-id 指定截图的显示屏编号(有多显示屏的情况下)
$ adb exec-out screencap -p > sc.png
$ adb shell screencap  -p  /sdcard/sc.png
2、录制屏幕
$ adb shell screen record /sdcard/filename.mp4

九、其他

1、查看进程
$ adb shell ps
$ adb shell ps | grep monkey
2、查看实时资源占用情况
  • PID 进程 ID
  • PR 优先级
  • CPU% 当前瞬间占用 CPU 百分比
  • S 进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
  • THR 线程数
  • VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
  • RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  • PCY 调度策略优先级,SP_BACKGROUND/SPFOREGROUND
  • UID 进程所有者的用户 ID
  • NAME 进程名
$ adb shell top
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人的思维模式有以下几种: 一、点式思维。这种思维模式的人,注意力一旦定格在单一事件上就很难转移,极为执着,甚至极端...
    智慧启蒙阅读 611评论 0 1
  • 这几天,我一直在管理我的微信公众平台。选稿,编辑,发送,宣传,互动…为了有更多的用户加入,有更多的阅读者,...
    王栎涵阅读 324评论 2 5
  • “平行宇宙” 下午去买东西,我一边听书一边走路,到了,掏出卡打开楼门,一个女孩紧走两步应该是没卡,我等了她一会,一...
    pris念念阅读 346评论 1 0
  • 信息时代让我们看到了更多的新鲜事物,看到了更大的世界,各式各样的新闻让我们眼花缭乱,各种APP已经把新闻有了分类,...
    白房白阅读 341评论 0 2
  • 今天下班,语文老师和英语老师一起回家。 英语老师很苦恼地说:“今天跟学生讲被动主动语态,举例说主动...
    周周_0fee阅读 209评论 0 0