注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

简洁即美

最简洁的手法保存记忆

 
 
 

日志

 
 

【转】Android emulator 手机模拟器使用详述  

2011-01-28 16:58:01|  分类: Android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
原文:http://v8ynkq.dev3.webenabled.net/archives/1147

  以下操作均要在进入 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 (Google Inc.)
     注: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 Level 3"
     的新模拟器;
     注: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 of commands
     OK
     注:一般情况 Android 虚拟设备的序号为5554,
       所以运行 telnet 时请将 控制端口 改成想要连接的虚拟设备的序号,
       虚拟设备的序号就在虚拟设备窗口的标题栏上,
       冒号前就是虚拟设备的序号,冒号后就是虚拟设备的名字,
       如:5554:Android1.5 。
  
  2) 连接上 Android 虚拟设备后,输入 help 指令,就会看到 Android 控制命令帮助,如下:
  help
  Android console command help:
  
      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 ' for command-specific help
  OK
  注:以上指令都相当的实用,可以控制 Android 手机的操作,
  也可以更进一步地掌控 Android 虚拟设备。
  
     1. event 命令可以给虚拟设备 send、types、codes 与 text 四种事件;
     格式:
     event send             send a series of events to the kernel
     event types            list all  aliases
     event codes            list all  aliases for a given
     event text             simulate keystrokes from a given text
     例如:
     event text HelloAndroid
     发送文字字符串 HelloAndroid 给虚拟设备,可以在 Android 手机画面上立即看到这串消息。
   
     2. geo 命令可以给虚拟设备 GPS 的位置;
     格式:
     geo nmea             send an GPS NMEA sentence
     注:NEMA 是 National Electrical Manufacturers Association缩写,
       它制定了GPS导航装置的NEMA 0183协议。
       而当 Android 设备有与其他外接的 GPS 卫星导航器通过USB连接时,
       则可以使用 geo nmea 的指令方式,送给外接的 GPS 卫星导航器位置。
       NEMA 共有12个字段,因此 geo nmea 比 geo fix 定位精确许多,
       NEMA 的说明:
        $GPRMC,,,,,,,,,,,,*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)
         UTC时间,hhmmss (时分秒) 格式,例如:071236
         定位状态,A=有效定位,V=无效定位,例如A
         纬度ddmm.mm (度度分分.分分) 格式,例如3751.65,37度51.65分
         纬度半球N (北半球) 或S (南半球),例如S
         经度dddmm.mm (度度度分分.分分)格式,例如14527.36,145度27.36分
         经度半球E (东经) 或W (西经),例如E
         地面速率(000.0~999.9节,前面的0也将被发送),例如静止000.0
         地面航向(000.0~359.9度,前面的0也将被发送),例如073.0
         UTC日期,ddmmyy (日月年) 格式,例如130309
         磁偏角 (000.0~180.0度,前面的0也将被发送),例如011.3
         磁偏角方向,E(东) 或W(西),例如E
         模式指示(NEMA 0183的A=自主定位,D=差分,E=估算,N=信息无效),
        *hh 为检查码,例如*62       
     geo fix              send a simple GPS fix
     注:geo fix 是发送一组固定的 GPS 位置,
        它的格式为经度(longitude)、纬度(latitude) 与 海拔(altitude)。
        可以从 http://www.kenjikojima.com/jikankei/map.html 网页上的地图画面查到。
  
     3. gsm 命令可以仿真 GSM 手机拨打的状态;
     格式:
     gsm list             list current phone calls
     gsm call             create inbound phone call
     gsm busy             close waiting outbound call as busy
     gsm hold             change the state of an oubtound call to 'held'
     gsm accept           change the state of an outbound call to 'active'
     gsm cancel           disconnect an inbound or outbound phone call
     gsm data             modify data connection state
     gsm voice            modify voice connection state
     gsm status           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 both upload 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:
     download speed:          0 bits/s (0.0 KB/s)
     upload speed:            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 命令可以立即改变仿真器窗口的大小;
    格式:
    window scale
    注: 必须是 0.1 ~ 3.0 之间的一个实数,或者是一个整数后跟 dpi 例如:120dpi。
    例子:
    window scale 0.5
    注:仿真器窗口比当前缩小一半比例大小。
  
    12. kill 命令可以立即将仿真器窗口关闭退出;
    例子:
    kill
    OK: killing emulator, bye bye
    Connection closed by foreign host.
  
  3) adb = Android Debug Bridge 是 Android 提供的一个通用的调试工具:
     1. $ adb shell  => 进入 Android shell 可以执行各种 Linux 的命令
     2. $ adb shell dmesg  => 打印出内核的调试信息
     3. $ adb push    => 上传文件
     4. $ adb pull    => 下载文件
     5. $ adb install   => 安装程序,安装到 /data/app/ 目录下
     6. $ adb shell rm /data/app/  => 卸载程序
     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.sys.timezone
  评论这张
 
阅读(648)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017