android 控制台命令大全,发送模拟器控制台命令

每个正在运行的虚拟设备都提供了一个控制台,可让您查询和控制模拟设备的环境。例如,当您的应用在模拟器上运行时,您可以使用控制台来管理端口重定向、网络特性和电话事件。

以下命令要求您有正在运行的模拟器。如需详细了解如何运行模拟器,请参阅在 Android 模拟器上运行应用和从命令行启动模拟器。

启动和停止控制台会话

如需访问控制台并输入命令,请从终端窗口中使用 telnet 连接到控制台端口,并提供您的身份验证令牌。每当控制台显示 OK 时,表明它已可以开始接受命令。它没有通常那种提示符。

要连接到正在运行的虚拟设备的控制台,请执行以下操作:

打开终端窗口并输入以下命令:

telnet localhost console-port

模拟器窗口标题列出了控制台端口号。例如,使用控制台端口 5554 的模拟器的窗口标题可能是 Nexus_5X_API_23:5554。此外,adb devices 命令也会输出正在运行的虚拟设备及其控制台端口号的列表。如需了解详情,请参阅查询模拟器/设备实例。

注意:模拟器会监听端口 5554 到 5585 上的连接,并且仅接受来自本地主机的连接。

控制台显示 OK 后,输入 auth

auth_token 命令。

在您可以输入控制台命令之前,模拟器控制台会要求您进行身份验证。auth_token 必须与主目录中 .emulator_console_auth_token 文件的内容相符。

如果该文件不存在,则 telnet localhost console-port 命令会创建该文件,其中包含一个随机生成的身份验证令牌。如需停用身份验证,请从 .emulator_console_auth_token 文件中删除令牌,或者创建一个空文件(如果该文件不存在)。

连接到控制台后,输入控制台命令。

输入 help、help command 或 help-verbose 可查看控制台命令的列表并了解特定的命令。

如要退出控制台会话,请输入 quit 或 exit。

下面是一个会话示例:

$ telnet localhost 5554

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

Android Console: Authentication required

Android Console: type 'auth ' to authenticate

Android Console: you can find your in

'/Users/me/.emulator_console_auth_token'

OK

auth 123456789ABCdefZ

Android Console: type 'help' for a list of commands

OK

help-verbose

Android console command help:

help|h|? print a list of commands

help-verbose print a list of commands with descriptions

ping check if the emulator is alive

automation manage emulator automation

event simulate hardware events

geo Geo-location commands

gsm GSM related commands

cdma CDMA related commands

crash crash the emulator instance

crash-on-exit simulate crash on exit for the emulator instance

kill kill the emulator instance

restart restart the emulator instance

network manage network settings

power power related commands

quit|exit quit control session

redir manage port redirections

sms SMS related commands

avd control virtual device execution

qemu QEMU-specific commands

sensor manage emulator sensors

physics manage physical model

finger manage emulator finger print

debug control the emulator debug output tags

rotate rotate the screen clockwise by 90 degrees

screenrecord Records the emulator's display

fold fold the device

unfold unfold the device

multidisplay configure the multi-display

try 'help ' for command-specific help

OK

exit

Connection closed by foreign host.

模拟器命令参考信息

下表介绍了模拟器控制台命令及其参数和值。

表 1. 模拟器控制台命令

常规命令

说明

avd {stop|start|status|name}

查询、控制和管理虚拟设备,具体说明如下:

stop:停止设备的执行。

start:开始设备的执行。

status:查询虚拟设备状态,可以是 running 或 stopped。

name:查询虚拟设备名称。

avd snapshot {list|save name|load name|delete

name}

利用快照保存和恢复设备状态,具体说明如下:

list:列出所有保存的快照。

save name:以 name 作为名称保存快照。

load name:加载指定快照。

delete name:删除指定快照。

以下示例以 firstactivitysnapshot 作为名称保存快照。

avd snapshot save firstactivitysnapshot

fold

折叠设备以显示其较小的屏幕配置(如果设备可折叠且当前处于展开状态)。

unfold

展开设备以显示其较大的屏幕配置(如果设备可折叠且当前处于折叠状态)。

kill

终止虚拟设备。

ping

检查虚拟设备是否正在运行。

rotate

以 45 度的增量逆时针旋转 AVD。

