Android emulator 手机模拟器使用详述

来源:互联网 发布:格式化的数据恢复 编辑:程序博客网 时间:2024/06/01 10:02
以下操作均要在进入 android-sdk-linux_x86/tools 下执行
$ cd~/android-sdk-linux_x86/tools

一、创建 Android虚拟设备
1)查询当前可用的模拟器类型及所支持的显示模式
   $./android list targets
  Available Android targets:
  id: 1 or "android-3"
    Name: Android 1.5
    Type: Platform
    API level: 3
    Revision: 4
    Skins: QVGA-P, QVGA-L, HVGA (default), HVGA-P,HVGA-L
  id: 2 or "Google Inc.:Google APIs:3"
    Name: Google APIs
    Type: Add-On
    Vendor: Google Inc.
    Revision: 3
    Description: Android + Google APIs
    Based on Android 1.5 (API level 3)
    Libraries:
     * com.google.android.maps (maps.jar)
         API for Google Maps
    Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L,HVGA-P
  id: 3 or "android-4"
    Name: Android 1.6
    Type: Platform
    API level: 4
    Revision: 3
    Skins: QVGA, HVGA (default), WVGA800, WVGA854
  id: 4 or "Google Inc.:Google APIs:4"
    Name: Google APIs
    Type: Add-On
    Vendor: Google Inc.
    Revision: 2
    Description: Android + Google APIs
    Based on Android 1.6 (API level 4)
    Libraries:
     * com.google.android.maps (maps.jar)
         API for Google Maps
    Skins: WVGA854, HVGA (default), WVGA800, QVGA
  id: 5 or "android-7"
    Name: Android 2.1-update1
    Type: Platform
    API level: 7
    Revision: 2
    Skins: QVGA, WQVGA432, HVGA (default), WVGA800, WQVGA400,WVGA854
  id: 6 or "Google Inc.:Google APIs:7"
    Name: Google APIs
    Type: Add-On
    Vendor: Google Inc.
    Revision: 1
    Description: Android + Google APIs
    Based on Android 2.1-update1 (API level 7)
    Libraries:
     * com.google.android.maps (maps.jar)
         API for Google Maps
    Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800,QVGA
  id: 7 or "android-8"
    Name: Android 2.2
    Type: Platform
    API level: 8
    Revision: 2
    Skins: QVGA, WQVGA432, HVGA (default), WVGA800, WQVGA400,WVGA854
  id: 8 or "Google Inc.:Google APIs:8"
    Name: Google APIs
    Type: Add-On
    Vendor: Google Inc.
    Revision: 2
    Description: Android + Google APIs
    Based on Android 2.2 (API level 8)
    Libraries:
     * com.google.android.maps (maps.jar)
         API for Google Maps
    Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800,QVGA
2) 创建名为 Android2.1的虚拟设备
   $./android create avd -n Android1.5 -t 2
  Created AVD 'Android1.5' based on Google APIs (GoogleInc.)
  注:1. avd = Android Virtual Devices,Android 虚拟设备;
    2. 参数 -n 是指定虚拟设备的名字,如上为Android1.5,
       参数 -t是指定虚拟设备的目标平台,
            如上 2 是指Android1.5 + Google APIs 目标开发平台;
  或者
   $./android
  在弹出的“Android SDK and AVD Manager”对话框中 ->
  点击左窗格中的“Virtual Devices” ->
  点击右窗格中的[New...]按钮,
  创建一个 Name 为 "Android1.5"、
       Target 为 "Google APIs(Google inc.)-API Level3"
  的新模拟器;
  注:SD Card、Skin 和 Hardware均可在这个对话框中配置,这个方法最简单且最强,强烈推荐!

