900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android adb shell命令详解及实例

Android adb shell命令详解及实例

时间:2020-03-13 23:40:24

相关推荐

Android adb shell命令详解及实例

Android的内核本身就是Linux,所以Android本身也支持Linux命令,但是因为是手机系统,所以进行了一定的删减,部分命令不支持,而不支持的部分,我们可以通过安装busybox这个软件进行填补。

认识使用android adb命令详解实例

手机执行Shell命令

在手机中执行Shell命令:

1) 每次都加上adb shell来进行命令的发送与执行

adb shell <command>

2)获取模拟器所有包名

adb shell pm list packages

3)获取模拟器所有包名并且包括APK路径

adb shell pm list packages -f

4)获取包名对应的APK路径

adb shell pm path packageName

5)清理应用数据

adb shell pm clear packageName

6)启动应用

adb shell am start -n 包名/Activity类名

例子:启动应用宝:

adb shell am start -n com.tencent.android.qqdownloader/com.tencent.assistant.activity.SplashActivity

指定模拟器启动动应用宝:

adb -s 127.0.0.1:5555 shell am start -n com.tencent.android.qqdownloader/com.tencent.assistant.activity.SplashActivity

7)关闭应用

adb shell am force-stop 包名

8)模拟输入

adb shell input text 字符串(不支持中文)

9)模拟按键

adb shell input keyevent <keycode>键值

10)模拟鼠标点击

adb shell input tap X Y

11)模拟鼠标滑动

adb shell input swipe X1 Y1 X2 Y2

12)截屏

adb shell screencap -p /sdcard/sc.pngadb shell screencap -p /sdcard/text.png

可以使用adb shell screencap -h查看screencap命令的帮助信息,下面是两个有意义的参数及含义:

参数含义-p指定保存文件为 png 格式-d display-id指定截图的显示屏编号(有多显示屏的情况下)实测如果指定文件名以 .png 结尾时可以省略 -p 参数;否则需要使用 -p 参数。如果不指定文件名,截图文件的内容将直接输出到 stdout。

13)屏幕录像

例如,屏幕开始录像并且储存到/sdcard中,同时名字为demo.mp4,录制屏幕以 mp4 格式保存到 /sdcard:

adb shell screenrecord /sdcard/demo.mp4

需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。

可以使用adb shell screenrecord --help查看screenrecord命令的帮助信息,下面是常见参数及含义:

参数含义--size WIDTHxHEIGHT视频的尺寸,比如 1280x720,默认是屏幕分辨率。--bit-rate RATE视频的比特率,默认是 4Mbps。--time-limit TIME录制时长,单位秒。--verbose输出更多信息。

14)关闭设备请求,开启设备

adb shell stopadb shell start

15)设备关机以及重启

adb rebootadb shutdown

16)设置手机IMEI/IMSI/手机号/SIM卡序列号(1.7之后版本)

adb shell setprop phone.imei 865166023949731adb shell setprop phone.imsi 460000000000000adb shell setprop phone.linenum 13800000000adb shell setprop phone.simserial 89860000000000000000

16)滑动解锁

如果锁屏没有密码,是通过滑动手势解锁,那么可以通过 input swipe 来解锁。

命令(参数以机型 Nexus 5,向上滑动手势解锁举例):

adb shell input swipe 300 1000 300 500

参数300 1000 300 500分别表示起始点x坐标起始点y坐标结束点x坐标结束点y坐标

17)查看内核日志

adb shell dmesg

查看设备信息

1)型号

adb shell getprop ro.product.model

2)电池状况

adb shell dumpsys battery

返回:

> adb shell dumpsys batteryCurrent Battery Service state:AC powered: trueUSB powered: falseWireless powered: falsestatus: 1health: 1present: falselevel: 100scale: 100voltage: 0temperature: 295technology:

其中scale代表最大电量,level代表当前电量。上面的输出表示还剩下100%的电量。

3)屏幕分辨率

adb shell wm size

输出示例:

Physical size: 1080x1920

该设备屏幕分辨率为 1080px * 1920px。

4)屏幕密度

adb shell wm density

输出示例:

Physical density: 420

该设备屏幕密度为 420dpi。

5)显示屏参

adb shell dumpsys window displays

输出示例:

WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)Display: mDisplayId=0init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731deferred=false layoutNeeded=false

其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp。

6)android_id

adb shell settings get secure android_id

输出示例:

51b6be48bac8c569

7)IMEI

在 Android 4.4 及以下版本可通过如下命令获取 IMEI:

adb shell dumpsys iphonesubinfo

输出示例:

Phone Subscriber Info:Phone Type = GSMDevice ID = 860955027785041

其中的 Device ID 就是 IMEI。

而在 Android 5.0 及以上版本里这个命令输出为空,得通过其它方式获取了(需要 root 权限):

adb shellsuservice call iphonesubinfo 1

输出示例:

service call iphonesubinfo 1Result: Parcel(0x00000000: 00000000 0000000f 00360038 00310035 '........8.6.5.1.'0x00000010: 00360036 0030 00380039 00330032 '6.6.0.2.9.8.2.3.'0x00000020: 00350031 00000033 '1.5.3... ')

把里面的有效内容提取出来就是 IMEI 了,比如这里的是865166029823153

参考:adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop

8)Android 系统版本

adb shell getprop ro.build.version.release

9)Mac 地址

adb shell cat /sys/class/net/wlan0/address

返回:

f8:a9:d0:17:42:4d

9)CPU 信息

adb shell cat /proc/cpuinfo

10)内存信息

adb shell cat /proc/meminfo

其中,MemTotal 就是设备的总内存,MemFree 是当前空闲内存。

更多硬件与系统属性

设备的更多硬件与系统属性可以通过如下命令查看:

adb shell cat /system/build.prop

这会输出很多信息,包括前面几个小节提到的「型号」和「Android 系统版本」等。

输出里还包括一些其它有用的信息,它们也可通过

adb shell getprop <属性名> 命令单独查看

列举部分返回属性:

属性名含义ro.build.version.sdkSDK 版本ro.build.version.releaseAndroid 系统版本ro.build.version.security_patchAndroid 安全补丁程序级别ro.product.model型号ro.product.brand品牌ro.product.name设备名ro.product.board处理器型号ro.product.cpu.abilistCPU 支持的 abi 列表persist.sys.isUsbOtgEnabled是否支持 OTGdalvik.vm.heapsize每个应用程序的内存上限ro.sf.lcd_density屏幕密度

查看连接过的 WiFi 密码

注:需要 root 权限。

命令:

adb shellsucat /data/misc/wifi/*.conf

输出示例:

network={ssid="TP-LINK_9DFC"scan_ssid=1psk="1122334455"key_mgmt=WPA-PSKgroup=CCMP TKIPauth_alg=OPENsim_num=1priority=13893}network={ssid="TP-LINK_F11E"psk="5544332211"key_mgmt=WPA-PSKsim_num=1priority=17293}

ssid即为我们在 WLAN 设置里看到的名称,psk为密码,key_mgmt为安全加密方式。

设置系统日期和时间

注:需要 root 权限。

命令:

adb shellsudate -s 1030.161600

表示将系统日期和时间更改为 年 10 月 30 日 16 点 16 分 00 秒。

重启手机

adb reboot

检测设备是否已 root

adb shellsu

此时命令行提示符是$则表示没有 root 权限,是#则表示已 root。

开启/关闭 WiFi

注:需要 root 权限。

有时需要控制设备的 WiFi 状态,可以用以下指令完成。

开启 WiFi:

adb rootadb shell svc wifi enable

关闭 WiFi:

adb rootadb shell svc wifi disable

若执行成功,输出为空;若未取得 root 权限执行此命令,将执行失败,输出Killed

查看进程

adb shell ps

返回:

USERPID PPID VSIZE RSSWCHAN PC NAMEroot109412 980 00000000 08073a60 S /initroot200000000000 00000000 S kthreaddroot320000000000 00000000 S ksoftirqd/0root520000000000 00000000 S kworker/0:0Hroot720000000000 00000000 S rcu_preemptroot820000000000 00000000 S rcu_schedroot920000000000 00000000 S rcu_bhroot10 20000000000 00000000 S rcuop/0root11 20000000000 00000000 S rcuos/0root12 20000000000 00000000 S rcuob/0root13 20000000000 00000000 S migration/0root14 20000000000 00000000 S watchdog/0root15 20000000000 00000000 S watchdog/1root16 20000000000 00000000 S migration/1root17 20000000000 00000000 S ksoftirqd/1root18 20000000000 00000000 S kworker/1:0root19 20000000000 00000000 S kworker/1:0H

列名 含义

USER 所属用户

PID 进程 ID

PPID 父进程 ID

NAME 进程名

查看实时资源占用情况

adb shell top

输出返回:

PID PR CPU% S #THRVSSRSS PCY UIDName7 1 0% S10K0K fg rootrcu_preempt1530 0 0% S 75 1633276K 104552K fg system system_server3 0 0% S10K0K fg rootksoftirqd/05 0 0% S10K0K fg rootkworker/0:0H8 0 0% S10K0K fg rootrcu_sched9 0 0% S10K0K fg rootrcu_bh10 1 0% S10K0K fg rootrcuop/011 0 0% S10K0K fg rootrcuos/012 0 0% S10K0K fg rootrcuob/0

列名 含义

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 进程名

其他

命令功能cat显示文件内容cd切换目录chmod改变文件的存取模式/访问权限df查看磁盘空间使用情况grep过滤输出kill杀死指定 PID 的进程ls列举目录内容mount挂载目录的查看和管理mv移动或重命名文件ps查看正在运行的进程rm删除文件top查看进程的资源占用情况

参考:ADB Usage Complete / ADB 用法大全

使用android adb命令详解实例

原文: Android adb shell命令详解及实例

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。