使模拟器崩溃

说明

crash

在应用执行过程中使模拟器崩溃。

crash-on-exit

在应用退出时使模拟器崩溃。

调试标记

说明

debug tags ...

启用或停用来自模拟器特定部分的调试消息。

tags 参数的值必须来自执行 emulator -help-debug-tags 时显示的调试标记列表。如需详细了解 -help-debug-tags 选项,请参阅常用的模拟器选项。

以下示例启用了 radio 标记:

debug radio

端口重定向

说明

redir list

列出当前端口重定向。

redir add protocol:host-port:guest-port

添加新的端口重定向,具体说明如下:

protocol:必须是 tcp 或 udp。

host-port:要在主机上打开的端口号。

guest-port:要在模拟器上将数据传输到的端口号。

redir del protocol:host-port

删除端口重定向。

protocol:必须是 tcp 或 udp。

host-port:要在主机上打开的端口号。

地理位置

说明

通过向模拟器发送 GPS 定位,设置向模拟器内运行的应用报告的地理位置。

您可以在虚拟设备运行后立即发出 geo 命令。

模拟器通过创建模拟位置提供程序来设置您输入的位置。此提供程序响应由应用设置的位置监听器,并且会将位置提供给 LocationManager.getLastKnownLocation("gps") 来查询位置管理器,以获取模拟设备的当前 GPS 定位。

geo fix longitude latitude satellites [altitude]

向模拟器发送简单的 GPS 定位。

以十进制度为单位指定 longitude 和 latitude。使用 1 到 12 之间的数字指定用于确定位置的 satellites 数量,并以米为单位指定 altitude。

geo nmea sentence

向模拟设备发送 NMEA 0183 语句,就像是从模拟的 GPS 调制解调器发送的一样。让 sentence 以“$GP”开头。

目前仅支持“$GPGGA”和“$GPRCM”语句。以下示例是一个 GPGGA(全球定位系统定位数据)语句,它描述了 GPS 接收器接收的时间、位置和定位数据:

geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx

虚假硬件事件

说明

event types

列出所有虚假事件类型。对于包含代码的事件,代码数列在右侧的圆括号中。

event types

event &lttype&gt can be an integer or one of the following aliases:

EV_SYN

EV_KEY (405 code aliases)

EV_REL (2 code aliases)

EV_ABS (27 code aliases)

EV_MSC

EV_SW (4 code aliases)

EV_LED

EV_SND

EV_REP

EV_FF

EV_PWR

EV_FF_STATUS

EV_MAX

OK

event send types [types ...]

发送一个或多个虚假事件类型。

event codes type

列出指定虚假事件类型的事件代码。

event send type[:code]:[value] [...]

发送一个或多个虚假事件以及可选的代码和代码值。

如需了解到底要发送哪个事件,您可以在手动按模拟器上按钮的同时使用 adb 命令。

下面是当您按电源按钮时生成的事件:adb shell getevent -lt

/dev/input/event12: EV_KEY KEY_POWER DOWN

/dev/input/event12: EV_SYN SYN_REPORT 00000000

/dev/input/event12: EV_KEY KEY_POWER UP

/dev/input/event12: EV_SYN SYN_REPORT 00000000在此特定的情况下,我们只需发送这两个 EV_KEY 事件(即 keydown 和 keyup 事件)即可模拟长按电源按钮的操作:

event send EV_KEY:KEY_POWER:0

OK

event send EV_KEY:KEY_POWER:1

OK

event text message

发送用于模拟按键的字符串。该消息必须是 UTF-8 字符串。

Unicode 消息会根据当前设备键盘进行反向映射,不受支持的字符会被静默舍弃。

控制模拟器向应用报告的电源状态

说明

power display

显示电池和充电器状态。

power ac {on|off}

将交流电充电状态设为 on 或 off。

power status {unknown|charging|discharging|not-charging|full}

按照说明更改电池状态。

power present {true|false}

设置电池存在状态。

power health {unknown|good|overheat|dead|overvoltage|failure}

设置电池运行状况。

power capacity percent

将电池剩余电量状态设为 0 到 100 之间的百分比。

网络连接状态

说明

network status

检查网络状态以及当前的延迟和速度特性。

network delay latency

更改模拟网络延迟。

您可以使用模拟器来模拟各种网络延迟级别,以便您在更接近于实际运行条件的环境中测试您的应用。您可以在模拟器启动时设置延迟级别或范围,也可以在应用在模拟器中运行时使用控制台来更改延迟。

如需在模拟器启动时设置延迟,请使用 -netdelay 模拟器选项,并指定一个受支持的 latency 值,如下面的网络延迟格式列表中所列。

下面是一些示例:

emulator -netdelay gprs

emulator -netdelay 40,100

如需在模拟器运行时对网络延迟进行更改,请连接到控制台,然后使用 netdelay 命令,并指定一个受支持的 latency 值,如下面的网络延迟格式列表中所列。

network delay gprs

network delay 40 100

网络延迟格式:

网络 latency 的格式可以是以下几种格式之一(数字以毫秒为单位):

gprs:GPRS,使用的延迟范围为 150(最小值)到 550(最大值)。

edge:EDGE/EGPRS,使用的延迟范围为 80(最小值)到 400(最大值)。

umts:UMTS/3G,使用的延迟范围为 35(最小值)到 200(最大值)。

none:没有延迟。

num:模拟指定的延迟(以毫秒为单位)。

min:max:模拟指定的延迟范围。

network speed speed

您可以使用模拟器来模拟各种网络传输速率。

您可以在模拟器启动时设置传输速率或范围,也可以在应用在模拟器中运行时使用控制台来更改速率。

如需在模拟器启动时设置网络速度,请使用 -netspeed 模拟器选项,并指定一个受支持的 speed 值,如下面的网络速度格式列表中所列。下面是一些示例:

emulator -netspeed gsm @Pixel_API_26

emulator -netspeed 14.4,80 @Pixel_API_26

如需在模拟器运行时对网络速度进行更改,请连接到控制台,然后使用 network speed 命令,并指定一个受支持的 speed 值,如下面的网络速度格式列表中所列。

network speed 14.4 80

网络速度格式:

网络 speed 的格式可以是以下几种格式之一(数字以“千比特/秒”为单位):

gsm:GSM/CSD,使用的上传速度为 14.4,下载速度为 14.4。

hscsd:HSCSD,使用的上传速度为 14.4,下载速度为 43.2。

gprs:GPRS,使用的上传速度为 40.0,下载速度为 80.0。

edge:EDGE/EGPRS,使用的上传速度为 118.4,下载速度为 236.8。

umts:UMTS/3G,使用的上传速度为 128.0,下载速度为 1920。

hsdpa:HSDPA,使用的上传速度为 348.0,下载速度为 14400.0。

lte:LTE,使用的上传速度为 58,000,下载速度为 173,000。

evdo:EVDO,使用的上传速度为 75,000,下载速度为 280,000。

full:速度不受限制,但取决于计算机的连接速度。

num:设置用于上传和下载的精确速率(以“千比特/秒”为单位)。

up:down:分别设置用于上传和下载的精确速率(以“千比特/秒”为单位)。

network capture {start|stop} file

向文件发送数据包。以下列表介绍了参数和参数值:

start file:开始向指定的文件发送数据包。

stop file:停止向指定的文件发送数据包。

电话模拟

说明

Android 模拟器包含自己的 GSM 和 CDMA 模拟调制解调器,可让您在模拟器中模拟电话功能。例如,借助 GSM,您可以模拟呼入电话并建立和终止数据连接。借助 CDMA,您可以提供订阅来源和首选漫游列表。Android 系统处理模拟通话的方式与处理实际通话完全相同。模拟器不支持通话音频。

gsm {call|accept|cancel|busy} phonenumber

gsm 参数如下:

call:模拟来自 phonenumber 的呼入电话。

accept:接受来自 phonenumber 的呼入电话,并将通话状态更改为 active。只有在当前通话状态为 waiting 或 held 时,才能将通话状态更改为 active。

cancel:终止来自 phonenumber 的呼入电话或对它的外拨电话。

busy:关闭对 phonenumber 的外拨电话,并将通话状态更改为 busy。

只有在当前通话状态为 waiting 时,才能将通话状态更改为 busy。

gsm {data|voice} state

data state 命令用于更改 GPRS 数据连接的状态,data voice state 则用于更改 GPRS 语音连接的状态,具体说明如下:

