基于X86架构的Android软件模拟测试环境

时间:2022-07-12 04:37:12

基于X86架构的Android软件模拟测试环境

摘 要:Android操作系统在智能手机市场中的巨大占有率使其成为应用软件开发的热门平台,但现有开发环境多基于X86架构,无法直接测试运行基于ARM架构的Android系统应用软件,本文详细阐述了如何利用Android SDK实现在X86架构下模拟Android操作系统运行环境以及如何提高模拟环境的兼容性,方便开发者实现在基于X86架构的开发平台上测试Android应用软件。

关键词:Android软件;X86架构;虚拟机

中图分类号:TP391.9

在智能手机的发展与普及浪潮中,功能强大的Android操作系统因其开源、免费的特性,在降低手机的成本、提高手机的用户体验方面具有很大优势,其以来市场占有率不断激增。巨大的市场吸引了众多开发者为其设计应用软件,但Android操作系统被设计为针对手持触控设备,此类设备因功耗问题,其CPU采用的是ARM架构,现行常用开发环境的X86架构与之不兼容,无法直接运行Android操作系统。在X86架构平台上开发完成的软件,需要安装到Android设备上进行测试。如此测试存在以下问题:1.需要另行配置硬件设备,增加开发成本及周期;2.测试易受设备本身性能质量、兼容性等特性干扰,同时硬件存在折旧损坏问题,比如多次使用后常遇到数据端口接触不良等问题;3.常见的Android设备性能不如PC,且Android平台调试工具种类少、功能单一,测试调试不便。在PC上直接模拟Android设备上的运行环境进行软件测试,是解决上述问题的一个优秀方案,此方案应满足以下需求:1.在X86架构中模拟出Android操作系统虚拟机;2.具有广泛的兼容性,可运行待测试的应用软件,可模拟不同版本的Android系统;3.避免X86架构下软件模拟ARM架构造成的性能损失,尽可能接近真实运行速度以具备实用价值。

1 Android SDK

Android,这一基于Linux操作系统的开源手机平台是2007年11月5日由Google与34家软硬件制商、电信运营商同创建的开放手持设备联盟(Open Handset Alliance,简称OHA)的。OHA在其后又了Android SDK――Android软件开发工具包,Android SDK支持Windows、Linux等平台,涵盖了X86架构下所有常见的开发环境,集合了开发Android操作系统平下应用软件所需要各种软件工具。

2 模拟运行Android

使用Android SDK模拟运行Android操作系统前应注意运行环境的配置。硬件方面,不同操作系统对CPU的管理机制不同,执行同一操作时对指令集的调用方式也不同。若实现模拟运行,会造成CPU指令的冲突,故开始前注意打开CPU硬件配置中的Virtual Technology功能(即“虚拟化技术”)。它允许CPU启用支持虚拟技术的额外指令集,模拟多个独立CPU并行运行,使得通过一个CPU运行多个操作系统成为可能。软件方面,Android SDK是基于JAVA环境开发的,运行前需要安装JAVA JDK,并注意系统环境内增配以下变量:(1)JAVA_HOME变量,变量值为JAVA JDK的安装路径;(2)classpath变量,变量值为:“.;%JAVA_HOME%\lib; ”(不包括引号),为Android SDK提供JAVA类库地址;(3)Path变量,变量值为JAVA JDK的安装路径下的Bin文件夹。此外,实现模拟运行需要安装Android SDK中的以下模块:(1)Android SDK starter package,包含工具包的图形化操作主界面,方便调用配置相关软件开发工具,其所在安装路径即为SDK主目录;(2)Android SDK Platform-tools,配置所需的相关工具,安装于SDK主目录下;(3)Android SDK API Level,包含不同Android版本所需的应用编程接口,应根据想要模拟运行的Android版本,选用不同的接口包,安装于SDK主目录下platforms目录内;(4)Android SDK system img,包含不同Android操作系统的镜像文件,选用时应注意其对版本与Android SDK API Level一致,安装于SDK主目录下system-images目录内。准备完成后,运行SDK主目录下的“AVD Manager.exe”即可启动Android模拟运行的管理界面,通过“New”按钮打开虚拟机参数配置卡片,设置名称、版本、指令集、SD卡容量、屏幕、内存等信息后完成新建虚拟机,选“OK”回到主界面,即可选中建好的虚拟机通过“Start”按钮运行。至此,Android成功模拟运行。此时,在原X86架构的操作系统中会识别为系统接入了一台Android硬件设备,开发人员即可正常安装应用软件并运行、调试。

图1

3 改进兼容性

通过上述方式运行的虚拟机,Android SDK为其分配的System分区仅有128MB,不足以安装测试大型应用软件。为扩大其分区容量以提高兼容性,须以命令行的方式配置参数并调用SDK主目录下tools中的“emulator.exe”来启动虚拟机,命令格式为:emulator -avd -partitionsize 。其中分区大小的单位为MB。此外,要测试软件在不同版本的Android操作系统下的兼容性,需要选用对应版本的Android SDK API Level接口包和Android SDK system img镜像包,这些包是以1、2、3……的方式编号的,编号所对应的版本如下:

图2

4 提升运行效率

由于Android SDK默认采用在X86架构下通过软件模拟ARM架构CPU及GPU的方式,导致虚拟机存在运行效率低下的问题,在其虚拟机中软件运行速度远低于正常Android设备,影响对软件的测试。通过安装扩展插件模拟特殊CPU的虚拟机,可以避免这一问题。Intel Atom是Intel公司推出的基于X86架构的移动设备CPU,其指令集针对移动设备的特性进行过改进,引入了“二进制转换”(Binary Translation)这一功能,来解决x86无法直接运行ARM库的问题。与此同时,Intel公司为在移动设备中扩大Atom的市场占有率,充分运用Android的开源特性,为多个Android系统版本添加了对Atom的更好支持。采用Atom作为CPU的移动设备和支持Atom的Android系统版本,都已在Android SDK中被添加了相关数据包。通过在Android SDK Manager中安装Intel X86 Emulator Accelerator(HAXM)插件,并在Android SDK system img中添加Intel x86 Atom System Image系列镜像,即可运行采用Intel Atom CPU的虚拟机,以此为纽带,在Intel x86 Atom System Image涵盖Android的版本中,可模拟运行采用ATOM作为CPU的Android虚拟机。由于此类虚拟机架构与x86类似,在原有开发环境中运行效率高,运行待测试软件的速度接近真实速度,真正实现具有实用价值的Android软件模拟测试环境。

参考文献:

[1]X86上的Android:性能与兼容可否兼得,2013-5-11.

作者单位:福建省福州大学空间中心,福州 350000

上一篇:必须的低调 下一篇:良心的靶子