万书网 > 文学作品 > Android从入门到精通 > 第7页

第7页







第2章 Android模拟器与常用命令

(  教学录像:47分钟)

为了降低开发Android应用的成本,Android  SDK中提供了一个模拟器,在计算机中开发的应用程序都可以在其中进行测试。因此,开发人员需要掌握模拟器的使用。此外,有些常用功能需要使用控制台上的命令来完成,这些内容也将在本章进行讲解。

通过阅读本章,您可以:

★  了解Android模拟器



★  掌握模拟器的启动与停止



★  掌握模拟器的使用



★  掌握虚拟SD卡的使用



★  掌握在模拟器上安装和卸载应用



★  掌握常用的Andriod命令





2.1 使用Android模拟器

教学录像:光盘\TM\lx\2\使用Android模拟器.exe

Android  SDK中包含了可以在计算机上运行的虚拟移动设备模拟器,开发人员不必使用物理设备就可以开发、测试Android应用程序。

除了不能真正实现通话,Android模拟器可以模拟典型移动设备的所有硬件和软件特性。它提供了多种导航和控制键,开发人员通过鼠标或键盘来为应用程序生成事件;它还提供了一个屏幕,用于显示开发的应用程序以及其他正在运行的Android应用。

为了简化模拟和测试应用程序,模拟器使用Android虚拟设备(AVD)配置。AVD允许用户设置模拟手机的特定硬件属性(如RAM大小),并且允许用户创建多个配置来在不同的Android平台和硬件组合下进行测试。一旦应用程序在模拟器上运行,它可以使用Android平台的服务来启动其他应用、访问网络、播放声音和视频、存储和检索数据、通知用户以及渲染图形渐变和主题。

模拟器也包括多种调试功能,如记录内核输出的控制台、模拟应用中断(如收到短信或电话)和模拟数字通道的延迟及丢失。

2.1.1 模拟器概述

Android模拟器是一个基于QEMU的程序,提供了可以运行Android应用的虚拟ARM移动设备。它在内核级别运行一个完整的Android系统栈,其中包含了一组可以在自定义应用中访问的预定义应用程序(如拨号器)。开发人员通过定义AVD来选择模拟器运行的Android系统版本,此外,还可以自定义移动设备皮肤和键盘映射。在启动和运行模拟器时,开发人员可以使用多种命令和选项来控制模拟器行为。

随SDK分发的Android系统镜像包含用于Android  Linux内核的ARM机器码、本地库、Dalvik虚拟机和不同的Android包文件(如Android框架和预安装应用)。模拟器QEMU层提供从ARM机器码到开发者系统和处理器架构的动态二进制翻译。

通过向底层QEMU服务增加自定义功能,Android模拟器支持多种移动设备的硬件特性,例如:

[√]ARMv5中央处理器和对应的内存管理单元(MMU)。



[√]16位液晶显示器。



[√]一个或多个键盘(基于QWERTY键盘和相关的Dpad/Phone键)。



[√]具有输出和输入能力的声卡芯片。



[√]闪存分区(通过计算机上磁盘镜像文件模拟)。



[√]包括模拟SIM卡的GSM调制解调器。

2.1.2 Android虚拟设备和模拟器

Android虚拟设备(AVD)是模拟器的一种配置。开发人员通过定义需要的硬件和软件选项,来使用Android模拟器模拟真实的设备。

一个Android虚拟设备(AVD)由以下几部分组成。

[√]硬件配置:定义虚拟设备的硬件特性。例如,开发人员可以定义该设备是否包含摄像头、是否使用物理QWERTY键盘和拨号键盘、内存大小等。



[√]映射的系统镜像:开发人员可以定义虚拟设备运行的Android平台版本。



[√]其他选项:开发人员可以指定需要使用的模拟器皮肤,这将控制屏幕尺寸、外观等。此外,还可以指定Android虚拟设备使用的SD卡。



[√]开发计算机上的专用存储区域:用于存储当前设备的用户数据(如安装的应用程序、设置等)和模拟SD卡。

根据需要模拟设备的类型不同,开发人员可以创建多个AVD。由于一个Android应用通常可以在很多类型的硬件设备上运行,开发人员需要创建多个AVD来进行测试。

为AVD选择系统镜像目标时,请牢记以下要点:

[√]目标的API等级非常重要。在应用程序的配置文件(AndroidManifest文件)中,使用minSdkVersion属性标明了需要使用的API等级。如果系统镜像等级低于该值,将不能运行这个应用。



[√]建议开发人员创建一个API等级大于应用程序所需等级的AVD,主要用于测试程序的向后兼容性。



[√]如果应用程序配置文件中说明需要使用额外的类库,则其只能在包含该类库的系统镜像中运行。

在第1章已经详细讲解了如何使用图形化的AVD管理工具来管理AVD。在创建AVD时,还可以同时制定模拟设备的硬件属性,如图2.1所示。



图2.1 设置AVD属性

单击图2.1中的New按钮,还可以增加其他属性。各个硬件属性及说明如表2.1所示。

表2.1 AVD支持的硬件属性及说明





属 性  说 明

hw.ramSize  设备的物理内存量,默认值是96

hw.touchScreen  设备是否包含触摸屏,默认值是yes

hw.trackBall  设备是否包含轨迹球,默认值是yes

hw.keyboard  设备是否包含QWERTY键盘,默认值是yes

hw.dPad  设备是否包含DPad键,默认值是yes

hw.gsmModem  设备是否包含GSM调制解调器,默认值是yes

hw.camera  设备是否包含摄像头,默认值是no

hw.camera.maxHorizontalPixels  最大水平摄像头像素,默认值是640

hw.camera.maxVerticalPixels  最大垂直摄像头像素,默认值是480

hw.gps  设备是否包含GPS,默认值是yes

hw.battery  设备能否使用电池运行,默认值是yes

hw.accelerometer  设备是否包含加速计,默认值是yes

hw.audioInput  设备能否录制音频,默认值是yes

hw.audioOutput  设备能否播放音频,默认值是yes

hw.sdCard  设备是否支持虚拟SD卡插拔,默认值是yes

disk.cachePartition  是否在设备上使用缓存分区,默认值是yes

disk.cachePartition.size  缓存分区的大小,默认值是66MB

hw.lcd.density  设置AVD屏幕密度,默认值是160

2.1.3 Android模拟器启动与停止

在启动Android模拟器时,有以下3种常见方式:

[√]使用AVD管理工具。



[√]使用Eclipse运行Android程序。



[√]使用emulator命令。

在第1章中讲解了如何使用AVD管理工具来启动模拟器;如果使用Eclipse开发Android应用,在运行或者测试应用程序时,ADT插件会自动安装程序并启动模拟器;关于第3种方式,将在2.2.3节中进行讲解。

如果需要停止模拟器,将模拟器窗口关闭即可。