unregistered:没有可用的网络。

home:已连接到本地网络,非漫游。

roaming:已连接到漫游网络。

searching:正在搜索网络。

denied:只能拨打紧急呼叫电话。

off:与 unregistered 相同。

on:与 home 相同。

gsm hold

将通话状态更改为 hold。只有在当前通话状态为 active 或 waiting 时,才能将通话状态更改为 hold。

gsm list

列出所有呼入电话和外拨电话及其通话状态。

gsm status

报告当前的 GSM 语音/数据连接状态。相关的值就是前述 voice 和 data 命令的值。

gsm signal {rssi|ber}

在下次 15 秒的更新时更改报告的信号强度 (rssi) 和误码率 (ber)。以下列表介绍了参数及其值:

rssi 的范围为 0 到 31,99 表示未知。

ber 的范围为 0 到 7,99 表示未知。

gsm signal-profile num

设置信号强度配置文件。输入 0 到 4 之间的数字。

cdma ssource source

source:设置当前的 CDMA 订阅来源,source 是基于网络的许可名单,其中包含 CDMA 运营商的用户及其值,具体说明如下:

nv:从非易失性 RAM 读取订阅内容。

ruim:从移动用户身份识别模块 (RUIM) 读取订阅内容。

cdma prl_version version

转储当前的首选漫游列表 (PRL) 版本。版本号是指 PRL 数据库的版本号,该数据库中包含在系统选择和获取过程中使用的信息。

在模拟器上管理传感器

说明

这些命令与 AVD 中可用的传感器有关。除了使用 sensor 命令之外,您还可以在模拟器的 Virtual sensors 屏幕上的 Accelerometer 和 Additional sensors 标签页中查看和调整相关设置。如需了解详情,请参阅使用扩展控件、设置和帮助。

sensor status

列出所有传感器及其状态。下面是 sensor status 命令的输出示例:

sensor get sensor-name

获取 sensor-name 的设置。以下示例会获取加速度传感器的值:

sensor get acceleration

acceleration = 2.23517e-07:9.77631:0.812348

以英文冒号 (:) 分隔的 acceleration 值是指使用扩展控件、设置和帮助中介绍的虚拟传感器的 x、y 和 z 坐标。

sensor set sensor-name value-x:value-y:value-z

设置 sensor-name 的值。以下示例将加速度传感器设为以下以英文冒号分隔的 x、y 和 z 值。如需了解详情,请参阅使用扩展控件、设置和帮助。

sensor set acceleration 2.23517e-07:9.77631:0.812348

短信模拟

说明

sms send sender-phone-number textmessage

生成收到的模拟短信。以下列表介绍了参数及其值:

sender-phone-number:包含任意数字字符串。

textmessage:短信。

以下示例向电话号码 4085555555 发送了一条内容为“hi there”的短信。

sms send 4085555555 hi there

控制台将短信转发给 Android 框架,Android 框架继而将其传递给模拟器上用来处理短信的应用,例如“信息”应用。如果您传递 10 个数字,应用会将其格式设为电话号码。更长或更短的数字字符串将按其发送方式显示。

指纹模拟

说明

finger touch fingerprint-id

模拟手指触摸传感器。

finger remove

模拟手指移开。

如需查看有关如何使用这些命令的说明,请参阅指纹模拟和验证。

指纹模拟和验证

708665d6570e11fef9eb1afd6b80860b.png

图 1. 指纹身份验证屏幕。

您可以使用 finger 命令来模拟和验证应用的指纹身份验证。您需要使用 SDK 工具 24.3 或更高版本,以及 Android 6.0(API 级别 23)或更高版本。

如需模拟和验证指纹身份验证,请按以下步骤操作:

如果您还没有指纹 ID,应在模拟器中注册一个新指纹,方法是依次选择 Settings > Security > Fingerprint,并按照注册说明进行操作。

设置您的应用以接受指纹身份验证。执行此设置后,您的设备将显示指纹身份验证屏幕。

在您的应用显示指纹身份验证屏幕后,转到控制台并输入 finger touch 命令以及您创建的指纹 ID。这样就可以模拟手指触摸。

然后,输入 finger remove 命令以模拟手指移开。

您的应用应该像用户触摸了指纹传感器而后又从上面移开一样进行响应。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值