3.6.4 Android仿真器远程登录模式
在Android仿真器启动后,可以在Windows/Linux/Mac系统上运行telnet指令连接到Android仿真器的console终端机模式,指令如下:
- telnet localhost <console-port>
- telnet localhost 5554
一般情况Android仿真器的序号为5554,所以运行telnet时请将console-port改成想要连接的仿真器序号,例如5554、5556或5558。使用telnet localhost 5554连接上仿真器后,输入help指令,就会看到如图3-33的画面。画面中显示着登录Android仿真器终端模式后,可以运行的指令有event、geo、gsm、kill、network、power、redir、sms、vm与window等,这些指令都相当的实用,可以控制Android手机的操作,也可以更进一步地了解掌控Android仿真器,现在就让我们实际演练一下这些仿真器终端模式的指令是如何应用的?
(点击查看大图)图3-33 telnet登录仿真器终端模式 |
- event text testmessage
event可以发送send、types、codes与text四种事件给仿真器,例如event text testmessage发送文字字符串test message给仿真器,可以在Android仿真器画面上立即看到这串消息。
- geo <fix|nmea>
- geo fix 121.5 25.4 10
- geo nmea $GPRMC,071236,A,3751.65,S,14527.36,E,000.0,073.0,130309,011.3,E*62
geo指令可以发送GPS的位置给仿真器。geo fix是发送一组固定的GPS位置,它的格式为经度(longitude)、纬度(latitude)与高度(altitude)。可以从http://www.kenjikojima.com/jikankei/ map.html网站轻易地从网站上的地图画面查到经纬度,例如经度121.5,纬度25.4与高度10公尺。而当Android装置有其他外接的GPS卫星导航机通过USB连接时,则可以使用geo nmea的指令方式,送给外接的GPS接收器位置。NEMA是National Electrical Manufacturers Association缩写,它制定了GPS导航装置的NEMA 0183协议。gps nema的格式相当的复杂,共有12个字段,但也因为如此它比geo fix位置定位精确许多,gps nema的格式帮助如下:
- $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
- $GPRMC,hhmmss.ss,A,IIII.II,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh
- $GPRMC (Recommended minimum specific GPS/Transit data)
- <1> UTC时间,hhmmss (时分秒) 格式,例如:071236
- <2> 定位状态,A=有效定位,V=无效定位,例如A
- <3> 纬度ddmm.mm (度度分分.分分) 格式,例如3751.65,37度51.65分
- <4> 纬度半球N (北半球) 或S (南半球),例如S
- <5> 经度dddmm.mm (度度度分分.分分)格式,例如14527.36,145度27.36分
- <6> 经度半球E (东经) 或W (西经),例如E
- <7> 地面速率(000.0~999.9节,前面的0也将被发送),例如静止000.0
- <8> 地面航向(000.0~359.9度,前面的0也将被发送),例如073.0
- <9> UTC日期,ddmmyy (日月年) 格式,例如130309
- <10> 磁偏角 (000.0~180.0度,前面的0也将被发送),例如011.3
- <11> 磁偏角方向,E(东) 或W(西),例如E
- <12> 模式指示(NEMA 0183的A=自主定位,D=差分,E=估算,N=信息无效),
- *hh 为检查码,例如*62
- gsm call 5556688
gsm指令可以仿真GSM手机拨打的状态,它的参数有call、busy、hold、accept、cancel、data、voice与 status等,只要后面加上任意一个电话号码,就可以在Android仿真器中进行GSM电话的拨打仿真。
- kill
在Android仿真器的终端模式输入kill指令,就会立即将仿真器窗口关闭退出。
- network status
查看Android仿真器的网络发送状态。
- network speed full
- network speed umts
network speed可以更改手机的网络发送模式,共有gsm (GSM/CSD)、gprs (GPRS)、edge (EDGE/EGPRS)、umts (UMTS/3G)与hsdpa (HSDPA/3.5G) 或者full全速发送几种模式,不限定采用哪一种发送模式,此为Android系统的网络默认设置。
- power display
显示当前手机的电源状态是否接上AC电源以及电池的剩余电量。
- redir add tcp:5000:6000
使用redir指令,就类似adb forward指令,可以更改仿真器的TCP或UDP通信端口,例如上面的例子将用来开发Android的计算机TCP通信端口5000所接收到的信息,导向到Android仿真器的TCP通信端口6000。
- redir list
列出当前已经导向的TCP或UDP通信端口。
- redir del tcp:5000
redir del可以将已经导向的通信端口删除,例如将刚刚计算机TCP port 5000导向到仿真器TCP port 6000的功能删除,就运行redir del tcp:5000。
- sms send 5556688 this is a test
sms可以发送短信,它的格式是sms send <手机号码> <短信>,所以上面的例子会将this is a test短信送给手机号码5556688。Android仿真器会马上显示收到这条短信
- Window scale factor (factor: 0.1-3.0)
- window scale 1.2
window scale可以立即改变仿真器窗口的大小,就如同运行emulator指令时加上-scale的效果,同样的factor可以是0.1~3.0。当运行window scale 1.2时,可立即看到Android仿真器窗口放大了1.2倍。