二、启动 Android虚拟设备
1) 用参数 -avd指定虚拟设备名字,即可启动指定名称的虚拟设备
   $./emulator -avd Android1.5
  或者加上 -skin 参数以指定显示模式的方式来启动虚拟设备
   $./emulator -avd Android1.5 -skin HVGA-L
  注:480*320 - 水平显示;
   $./emulator -avd Android1.5 -skin HVGA-P
  注:320*480 - 垂直显示,即虚拟设备的默认模式;
   $./emulator -avd Android1.5 -skin QVGA-L
  注:320*240 - 水平显示;
   $./emulator -avd Android1.5 -skin QVGA-P
  注:240*320 - 垂直显示;
  注:1.有效的显示模式应根据 ./android list targets 命令结果来设置;
    2.启动虚拟设备后,不要将运行 emulator -avd 命令的终端窗口关闭,
      否则虚拟设备也会被关掉,
      操作虚拟设备生成的相关消息将会显示在这个终端窗口里,
      以便查看虚拟设备正在进行什么样的动作。

三、Android虚拟设备远程登录
1) 在 Android 虚拟设备启动后,可以在Windows/Linux/Mac 系统上运行 telnet 指令,
  连接到 Android 虚拟设备的 console 终端模式,命令如下:
   $telnet localhost <控制端口>
  例如:
   $./telnet localhost 5554
  Trying ::1...
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  Android Console: type 'help' for a list ofcommands
  OK
  注:一般情况 Android 虚拟设备的序号为5554,
    所以运行 telnet 时请将 控制端口 改成想要连接的虚拟设备的序号,
    虚拟设备的序号就在虚拟设备窗口的标题栏上,
    冒号前就是虚拟设备的序号,冒号后就是虚拟设备的名字,
    如:5554:Android1.5 。
2) 连接上 Android 虚拟设备后,输入help 指令,就会看到 Android 控制命令帮助,如下:
help
Android console commandhelp:
   help|h|?        print a list of commands
   event           simulate hardware events
   geo             Geo-location commands
   gsm             GSM related commands
   kill            kill 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             manager virtual device state
   window          manage emulator window
