注:其中部分内容参考网上资源

1Android模拟器介绍

Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见http://bellard.org/qemu/),它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish,用来模拟包括下面一些功能的ARM SoC:

* ARM926ej-S CPU

* Thumb support

* MMC

* RTC

* Keyboard

* USB Gadget

* Framebuffer

* TTY driver

* NAND FLASH

Android模拟器所对应的源代码主要在external/qemu目录下。如果你想将Android移植到其他设备上,熟悉它目前所针对的模拟器环境可以提供一些参考。

对于应用程序的开发者,模拟器提供了很多开发和测试时的便利。无论在Windows下还是Linux下,Android模拟器都可以顺利运行,并且Google提供了Eclipse插件,可将模拟器集成到EclipseIDE环境。当然,你也可以从命令行启动Android模拟器。

这款模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然你没办法真的从这里打电话)。甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。

当然模拟器毕竟是模拟器,和真实的机子还是存在差别的,

android模拟器和真机的不同之处:

*不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)
*
不支持USB连接

*不支持相机/视频捕捉

*不支持音频输入(捕捉);但支持输出(重放)

*不支持扩展耳机

*不能确定连接状态

*不能确定电池电量水平和交流充电状态

*不能确定SD卡的插入/弹出

*不支持蓝牙

2、创建和启动Android模拟器

要玩GPhone的模拟器,当然需要先去http://developer.android.com/sdk(如果打不开就用http://androidappdocs.appspot.com/sdk/index.html)上面下载AndroidSDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是模拟器和一些非常有用的工具。(SDK详细的安装过程请参照http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx

要正确的启动模拟,你必须先要创建一个AVD( Android Virtual Device虚拟设备),你可以利用AVD创建基于不同版本的模拟器,下面就介绍如何创建AVD

(1)查看当前支持版本(在列出的版本中我们需要记住id值,这个值在第2步中使用)

[email protected]:~$ android list target

你可以看到几个Available Android targets,比如:Name: Android 1.6,他们有各自的id号。

(2)创建AVD

[email protected]:~$ android create avd -n magicyu -t 2

-n后面接需要创建avd的名字,-t后面接需要创建虚拟器的类型,2即为步骤(1)中得到的类型id号。

(3)查看是否创建成功(如果成功会显示刚才我们创建的avd信息)

[email protected]:~$ android list avd

(4)启动模拟器:

[email protected]:~$ emulator @magicyu或者

emulator -avd magicyu

其中@-avd后接的是你创建过的avd名字

(5)选择启动的皮肤

[email protected]:~$ emulator -avd magicyu -skin QVGA

skin后面接所要启动皮肤的类型,所有的类型可以在<SDK>/ platforms/android-1.*/skins目录下找到,*为所指的版本。如在1.6版本的SDK下有HVGAQVGAWVGA800WVGA854几种。按Ctrl+F11,可以直接改变模拟器的横纵摆放。

当然AVD也可以在Eclipse中创建和启动。关于Eclipse+ADT+SDK的安装请参见http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx

运行EclipseWindow->Android SDK and AVD Manager,就能得到如下的界面,选择新建即可新建一个AVD

3Android模拟器的一些工具

1adb:

ADB(Android Debug Bridge)Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态还可以进行以下的操作:

a、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

b、在设备上运行shell命令;

c、管理设备或手机模拟器上的预定端口;

d、在设备或手机模拟器上复制或粘贴文件

一些常用的操作:

进入Shell: adb shell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

adb shell [command]

如:adb shell dmesg会打印出内核的调试信息。

(Androidlinux shell做了大量精简,很多linux常用指令都不支持)

上传文件: adb push <PC文件> </tmp/...>

下载文件: adb pull </tmp/...> <PC文件>

安装程序: adb install <*.apk>

卸载软件: adb shell rm /data/app/<*.apk>

补充一点,通过adb安装的软件(*.apk)都在"/data/app/"目录下,所以安装时不必制定路径,卸载只需要简单的执行"rm"就行。

结束adb: adb kill-server

显示android模拟器状态:

adb devices (端口信息)

adb get-product (设备型号)

adb get-serialno (序列号)

等待正在运行的设备: adb wait-for-device

端口转发: adb forward adb forward tcp:5555 tcp:1234

(将默认端口TCP 5555转发到1234端口上)

查看bug报告: adb bugreport

adb shell sqlite3访问数据库SQLite3

adb shell logcat -b radio记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录

应用程序配置文件:

"AndroidManifest.xml"

"<category android:name="android.intent.category.LAUNCHER" />"

决定是否应用程序是否显示在Panel

2am指令(shell内使用am来加载android应用):

am [start|instrument]

am start [-a <ACTION>]

[-d <DATA_URI>]

[-t <MIME_TYPE>]

[-c <CATEGORY> [-c <CATEGORY>] ...]

[-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...]

[-n <COMPONENT>] [-D] [<URI>]

am instrument [-e <ARG_NAME> <ARG_VALUE>]

[-p <PROF_FILE>]

[-w] <COMPONENT>

启动浏览器:

am start -a android.intent.action.VIEW -dhttp://www.google.cn/

拨打电话:

am start -a android.intent.action.CALL -d tel:10086

启动google map直接定位到北京:

am start -a android.intent.action.VIEW geo:0,0?q=beijing

3)为模拟器加上SD卡:

emulator -sdcard <path>\sdcard.img

下面我们再来说说如何创建"sdcard.img"文件:

“tools”目录下还有另外一个很好用的工具mksdcard,一看名字就知道——make sdcard。对,就用它来创建一个“SD

命令为:

mksdcard 1024M D:\sdcard.img

OK,这样一个容量为1GSD卡就创建完毕了。

使用SDCard:

创建: mksdcard <1024M> <sdcard.img>
(bytes(default)
KM)

连接到模拟器: emulator -sdcard <path/sdcard.img>

传文件到SDCard: adb push <目录/audio.mp3> </sdcard/audio.mp3>

4Android模拟器打电话发短信

GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。要实现拨号,用手机?当然不行!

更简单,三步:

1.打开终端

2.连接: telnet localhost 55545554是你打开模拟器后上面显示的数字)

3.命令:gsm call 15555218135

look!是不是模拟器上显示来电了?接听/挂断和实体手机一样。

发短信也一样简单,重复上面12两步,第三部命令改一下:

sms send 15555218135 Hello,this is a Message.

4Android模拟器主要命令参数介绍

emulator [-<option> [<value>]] ... [-<qemu args>]

更多相关文章

  1. android之WakeLock机制浅析
  2. Android(安卓)Studio系列教程六--Gradle多渠道打包
  3. Android(安卓)App 获取root权限后,执行shell命令
  4. Android开发 - 获取Android设备的唯一标识码(Android(安卓)6.0或
  5. 【转载】Andoid Studio-android开发02-第一个程序-调试-运行方法
  6. [转]Android蓝牙开发浅谈
  7. Android(安卓)有关横竖屏
  8. Android(安卓)本地代码如何输出日志
  9. 在 Android(安卓)通过 get_event 获得 input 设备 上报event

随机推荐

  1. Android:layer-list详解
  2. 使用Chrome远程调试Android移动端WebView
  3. android 浏览器 打开本地html文件的方法
  4. Android应用程序开发以及背后的设计思想
  5. Android(安卓)-- 自定义跑马灯
  6. Android进程通信(IPC)之AIDL对象传递
  7. React Native运行问题:Warning: License f
  8. Android(安卓)Framework中的Application
  9. Android之AIDL(进程间通信)
  10. Android应用程序开发以及背后的设计思想