Android-Emulator使用须知:Android石家庄强化模拟器介绍和基本使用1、Android石家庄强化模拟器介绍Android中提供了一个石家庄强化模拟器来模拟ARM核的移动设备。Android的石家庄强化模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见),它可以提供一个虚拟的ARM移动设备。Android石家庄强化模拟器被命名为goldfish,用来模拟包括下面一些功能的ARMSoC:*ARM926ej-SCPU*Thumbsupport*MMC*RTC*Keyboard*USBGadget*Framebuffer*TTYdriver*NANDFLASHAndroid石家庄强化模拟器所对应的源代码主要在external/qemu目录下。如果你想将Android移植到其他设备上,熟悉它目前所针对的石家庄强化模拟器环境可以提供一些参考。对于应用程序的开发者,石家庄强化模拟器提供了很多开发和测试时的便利。无论在Windows下还是Linux下,Android石家庄强化模拟器都可以顺利运行,并且Google提供了Eclipse插件,可将石家庄强化模拟器集成到Eclipse的IDE环境。当然,你也可以从命令行启动Android石家庄强化模拟器。这款石家庄强化模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然你没办法真的从这里打电话)。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,鼠标点击石家庄强化模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。当然石家庄强化模拟器毕竟是石家庄强化模拟器,和真实的机子还是存在差别的,android石家庄强化模拟器和真机的不同之处:*不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)*不支持USB连接*不支持相机/视频捕捉*不支持音频输入(捕捉);但支持输出(重放)*不支持扩展耳机*不能确定连接状态*不能确定电池电量水平和交流充电状态*不能确定SD卡的插入/弹出*不支持蓝牙2、创建和启动Android石家庄强化模拟器要玩GPhone的石家庄强化模拟器,当然需要先去(如果打不开就用)上面下载Android的SDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是石家庄强化模拟器和一些非常有用的工具。(SDK详细的安装过程请参照)要正确的启动模拟,你必须先要创建一个AVD(AndroidVirtualDevice虚拟设备),你可以利用AVD创建基于不同版本的石家庄强化模拟器,下面就介绍如何创建AVD:(1)查看当前支持版本(在列出的版本中我们需要记住id值,这个值在第2步中使用):magicyu@magicyu-desktop:~$androidlisttarget你可以看到几个AvailableAndroidtargets,比如:Name:Android1.6,他们有各自的id号。(2)创建AVD:magicyu@magicyu-desktop:~$androidcreateavd-nmagicyu-t2-n后面接需要创建avd的名字,-t后面接需要创建虚拟器的类型,2即为步骤(1)中得到的类型id号。(3)查看是否创建成功(如果成功会显示刚才我们创建的avd信息):magicyu@magicyu-desktop:~$androidlistavd(4)启动石家庄强化模拟器:magicyu@magicyu-desktop:~$emulator@magicyu或者emulator-avdmagicyu其中@和-avd后接的是你创建过的avd名字(5)选择启动的皮肤magicyu@magicyu-desktop:~$emulator-avdmagicyu-skinQVGAskin后面接所要启动皮肤的类型,所有的类型可以在SDK/platforms/android-1.*/skins目录下找到,*为所指的版本。如在1.6版本的SDK下有HVGA,QVGA,WVGA800,WVGA854几种。按Ctrl+F11,可以直接改变石家庄强化模拟器的横纵摆放。当然AVD也可以在Eclipse中创建和启动。关于Eclipse+ADT+SDK的安装请参见。运行Eclipse,Window-AndroidSDKandAVDManager,就能得到如下的界面,选择新建即可新建一个AVD。3、Android石家庄强化模拟器的一些工具(1)adb:ADB(AndroidDebugBridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机石家庄强化模拟器的状态还可以进行以下的操作:a、快速更新设备或手机石家庄强化模拟器中的代码,如应用或Android系统升级;b、在设备上运行shell命令;c、管理设备或手机石家庄强化模拟器上的预定端口;d、在设备或手机石家庄强化模拟器上复制或粘贴文件一些常用的操作:进入Shell:adbshell通过上面的命令,就可以进入设备或石家庄强化模拟器的shell环境中,在这个LinuxShell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:adbshell[command]如:adbshelldmesg会打印出内核的调试信息。(Android的linuxshell做了大量精简,很多linux常用指令都不支持)上传文件:adbpushPC文件/tmp/...下载文件:adbpull/tmp/...PC文件安装程序:adbinstall*.apk卸载软件:adbshellrm/data/app/*.apk补充一点,通过adb安装的软件(*.apk)都在/data/app/目录下,所以安装时不必制定路径,卸载只需要简单的执行rm就行。结束adb:adbkill-server显示android石家庄强化模拟器状态:adbdevices(端口信息)adbget-product(设备型号)adbget-serialno(序列号)等待正在运行的设备:adbwait-for-device端口转发:adbforwardadbforwardtcp:5555tcp:1234(将默认端口TCP5555转发到1234端口上)查看bug报告:adbbugreportadbshellsqlite3访问数据库SQLite3adbshelllogcat-bradio记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录应用程序配置文件:AndroidManifest.xml中categoryandroid:name=android.intent.category.LAUNCHER/决定是否应用程序是否显示在Panel上(2)am指令(在shell内使用am来加载android应用):am[start|instrument]amstart[-aACTION][-dDATA_URI][-tMIME_TYPE][-cCATEGORY[-cCATEGORY]...][-eEXTRA_KEYEXTRA_VALUE[-eEXTRA_KEYEXTRA_VALUE...][-nCOMPONENT][-D][URI]aminstrument[-eARG_NAMEARG_VALUE][-pPROF_FILE][-w]COMPONENT启动浏览器:amstart-aandroid.intent.action.VIEW-d拨打电话:amstart-aandroid.intent.action.CALL-dtel:10086启动googlemap直接定位到北京:amstart-aandroid.intent.action.VIEWgeo:0,0?q=beijing(3)为石家庄强化模拟器加上SD卡:emulator-sdcardpath\sdcard.img下面我们再来说说如何创建sdcard.img文件:“tools”目录下还有另外一个很好用的工具mksdcard,一看名字就知道——makesdcard。对,就用它来创建一个“SD卡”。命令为:mksdcard1024MD:\sdcard.imgOK,这样一个容量为1G的SD卡就创建完毕了。使用SDCard:创建:mksdcard1024Msdcard.img(bytes(default),K,M)连接到石家庄强化模拟器:emulator-sdcardpath/sdcard.img传文件到SDCard:adbpush目录/audio.mp3/sdcard/audio.mp3(4)Android石家庄强化模拟器打电话发短信GPhone的石家庄强化模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。要实现拨号,用手机?当然不行!更简单,三步:1.打开终端2.连接:telnetlocalhost5554(5554是你打开石家庄强化模拟器后上面显示的数字)3.命令:gsmcall15555218135look!是不是石家庄强化模拟器上显示来电了?接听/挂断和实体手机一样。发短信也一样简单,重复上面1,2两步,第三部命令改一下:smssend15555218135Hello,thisisaMessage.4、Android石家庄强化模拟器主要命令参数介绍emulator[-option[value]]...[-qemuargs]下面的表总结了可用的参数Help-help打印石家庄强化模拟器参数列表。-help-all打印所有启动参数明细。-help-option打印指定启动参数的信息。-help-debug-tags打印所有被-debugtags打开的列表。-help-disk-images打印正在使用的磁盘镜像信息。-help-environment打印石家庄强化模拟器环境变量信息。-help-keys打印当前的键盘映射。-help-keyset-file打印一个自定义的键盘映射文件的定义。DiskImages-cachefilepath使用filepath指定网络缓存分区镜像。自定义,您可以指定一个当前工作目录的相对路径。如果没有指定缓存文件,石家庄强化模拟器会指定一个零时文件作为缓存文件。更多信息请参考-help-disk-images.-datafilepath使用filepath作为用户数据磁盘镜像。自定义,您可以指定一个当前工作目录的相对路径。如果-data没有被使用,石家庄强化模拟器会在datadir指定的目录下寻找名叫userdata-qemu.img的镜像文件。默认情况下,石家庄强化模拟器会寻找~/.android(onLinux/Mac)或者C:\DocumentsandSettings\user\LocalSettings\ApplicationData\Android(onWindows)。如果您使用了-datafilepath,但是文件并不存在,石家庄强化模拟器将创建同名文件。更多信息请参见运行多个石家庄强化模拟器实例和-help-disk-images。-imagefilepath使用filepath作为系统镜像。自定义,您可以指定一个当前工作目录的相对路径。默