try 'help ' forcommand-specific help
OK
注:以上指令都相当的实用,可以控制 Android手机的操作,
也可以更进一步地掌控 Android虚拟设备。
   1.event 命令可以给虚拟设备 send、types、codes 与 text 四种事件;
  格式:
  eventsend            send a series of events to the kernel
  eventtypes           list all aliases
  eventcodes           list allaliases for a given
  eventtext            simulate keystrokes from a given text
  例如:
  event text HelloAndroid
  发送文字字符串 HelloAndroid 给虚拟设备,可以在 Android手机画面上立即看到这串消息。
 
   2.geo 命令可以给虚拟设备 GPS 的位置;
  格式:
  geonmea            send an GPS NMEA sentence
  注:NEMA 是 National Electrical ManufacturersAssociation缩写,
    它制定了GPS导航装置的NEMA 0183协议。
    而当 Android 设备有与其他外接的 GPS 卫星导航器通过USB连接时,
    则可以使用 geo nmea 的指令方式,送给外接的 GPS 卫星导航器位置。
    NEMA 共有12个字段,因此 geo nmea 比 geo fix 定位精确许多,
    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/Transitdata)
     <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> 模式指示(NEMA0183的A=自主定位,D=差分,E=估算,N=信息无效),
     *hh为检查码,例如*62      
  geofix             send a simple GPS fix
  注:geo fix 是发送一组固定的 GPS 位置,
     它的格式为经度(longitude)、纬度(latitude) 与 海拔(altitude)。
     可以从 http://www.kenjikojima.com/jikankei/map.html网页上的地图画面查到。
   3.gsm 命令可以仿真 GSM 手机拨打的状态;
  格式:
  gsmlist            list current phone calls
  gsmcall            create inbound phone call
  gsmbusy            close waiting outbound call as busy
  gsmhold            change the state of an oubtound call to 'held'
  gsmaccept          change the state of an outbound call to 'active'
  gsmcancel          disconnect an inbound or outbound phone call
  gsmdata            modify data connection state
  gsmvoice           modify voice connection state
  gsmstatus          display GSM status
  例如:
  gsm call 5556688
  注:只要后面加上任意一个电话号码,就可以在 Android 手机中接听进行 GSM 电话的仿真拨打。
 
   4.sms send 命令可以仿真手机发送短信;
  格式:
  sms send
  例子:
  sms send 5556688 Hello Android
  注:只要用任意一个电话号码,就可以在 Android 手机中接收到此电话号的仿真来信。
 
   5.network speed 命令可以更改手机的网络发送模式;
  格式:
  network speed
  说明:
  可选择如下一项:
  gsm     GSM/CSD
  hscsd   HSCSD
  gprs    GPRS
  edge    EDGE/EGPRS
  umts    UMTS/3G
  hsdpa   HSDPA
  full    no limit
      selects bothupload and download speed
   :select individual upload/download speeds
  注:共有gsm(GSM/CSD)、gprs(GPRS)、edge(EDGE/EGPRS)、umts(UMTS/3G)、
    hsdpa(HSDPA/3.5G) 或 full(全速)几种发送模式,
    不限定采用哪一种发送模式,此为Android系统的网络默认设置。
   6.network status 命令可以查看Android仿真器的网络发送状态;
  例如:
  network status
  Current network status:
  downloadspeed:         0 bits/s (0.0 KB/s)
  uploadspeed:           0 bits/s (0.0 KB/s)
  minimum latency:  0 ms
  maximum latency:  0 ms
   7.redir add 命令可以导向指定(tcp/udp)协议的指定主机端口上的任意包到指定仿真器端口上
  格式:
  redir add ::
  例子:
  redir add tcp:5000:6000
  注:将允许发送到主机 TCP 协议 5000 端口的任意包发送到仿真器的 TCP 协议 6000端口。
   8.redir list 命令可以列出当前已经导向的TCP或UDP通信端口;
 
   9.redir del 命令可以将已经导向的通信端口删除
  格式:
  redir del :
  例子:
  redir del tcp:5000
  注:将刚才建立的主机 TCP 端口 5000 到仿真器 TCP 端口 6000的导向删除。
  10.power display 命令可以显示当前手机的电源状态是否接上AC电源以及电池的剩余电量;
  例如:
  power display
  AC: online
  status: Charging
  health: Good
  present: true
  capacity: 50
  11.window scale 命令可以立即改变仿真器窗口的大小;
 格式:
  windowscale
  注: 必须是0.1 ~ 3.0 之间的一个实数,或者是一个整数后跟 dpi 例如:120dpi。
 例子:
  windowscale 0.5
 注:仿真器窗口比当前缩小一半比例大小。
  12. kill命令可以立即将仿真器窗口关闭退出;
 例子:
 kill
  OK:killing emulator, bye bye
 Connection closed by foreign host.
3) adb = Android DebugBridge 是 Android 提供的一个通用的调试工具:
   1.$ adb shell  => 进入 Android shell 可以执行各种 Linux的命令
   2.$ adb shell dmesg  =>打印出内核的调试信息
   3.$ adb push <主机的文件> <虚拟机的目录>  =>上传文件
   4.$ adb pull <虚拟机的文件> <主机的目录>  =>下载文件
   5.$ adb install <安装包名.apk>  => 安装程序,安装到/data/app/ 目录下
   6.$ adb shell rm /data/app/<安装包名.apk>  =>卸载程序
   7.$ adb devices  => 虚拟设备 telnet控制端口信息,例如:
     List of devices attached
     emulator-5554   device
   8.$ adb bugreport  => 查看bug报告
4) 数据库:
联络人(含通话记录)数据库:
/data/data/com.android.providers.contacts/databases/contacts.db
媒体库(貌似记录铃声设置等信息):
/data/data/com.android.providers.media/databases/internal.db
系统设置:
/data/data/com.android.providers.settings/databases/settings.db
电话服务:
/data/data/com.android.providers.telephony/databases/telephony.db
短信库:
/data/data/com.android.providers.telephony/databases/mmssms.db
时区设置:
/data/property/persist.s
0 0
原创粉丝点击