基于安卓的数据通信系统设计(5)

两者拥有不同的地方,其中最大的不同在于Java VM是基于栈的虚拟机(Stack-based),而Dalvik是以基于寄存器的模拟机(Register-based)。显然,基于寄存器的模拟


两者拥有不同的地方,其中最大的不同在于Java VM是基于栈的虚拟机(Stack-based),而Dalvik是以基于寄存器的模拟机(Register-based)。显然,基于寄存器的模拟机最大的好处在于可以将更好地优化硬件,移动设备恰恰需要这一点。而Android 4.4开始,ART是Android默认的运行环境,ART运行的机制与Dalvik有所不同。在Dalvik机制下,应用程序在每次开始运行的时候,必须要先通过即时编译器将字节码转换为机器码,这会严重影响应用的运行效率。但在ART环境中,在第一次安装应用的时候,字节码就会预编译成机器码,使其成为真正的本地应用。这样的方法能够使应用的启动和执行都会变得更加快速。

应用程序框架层是Android应用开发的基础,由于上层的应用程序是以Java构建的,因此本层次还提供了UI程序中所需要的各种控件,例如:Views(视图组件)。List(列表)、Grid(栅格)、Text Box(文本框)、Button(按钮)等。一个基本的Android应用程序,可以利用应用程序框架中的以下五部分来构建。Activity(活动);Broadcast Intent Receiver(广播意图接收者);Service(服务);Content Provider(内容提供者);Intent and Intent Filter(意图和意图过滤器)[5]。

安卓拥有很好的便利性,应用程序层会向开发者提供一些相关的应用程序包,例如电子邮件、短信等基础的软件包。同时,开发者可以利用Java语言和应用程序框架层的API设计和编写所需要的应用程序,这些程序将与系统提供的那些核心应用程序并不会发生冲突,它们将会友好相处,为用户提供好的服务。

2.3.3 模拟器的配置

本课题在安卓本身的模拟器进行了配置,打开Android Virtual Devices,在Devices中选择Nexus S选项,由于本课题使用的手机版本是安卓5.1.1版本,所以在Target中选择Android 5.1.1-API Level 22,CPU选择Intel Atom(x86_64),Skin选择no skin,SD Card大小选择200MiB,其他选项默认。其他模拟器的知识如下。

AVD全称为Android虚拟设备,每个AVD模拟了一套虚拟设备来运行安卓平台,这个平台至少要用自己的内核、系统图像和数据分区,还可以有自己的SD卡和用户数据以及外观显示等。

无论在Windows还是Liunx下,Android模拟器都可以顺利运行。官方提供了Eclipse插件Android SDK,将模拟器集成到Eclipse的IDE环境。Android SDK中包含的模拟器的功能非常齐全,电话本、通话等功能都可以使用;其内置的浏览器和Maps都可以联网;用户可以使用键盘输入,甚至还可以使用鼠标单击、拖动屏幕进行操纵。

Android模拟器不能完全替代真机,具体来说有以下几点差异:

(1) 模拟器不支持实际的来电和向外呼叫,只能通过控制台模拟电话呼入和呼出;

(2) 模拟器不支持USB连接;

(3) 模拟器不支持相机/视频捕捉;

(4) 模拟器不支持音频输入,但支持输出;

(5) 模拟器不支持扩展耳机;

(6) 模拟器不能确定连接状态;

(7) 模拟器不能确定电池电量水平和交流充电状态;

(8) 模拟器不能确定SD卡的插入/弹出;

(9) 模拟器不支持蓝牙。

安卓模拟器可以模拟真实设备的所有硬件和软件特性。模拟器提供了多种导航和控制键,开发人员通过单击鼠标或者键盘可以为应用程序生成事件。一个安卓虚拟设备由以下几部分组成。

硬件配置:定义虚拟设备的硬件特性。

映射的系统镜像:开发人员可以定义虚拟设备运行的安卓平台版本,

其它选项:开发人员可以通过指定需要使用的模拟器皮肤,来控制屏幕尺寸,外观等。此外,还可以指定安卓虚拟设备使用的SD卡[6]。

专用存储区域:用于存储当前设备的用户数据和模拟SD卡。

创建一个模拟器的步骤如下: