Android app ADB命令

Stella981
• 阅读 778

* 查看设备

adb devices

ps这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

若有多台安卓设备,可以通过在adb后面加上 -s <设备id> 对指定设备进行装包、卸载等操作

*启动adb

adb start-server

*关闭adb

adb kill-server

* 安装软件

adb install <apk文件路径>

* 卸载软件

adb uninstall <应用进程名>

*卸载app但保留数据和缓存文件

adb uninstall -k

*重新启动设别

adb reboot

*重启到bootloader,即刷机模式

adb reboot bootloader

*重启到recovery,即恢复模式

adb reboot recovery

*从电脑上发送文件到设备

adb push <本地路径> <远程路径>

ps: 用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

*从设备上下载文件到电脑

adb pull <远程路径> <本地路径>

ps: 用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

*取得设备root权限

adb remount

*登录设备shell

adb shell

adb shell<command命令>

ps: adb shell 后面加的是linux系统操作指令,也即直接运行设备命令, 相当于执行远程命令

-查看手机产线版本

adb shellcat/sys/devices/mx_tsp/appid

-查看手机运营商版本

adb shellcat/proc/lk_info/sw_version

-查看手机是否加密

adb shellcat/proc/lk_info/sec(返回0则非加密。1则加密)

-查看手机型号

adb shell getpropro.build.product

-安卓版本

adb shell getpropversion.release

-查看flyme版本

adb shell getpropro.build.display.id

*使用adb命令对手机进行截屏并拷贝到电脑

adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到手机)

adb pull /sdcard/screenshot.png d:/screenshot.png(拷贝到电脑)

*录制设备屏幕

adb shell screenrecord--bugreport /sdcard/xxx.mp4

*查看性能

adb shell dumpstate

ps其输出内容主要包括以下内容

a.设备基本信息

b.内存使用情况

c.CPU使用情况

d./proc文件夹中保存的系统各种实时信息,特别是内存使用方面的详细信息,如用procrank命令获取的按内存使用率情况排序的进程列表

e.内核的一些信息

f.进程列表

g.各种进程中的线程列表以及各线程的堆栈信息

h.各进程打开的文件

i.Logcat中的三个环状日志的内容,分别是系统主日志SYSTEM、事件日志EVENT和无线电日志RADIO

j.网络相关的信息

k.df命令输入的文件系统使用率信息

l.系统中安装的应用包信息

m.dumpsys命令输出的信息

n.正在运行的应用列表

o.正在运行的服务列表

p.正在运行的内容供应组件列表

*输出当前servers信息

adb shell dumpsys

ps: 输出信息的开始部分就是所有运行的service

-查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。

adb shell dumpsys activity

adb shell dumpsys cpuinfo(CPU)

adb shell dumpsys batterystate(电池)

adb shell dumpsys window(分辨率)

*检测手机运行时间

adb shell uptime

*查看logcat日志

adb logcat -v time-s tag > xxx.log

ps: 其中-v time使输出的日志带时间信息,-s用于通过tag过滤日志(也可以通过管道grep过滤),> 使保存到本地文件。若直接在终端查看日志,则不加。

adb logcat | grep <正则表达式>

ps: grep后为正则表达式

adb logcat | grep <正则表达式> | tee xxx.log

ps:使用 tee可以实现同时在终端输出且保存到文件

*模拟系统按键

adb shell inputkeyevent <数值>

具体数值对应的按键如下

0 -->  "KEYCODE_UNKNOWN"

1 -->  "KEYCODE_MENU"

2 -->  "KEYCODE_SOFT_RIGHT"

3 -->  "KEYCODE_HOME"

4 -->  "KEYCODE_BACK"

5 -->  "KEYCODE_CALL"

6 -->  "KEYCODE_ENDCALL"

7 -->  "KEYCODE_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"

27 -->  "KEYCODE_CAMERA"

28 -->  "KEYCODE_CLEAR"

29 -->  "KEYCODE_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"

85 -->  "TAG_LAST_KEYCODE"

所以,adb shell input keyevent 4 为返回系统主页,adb shell input keyevent 24 为增加音量

*强制杀死进程

adb shell amforce-stop <进程名>

*启动指定Activity

adb shell am start-n <进程名> /

*开关wifi

adb shell svc wifienable #打开wifi

adb shell svc wifidisable #关闭wifi

*查看wifi密码

