

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
Android应用程序开发的开发环境:经验报告
作者:
Robi Grgurina, Goran Brestovac and Tihana Galinac Grbac
University of Rijeka,
Faculty of Engineering
Vukovarska 58, HR-51000 Rijeka
摘要:在过去的几十年中,我们见证了终端用户对移动通信的接受度的巨大提高。基于开源软件的移动平台的出现迅速增加了人们对移动应用开发的兴趣。本文提出了一种基于开源软件和开源开发环境的Android手机应用程序开发方法。这里介绍的工作是学生项目的成果。我们概述了经验和经验教训。
Abstract
In the last decades we have witnessed an enormous increase in the end user acceptance of mobile communications. The appearance of mobile platforms based on the open source software has rapidly increased the interest into mobile applications development. In this paper, we present an approach to the Android mobile phone application development that is based on an open source software and open source development environment. The work presented here is the outcome of a student project. We outline the experiences and lessons learned.
目录
4.5使用find bug state analyzer插件查找Bug 6
1 绪论
移动应用程序开发是初学者软件工程项目的一个很好的选择,该项目旨在向学生介绍基本的开发过程活动,如设计、实现和测试。原因是它的复杂性低,创新机会大,对新的和创新的移动应用程序有巨大的市场兴趣。由于其简单性,学生可以在相对较短的时间内,轻松熟悉基本的开发概念、技术和资源,这些概念、技术和资源可以结合起来生成移动应用程序。
在各种各样的移动平台中,基于Android操作系统(OS)的已开发应用程序的数量正在增加。Android是谷歌的开源移动软件环境,由基于Linux的操作系统[1]、[2]组成。应用程序开发使用Java编程语言和优化内存和资源使用的虚拟机。这对于移动应用程序尤其重要。人们对Android开发越来越感兴趣的原因之一在于,存在免费和开源的开发环境,如Eclipse,具有丰富的工具集和许多交互可能性[3]。此外,只有基本的编程技能才能开始为Android手机操作系统开发简单的应用程序。我们以前有C语言的经验,还有C 编程语言。
出于这些原因,我们选择研究Android手机应用程序开发和Eclipse集成开发环境。
在本文中,我们报告了我们在开发Android手机应用程序的学生项目中获得的经验。我们的应用程序是使用Eclipse集成开发环境(IDE)和Android开发工具(ADT)插件和Android软件开发工具包(SDK)开发的。一些有用的附加插件[3]如check style、find bug state analyzer with aware和eclipse metrics plugin已经集成到Eclipse IDE中作为额外的支持,以减少开发期间的编码错误数量。在开发过程中,应用程序测试由Android模拟器[3]和Robotium测试框架[4]执行,而完成的应用程序使用“Perfecto移动手机云”服务在实际设备上进行测试[5]。
论文的其余部分组织如下。Android操作系统在第2节中进行了解释。我们的项目以及开发和测试策略在第3节中进行了描述。第4节描述了用于Android应用程序开发的开发环境。第5节给出了应用所提出的开发和测试策略所取得的经验,作为本文的结论。
2 Android操作系统
如[2]所述,整个Android系统架构如图1所示。有四个主要层,每个层为上面的层提供服务,并使用下面的层的服务。
安卓操作系统建立在Linux内核之上,通过为安卓提供硬件抽象层,安卓可以移植到各种平台上。它用于内存管理、进程管理、网络和其他操作系统服务。
Android本机库位于Linux内核之上。它们是用C或C 编写的,并为移动电话所使用的特定硬件结构进行编译。这些库提供窗口管理、二维和三维图形、媒体编解码器、SQLite数据库和浏览器引擎。
安卓运行时也位于内核的顶部。它由Dalvik虚拟机(VM)和核心Java库组成。Dalvik是一个专为低内存需求而设计的虚拟机,允许多个VM实例同时运行。所有代码都是用Java编写的。
应用程序框架层位于本机库和Android运行时之上。它可以控制应用程序的生命周期,在应用程序之间共享数据,使用全球定位系统(GPS)提供位置并管理通知。
最上层包含应用程序和小部件。应用程序是与用户交互并通常占据整个屏幕的程序,而小部件仅控制用户主屏幕中的小矩形区域。
3 项目说明
我们在2010/2011学年的第一个学期内完成了这个项目。其目的是开发我们自己选择的Android应用程序。
我们决定开发一个有助于扩展用户英语词汇的应用程序。我们的计划是一个人开发Android应用程序,另一个人开发相应的测试应用程序。开发环境和工具是从免费提供的工具中选择的。
3.1开发过程
在头脑风暴会议期间规定了这些要求。两名学生同时开发了Android应用程序和相应的测试应用程序。在开发过程中,我们每周召开一次会议,向彼此介绍项目的进展和遇到的问题。我们讨论了可能的解决方案,并定义了下一次会议之前要处理的任务。会议一直开到所有问题都解决为止。
3.2功能
我们在学生项目中开发的应用程序是一个交互式学习游戏,旨在帮助玩家扩展英语词汇。在头脑风暴会议期间,将探讨这个一般性的想法,并列出一系列需求。需求列表指导了我们的开发和测试过程。
1.应用程序必须可以通过主电话菜单访问。
2.主用户界面提供播放、更改难度设置、添加新词和使用按钮退出应用程序的选项。
3.按“provjera znanja”(英语知识评估)按钮,打开新的界面,为用户提供由一个克罗地亚语单词和三个提供的英语单词组成的游戏案例,只有一个克罗地亚语单词的正确翻译。
4.点击其中一个英文单词,用户将得到答案正确性和当前结果状态的通知。同时,出现了一个克罗地亚语单词和三个英语单词的新游戏案例。
5.按手机后退按钮,游戏盒界面关闭,用户回到主用户界面。
6.点击“postavke”(eng.settings)按钮,打开新的游戏设置界面,有三个按钮,可在三个难度级别中选择:“lagano”(eng.easy)、“srednje”(eng.medium)和“tesko”(eng.hard)。
7.按手机后退按钮,游戏设置界面关闭,用户回到主用户界面。
8.按“RJECNIK”(工程字典)按钮,打开字典扩展的新界面,有两个文本字段和三个按钮。在第一个文本字段中,用户输入一个克罗地亚语,在第二个字段中输入一个英语单词,并选择三个按钮中的一个(表示难度级别),将该单词插入数据库。字的最大长度设置为20个字符。
9.按手机后退按钮,字典扩展界面关闭,用户回到主用户界面。
10.“izlaz”(eng.exit)按钮关闭应用程序。
3.2测试方法
已经提出了一个测试策略来定义我们在项目中使用的测试活动。测试策略的主要步骤如下所示。
首先,在开发过程中(包括应用程序和测试应用程序的开发),编译器已经被连续地用于识别和消除插入的编码错误,例如拼写错误的单词。编译后的代码在虚拟机上进行了测试。
然后,在早期的故障检测阶段,目标是识别违反编码标准的错误。为此,可以使用许多基于自动检查表的测试工具,例如[6]。
在开发过程的最后,对开发的代码进行验证,以检查其行为和执行是否符合预期。测试应用程序必须在Android应用程序上执行,以验证需求描述的功能。测试人员和开发人员讨论了所有的误解。
最后,在成功通过所有之前的测试步骤之后,根据测试策略的最终测试步骤是使用Perfecto Mobile Web Service在真实设备上安装和测试Android应用程序[5]。此测试阶段的主要目的是验证应用程序在实际环境中以及在几个不同的手机上的应用程序。
4 开发环境
Eclipse是我们在项目[7]中使用的开源软件开发环境。它由集成开发环境(IDE)和可扩展插件系统[3]组成。在这个项目中,我们使用了EclipseHelios发行版和在续集中出现的几个插件。我们在Windows和Linux操作系统上都进行了开发。
4.1Android SDK
Eclipse集成开发环境(IDE)是一个用于Android开发的集成开发环境,这样可以使开发更加快速和直接。当然,开发人员不需要集成开发环境,但是大多数开发人员都建议使用集成开发环境,因为它很简单。
每个Android应用程序都有自己的Linux进程,每个进程都有自己的虚拟机。因此,每个应用程序都有自己的唯一ID,并且运行时与所有其他应用程序隔离。应用程序是由活动形成的。活动可以被视为应用程序中的特定窗口。它被设计为通过与用户交互来完成一个特定的任务。一个应用程序可以为程序的每个部分包含不同的活动。例如,我们的应用程序有一个用于播放的活动,另一个用于游戏设置的活动,第三个用于输入新词等。使用服务,Android可以选择处理多任务。
服务的一个很好的例子是,当用户使用我们的应用程序播放音乐时,音乐播放可以在后台运行。我们的应用程序有一个用sqlite创建的数据库。用户通过查询访问数据库。与查询描述匹配的所有行都作为指针(光标)类型返回。应用程序有一个适配器类,用于处理对数据库的特定调用。内容提供者可以在应用程序之间访问信息。如前所述,每个应用程序都有自己的私有沙盒和私有数据库。内容提供者需要由应用程序开发人员实现。清单是一种安全实现,它确保应用程序没有公开的部分。
4.2 ADT插件
Eclipse中最受欢迎的Android移动应用程序开发插件之一是由
全文共10478字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[728]
