使用 Android 模拟器
我们已经透过「Eclipse」开发环境,开启了「ApiDemos」源代码。本章将讲解如何设定和操作 Android 模拟器。
设定 Android 模拟器
现在我们还不忙着开始写程式,先花点时间,来看看怎么在开发环境中,通过「Android 模拟器」来执行应用程式吧。
「Android 软体开发套件」(SDK) 1.5 以上的版本提供了支援不同版本模拟器的功能,在使用模拟器之前,必须先建立一个模拟器后才可在 Eclipse 开发环境中使用。
SDK 中提供了一个「android」命令行工具(在 android-sdk/tools 中),可以用来建立新专桉或是管理模拟器。在此我们使用「android」命令行工具来新建立一个模拟器。
在新的 Android 文件中,一律把 Android 模拟器称作「Android 虚拟机器」(Android Virtual Device),简写为「AVD」以作区别。
列出模拟器类型
首先,把「android-sdk/tools 」目录加入系统路径,我们以后就可以在任何地方使用「android-sdk/tools 」目录下的各种命令。
在 Windows 2000, XP, 2003 这些操作系统里,点选「我的电脑右键 > 属性 > 高级 > 环境变数」。在「系统变数(S)」栏中,选取「PATH」变数名称后,再点选「编辑(I)」按钮。
再此假设您安装 Android SDK 的路径是「C:\android-sdk\tools」,接着在弹出的视窗中将「;C:\android-sdk\tools」(注意要以分号隔开)这字串添在原本的字串之后,按下确定后重新启动操作系统。
重开系统后选择「开始 > 执行」,在弹出的输入框中输入「cmd」,即可开启命令行工具并继续以下的动作。
或是您也可以直接打开命令行,进入「android-sdk/tools 」目录,输入以下命令:
代码:
$ android list targets
在没有将 Android SDK 加入路径的情况下,在 Linux 或 Mac 环境中要输入
代码:
$ ./android list targets
萤幕上会列出所有支援的模拟器类型
代码:
$ android list targets
Available Android targets:
id: 1
Name: Android 1.1
Type: Platform
API level: 2
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 2
Name: Android 1.5
Type: Platform
API level: 3
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 3
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: HVGA (default), HVGA-L, QVGA-P, HVGA-P, QVGA-L
在 这边列出了三种模拟器类型。分别是编号(id)为 1、2 的 Android 1.1、1.5 模拟器,与编号(id)为 3 的「Google APIs」,Google 把自己提供的应用程式(如 Google Map)放在「Google APIs」这个模拟器类型中,因此要开发 Google Map 等 Google 专属应用程式时,就必须先建立编号 3 这类型的模拟器,稍后才能在适当的模拟器上作验证。
建立模拟器
我们现在来建立一个基本的 Android SDK 1.5 模拟器。
在命令行中输入以下命令:
代码:
$ android create avd --target 2 --name cupcake
这 段命令的意思是:使用「android create avd」命令来建立一个新的模拟器,「 --target 2」参数的意思是这个模拟器使用 id 为 2 的模拟器类型(Android 1.5),「--name cupcake」参数的意思是将这个建立的模拟器命名为「cupcake」。
产生的结果如下
代码:
$ android create avd --target 2 --name cupcake
Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]
Created AVD 'cupcake' based on Android 1.5
列出已建立的模拟器我们可以使用 「Android」命令行工具提供的「list avd」命令,来列出所有我们已经建立的模拟器。
在命令行中输入以下命令:
代码:
$ android list avd
产生的结果如下:
代码:
$ android list avd
Available Android Virtual Devices:
Name: cupcake
Path: /Users/mac/.android/avd/cupcake.avd
Target: Android 1.5 (API level 3)
Skin: HVGA
使用「 android list avd」命令看到有输出,即表示已成功建立模拟器,可以回到 Eclipse 环境来,设定执行应用程序所需的环境参数了。
设定环境参数
要执行 ApiDemos 程式前,我们得在开发环境中,事先设定好一些用来执行 ApiDemos 程式的环境参数。 以后使用其他程式专桉时,我们也能用同样的方式,让这些程式在我们的开发环境中运行。
首先,我们透过选单列上的「Run」(执行)选单,选择「开启执行参数设定」(Run-> Debug Configurations...) 进入运行环境参数设定画面。
进入设定画面后,在视窗左侧会有一整排 Eclipse 支援的运行设定,我们从中找到 "Android Application"(Android 应用程式)项目,按下滑鼠右键,点选 "New"(新增)选项。
选择 「New」 选项后,在「Android Application」项目下方会多出一列执行项目。
我们可以在 Name 栏位上输入一个代表这个环境参数的名称,在此我们输入与专桉名称相同的「ApiDemos」。
在「Project」栏位右方,点选「Browse...」按钮,开启「选择」(Project Selection)视窗,选择「ApiDemos」专桉并点选「OK」按钮,以选择要执行的工程。
在 「Launch Action」 选单中,确认预设选择的是「Launch Default Activity」。
至此我们就完成了模拟器环境参数的设定。 点选右下角的「Debug」按钮,Eclipse 就会启动 Android 模拟器。
小技巧:
在选单列中,也可以选择设定「Run Configuration...」选项。这时我们得到的是一个几乎完全相同的环境参数设定画面,只是右下角的「Debug」按钮变成了「Run」按钮。 「Debug」与「Run」模式的环境参数设定可以共用,差别在于「Debug」模式下可以使用在之后章节中会介绍的 logd,来显示一些开发时所需的额外讯息。
再次启动 Android 模拟器
当我们设定好之后,以后碰到要再次启动模拟器的情况时,只要在萤幕左上角的「Debug」或「Run」图示右侧小箭头上按一下,从弹出的选单中选择刚刚设定的环境参数名称,模拟器即开始执行,并安装好我们所指定的专桉应用程序。
操作 Android 模拟器
切换模拟器场景
在命令列上执行「
android list targets」命令后,我们可以看到萤幕上列出所有支援的模拟器类型。举我们刚才建立过的第二种类型(id 2)模拟器为例,列出讯息如下:
代码:
id: 2
Name: Android 1.5
Type: Platform
API level: 3
Skins: G1, HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
其中 Skins 栏位中会列出所有支援的模拟器场景。
预设有「HVGA」与「QVGA」两种画面配置选项可选择,「HVGA」与「QVGA」又可以再各自分为「-L」(landscape, 横式) 与「-P」(portrait 直式)。
要建立「QVGA」模式的模拟器,则在前一节「android create avd」命令后,附加上「--skin QVGA」选项即可。要将预设的「HVGA 直式」显示改为横式,则可以透过使用快速键,直接切换萤幕来达成。
切换萤幕
在 Windows 作业系统上按下 「Ctrl」和「F12」键 ,或是在 Mac OS X 作业系统上同时按下「fn」 和「7」键,萤幕就会从预设的直式显示改成横式显示,再按一次则切换回原来的直式显示。
新增模拟器外观设定
Android 模拟器的用途,就是协助我们在电脑上也能模拟真实手机的动作。不禁会想,如果模拟器除了所模拟的动作之外,模拟器的外观也能跟实机长的一样,那不是整个更拟真,开发起来更有感觉吗?
没错,所以 Android 模拟器也允许使用者自行製作模拟器外观!
除了预设的模拟器外观之外,以世界第一台发售的 Android 手机「T-Mobile G1」为例,有人已经作好了「T-Mobile G1」的模拟器外观。可以前往
http://www.jsharkey.org/downloads/G1.zip 下载。
要 新增模拟器外观时,只需把下载后的模拟器外观档桉解开成一个资料夹,再将资料夹放到「android_sdk/platforms/android- 1.5/skins」目录下。做完后在命令列中输入「android list targets」命令,即可发现 id 2 (Android 1.5 ) 列表中的「Skins」项目新增加了「G1」一项(可透过更改目录名称来自行命名)。
代码:
id: 2
Name: Android 1.5
Type: Platform
API level: 3
Skins: G1, HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
要建立使用新模拟器外观的模拟器,可以在之前命令后加入「--skin」选项。命令如下:
代码:
$ android create avd --target 2 --name devphone –skin G1
我们也可以偷懒不用参数的全名,将参数用简写表示。即用「-t」表示「--target」,用「-n」表示「--name」,用「-s」表示「--skin」。改输入如下:
代码:
$ android create avd -t 2 -n devphone –s G1
移除模拟器场景要移除一个模拟器场景,直接删除在「android_sdk/platforms/android-1.5/skins」中的对应目录即可。
移除程式
我们已经顺利地启动了模拟器,那麽,该怎麽移除安装到模拟器上的程式
Android SDK 中提供一个 adb (Android Debugger) 命令行工具 (在 android-sdk/tools 中),我们可以用裡面的 shell 工具连上模拟器来移除应用程式。在某些平台上,这些动作可能需要拥有 root 权限才能执行。
首先打开命令列,启动 adb shell
代码:
$ adb shell
接着切换到 data/app 目录中
代码:
$ cd data/app/
使用 ls 命令(等同 windows 上命令行的 dir 命令)来检视档桉列表
代码:
# ls
-rw-r--r-- system system 1325833 2007-11-11 20:59 ApiDemos.apk
接着使用 rm 命令来删除 ApiDemos 应用程式
代码:
# rm ApiDemos.apk
# ls
移除模拟器
我们可以使用「android list avd」命令来列出所有的模拟器
代码:
$ android list avd
Available Android Virtual Devices:
Name: cupcake
Path: /Users/mac/.android/avd/cupcake.avd
Target: Android 1.5 (API level 3)
Skin: HVGA
表示现在系统中有一个名为 cupcake 的模拟器。 我们可以使用「android delete avd --name cupcake」命令来删除名称为「cupcake」的模拟器。
代码:
$ android delete avd --name cupcake
AVD 'cupcake' deleted.
删除后再次执行「android list avd」命令,得到的结果为
代码:
$ android list avd
Available Android Virtual Devices:
表示系统中已经不存在任何模拟器,我们真的已经将模拟器删除了。
阅读参考
* 模拟器操作细节
http://developer.android.com/guide/deve ... lator.html* 模拟器外观下载
http://www.android.encke.net/
文章评论(0条评论)
登录后参与讨论