adb shell cat/data/misc/wifi/*.conf

*获取序列号

adb get-serialno

*查看设备cpu和内存占用情况

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 servicelist

*查看当前内存占用

adb shell cat/proc/meminfo

*查看IO内存分区

adb shell cat/proc/iomem

*重命名文件

adb shell rename <原文件名> <修改后文件名>

*删除system/avi.apk

adb shell rm/system/avi.apk

*删除文件夹及其下面所有文件

adb shell rm -r<文件夹>

*移动文件

adb shell mv <原文件路径> <移动后文件路径>

*设置文件权限

adb shell chmod 777<文件>

*新建文件夹

adb shell mkdirpath/foldelname

*查看文件内容

adb shell cat

*清除log缓存

adb logcat -c

*查看bug报告

adb bugreport

*获取设备名称

adb shell cat/system/build.prop

*查看ADB帮助

adb help

*跑monkey

adb shell monkey -v-p <进程名> <次数>

*当adb 显示端口被占用,拒绝访问时的处理办法:

adb nodaemon server//查看哪个端口被占用

netstat -ano |findstr "<端口号>" //提示占用该端口的进程(非0地址)

(下面步骤可省略,可通过任务管理器杀死)

tasklist /fi “PIDeq <进程号>”//通过pid查看所有进程

taskkill /pid <进程号> /f//杀死进程

* 查看设备adb devicesps这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示若有多台安卓设备,可以通过在adb后面加上 -s <设备id> 对指定设备进行装包、卸载等操作
*启动adbadb start-server
*关闭adbadb kill-server
* 安装软件adb install <apk文件路径>
* 卸载软件 adb uninstall <应用进程名>
*卸载app但保留数据和缓存文件adb uninstall -k
*重新启动设别adb reboot
*重启到bootloader,即刷机模式adb reboot bootloader
*重启到recovery,即恢复模式adb reboot recovery
*从电脑上发送文件到设备adb push <本地路径> <远程路径>ps: 用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
*从设备上下载文件到电脑adb pull <远程路径> <本地路径>ps: 用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
*取得设备root权限adb remount *登录设备shelladb shelladb shell<command命令>ps: adb shell 后面加的是linux系统操作指令,也即直接运行设备命令, 相当于执行远程命令-查看手机产线版本adb shellcat/sys/devices/mx_tsp/appid-查看手机运营商版本adb shellcat/proc/lk_info/sw_version-查看手机是否加密adb shellcat/proc/lk_info/sec(返回0则非加密。1则加密)-查看手机型号adb shell getpropro.build.product-安卓版本adb shell getpropversion.release-查看flyme版本adb shell getpropro.build.display.id
*使用adb命令对手机进行截屏并拷贝到电脑adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到手机)adb pull /sdcard/screenshot.png d:/screenshot.png(拷贝到电脑)
*录制设备屏幕adb shell screenrecord--bugreport /sdcard/xxx.mp4
*查看性能adb shell dumpstateps其输出内容主要包括以下内容a.设备基本信息b.内存使用情况c.CPU使用情况d./proc文件夹中保存的系统各种实时信息,特别是内存使用方面的详细信息,如用procrank命令获取的按内存使用率情况排序的进程列表e.内核的一些信息f.进程列表g.各种进程中的线程列表以及各线程的堆栈信息h.各进程打开的文件i.Logcat中的三个环状日志的内容,分别是系统主日志SYSTEM、事件日志EVENT和无线电日志RADIOj.网络相关的信息k.df命令输入的文件系统使用率信息l.系统中安装的应用包信息m.dumpsys命令输出的信息n.正在运行的应用列表o.正在运行的服务列表p.正在运行的内容供应组件列表
*输出当前servers信息adb shell dumpsys ps: 输出信息的开始部分就是所有运行的service-查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。adb shell dumpsys activityadb shell dumpsys cpuinfo(CPU)adb shell dumpsys batterystate(电池)adb shell dumpsys window(分辨率)
*检测手机运行时间adb shell uptime
*查看logcat日志adb logcat -v time-s tag > xxx.logps: 其中-v time使输出的日志带时间信息,-s用于通过tag过滤日志(也可以通过管道grep过滤),> 使保存到本地文件。若直接在终端查看日志,则不加。adb logcat | grep <正则表达式>ps: grep后为正则表达式adb logcat | grep <正则表达式> | tee xxx.logps:使用 tee可以实现同时在终端输出且保存到文件
*模拟系统按键adb shell inputkeyevent <数值>具体数值对应的按键如下0 -->  "KEYCODE_UNKNOWN"1 -->  "KEYCODE_MENU"2 -->  "KEYCODE_SOFT_RIGHT"3 -->  "KEYCODE_HOME"4 -->  "KEYCODE_BACK"5 -->  "KEYCODE_CALL"6 -->  "KEYCODE_ENDCALL"7 -->  "KEYCODE_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"27 -->  "KEYCODE_CAMERA"28 -->  "KEYCODE_CLEAR"29 -->  "KEYCODE_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"85 -->  "TAG_LAST_KEYCODE"所以,adb shell input keyevent 4 为返回系统主页,adb shell input keyevent 24 为增加音量
*强制杀死进程adb shell amforce-stop <进程名>
*启动指定Activityadb shell am start-n <进程名> /
*开关wifiadb shell svc wifienable #打开wifiadb shell svc wifidisable #关闭wifi
*查看wifi密码adb shell cat/data/misc/wifi/*.conf
*获取序列号adb get-serialno
*查看设备cpu和内存占用情况adb shell top
*查看占用内存前6的appadb 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 servicelist
*查看当前内存占用adb shell cat/proc/meminfo
*查看IO内存分区adb shell cat/proc/iomem
*重命名文件adb shell rename <原文件名> <修改后文件名>
*删除system/avi.apkadb shell rm/system/avi.apk
*删除文件夹及其下面所有文件adb shell rm -r<文件夹>
*移动文件adb shell mv <原文件路径> <移动后文件路径>
*设置文件权限adb shell chmod 777<文件>
*新建文件夹adb shell mkdirpath/foldelname
*查看文件内容adb shell cat
*清除log缓存adb logcat -c
*查看bug报告adb bugreport
*获取设备名称adb shell cat/system/build.prop
*查看ADB帮助adb help
*跑monkeyadb shell monkey -v-p <进程名> <次数>
*当adb 显示端口被占用,拒绝访问时的处理办法:adb nodaemon server//查看哪个端口被占用netstat -ano |findstr "<端口号>" //提示占用该端口的进程(非0地址)(下面步骤可省略,可通过任务管理器杀死)tasklist /fi “PIDeq <进程号>”//通过pid查看所有进程taskkill /pid <进程号> /f//杀死进程

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这