现在的位置: 首页 > 综合 > 正文

【Android-Emulator】Android模拟器介绍和基本使用

2013年10月13日 ⁄ 综合 ⁄ 共 5578字 ⁄ 字号 评论关闭

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

 

1






Android



模拟器介绍

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
插件,可将模拟器集成到
Eclipse

IDE
环境。当然,你也可以从命令行启动
Android
模拟器。

这款模拟器功能非常齐全,电话
本、通话等功能都可正常使用(当然你没办法真的从这里打电话)。甚至其内置的浏览器和

Google Maps

都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进
行操纵。

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

android

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

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

不支持
USB
连接

*
不支持相机
/
视频捕捉

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

*
不支持扩展耳机

*
不能确定连接状态

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

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

*
不支持蓝牙

2



、创建和启动


Android



模拟器

要玩
GPhone
的模拟器,当然需要先去
http://developer.android.com/sdk

(

如果打不开就用
http://androidappdocs.appspot.com/sdk/index.html


)

上面下载
Android

SDK
,解压出来后在
SDK
的根目录下有一个
tools
文件夹,里面就是模拟器和一些非常有用的工具。(
SDK
详细的安装过程请参照
http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx



要正确的启动模拟,你必须先要
创建一个

AVD(
Android Virtual Device

虚拟设备
)
,你可以利用
AVD
创建基于不同版本
的模拟器,下面就介绍如何创建

AVD

(1)
      



查看当前支持版本
(

在列出的版本中我们需要记住
id

值,这个值在第
2

步中使用
)


magicyu@magicyu-desktop:~$
android list target

你可以看到几个
Available
Android targets


,比如:
Name: Android
1.6


,他们有各自的
id

号。

(2)
      



创建
AVD


magicyu@magicyu-desktop:~$
android create avd -n magicyu -t 2


-n

后面接需要创建
avd

的名字,
-t

后面接需要创建虚拟器的类型,
2

即为步骤(
1

)中得到的类型
id

号。

(3)
      



查看是否创建成功
(

如果成功会显示刚才我们创建的
avd

信息
)


magicyu@magicyu-desktop:~$
android list avd

(4)
      



启动模拟器:

magicyu@magicyu-desktop:~$
emulator @magicyu





emulator -avd magicyu

其中
@


-avd

后接的是你创建过的
avd

名字

(5)
      



选择启动的皮肤

magicyu@magicyu-desktop:~$
emulator -avd magicyu -skin QVGA

skin

后面接所要
启动皮肤的类型,所有的类型可以在

<SDK>/ platforms/android-1.*/skins

目录下找到,
*

为所指的版本。如在
1.6

版本的
SDK

下有
HVGA


QVGA


 
WVGA800



WVGA854

几种。按
Ctrl+F11

,可以直接改变模拟器的横纵摆放。

      


当然
AVD

也可以在
Eclipse

中创建和启动。关于
Eclipse+ADT+SDK

的安装请参见
http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx




运行
Eclipse


Window->Android SDK and AVD
Manager


,就能得到如下的界面,选择新建即可新建一

AVD


 

 eclipse_create_avd

3






Android



模拟器的一些工具


1



adb:


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


会打印出内核的调试信息。

(Android


linux 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


 


2



am


指令

(


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 -d

http://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,

这样一个容量

1G


SD

卡就创建完毕了。

使用
SDCard:

创建

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



K


M)

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


传文件到
SDCard: adb
push <


目录
/audio.mp3>
</sdcard/audio.mp3>


 


4



Android


模拟器打电话发短信

GPhone

的模拟
器有个特有的号码:

15555218135

,这个就类似我们
实体手机的

SIM

卡号码啦。要实现拨号,用手机?当
然不行!

更简单,三步:

1.

打开终端

2.

连接
: telnet
localhost 5554



5554

是你打开模拟器后上面显示的数字)

3.

命令
:gsm call
15555218135


look

!是不是模
拟器上显示来电了?接听

/

挂断和实体手机一样。

发短信也一样简单,重复上面
1


2

两步,第三部命令改一下:

sms send
15555218135 Hello,this is a Message.

 

4






Android



模拟器主要命令参数介绍

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


下面的
表总结了可用的参数

Help

-help

打印模拟
器参数列表。

-help-all


印所有启动参数明细。

-help-<option>

打印指定启动参数的信息。

-help-debug-tags

打印所有被
-debug <tags>

打开的列表。

-help-disk-images

打印正在使用的磁盘镜像信息。

-help-environment

打印模拟器环境变量信息。
 

-help-keys


印当前的键盘映射。

-help-keyset-file

打印一个自定义的键盘映射文件的定义。

 

Disk Images

-cache <filepath>

使用
<filepath>

指定网络缓存分区镜像。

自定义,您可以指定一个当前工作
目录的相对路径。如果没有指定缓存文件,模拟器会指定一个零时文件作为缓存文件。更多信息请参考

-help-disk-images.

-data <filepath>

使用
<filepath>

作为用户数据磁盘镜像。

自定义,您可以指定一个当前工作
目录的相对路径。如果

-data

没有被使用,模拟器会在
<datadir>

指定的目录下寻找名叫
"userdata-qemu.img"

的镜像文件。默认情况下,模拟器会寻找
~/.android (on Linux/Mac)

或者
C:/Documents and
Settings/<user>/Local Settings/Application Data/Android (on
Windows)




如果您使用了
-data
<filepath>


,但是文件并不存在,模
拟器将创建同名文件。

更多信息请参见运行多个模拟器实
例和

-help-disk-images


-image <filepath>

使用
<filepath>

作为系统镜像。

自定义,您可以指定一个当前工作
目录的相对路径。默认为

<system>/system.img




-initdata
<filepath>

重写用户数据镜像时,
(

使用
-wipe-data)

,复制此文件内容到新用户数据文件镜像中。默认方式下,模拟器拷贝
<system>/userdata.img


自定义,您可以指定一个当前工作
目录的相对路径。参见

-wipe-data


更多信息请参见
-help-disk-images


-kernel <filepath>

使用
<filepath>

作为模拟器内核。自定义,您可以指定一个当前工作目录的相对路径。

-nocache


动模拟器时无缓存分区。参见

-cache <file>


-ramdisk <filepath>

使用
<filepath>

作为虚拟内存镜像。默认为
<system>/ramdisk.img.

自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见
-help-disk-images


-sdcard <filepath>

使用
<file>

作为
SD

卡镜像。默认为
<system>/sdcard.img.

自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见
-help-disk-images


-system <dirpath>

在指定的
<dir>

下搜索系统、虚拟内存和用户数据镜像文件。
<dir>

为当前路径的相对目录。

-wipe-data


至用户数据镜像文件。

(that is, the file specified by -datadir and -data, or the
default file).


模拟器删除所有用户数据,
然后复制右

-inidata

参数指定的数据到镜像文
件,在启动之前。参见

-initdata.

更多信息请参见
-help-disk-images


抱歉!评论已关闭.