利用网络服务开发基于安卓的移动学习应用程序外文翻译资料

 2022-10-10 16:41:55

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


利用网络服务开发基于安卓的移动学习应用程序

摘要:如今,移动设备的不断更新发展使得手机应用程序的数量不断增加,其中包括移动学习应用程序。移动设备的硬件和软件平台支持更加快速和丰富的应用程序的运行。这篇论文介绍了开发基于安卓的分布式移动学习应用的主要步骤。同时,利用Web服务使得客户端应用和服务器能够通信。原型开发还包括测试模块。

关键词:移动应用程序,安卓操作系统,网络服务

1、简介

用于学习的移动端应用程序是利用多种多样的技术和平台完成开发的。每一步的实现都有特定的用户界面和内容,并且会对整个开发过程产生影响。一个移动的学习系统至少包括以下几个组成部分:移动的学习设备;移动的学习软件;移动的学习内容。

一个移动的学习过程所需要的软件是一个简单的网络浏览器或者是专用的应用程序,可以是单独电脑的或者是客户端的程序。

在一个移动学习系统中,学生的行为可以是:学习在线课程;进行考试;发送学习成果;发送家庭作业和项目。

移动学习系统中有在线学习系统,该系统中的训练者的解决方案是:进行学习内容的管理;准备考试内容;批改学生们的试卷、家庭作业和项目;发送反馈信息;和学生们进行沟通交流(通过论坛、邮件和其他形式发送消息)。

对于开发移动学习应用程序最常用的技术之一是广为人知的基于Web的体系结构。通常,单机的应用程序要求所有的学习内容都存储在移动设备中。分布式的移动学习应用程序(包括基于Web的)是当你需要的时候才会下载并使用这部分内容。分布式平台和基于网络的平台在架构上具有相似点,但是客户端的应用程序是一个很丰富的程序,并不是一个简单的网络浏览器,并且服务器也是不同的。用这种平台的好处是:使用户界面更加丰富;支持多媒体内容;在线学习内容可以很容易在服务器端更新。同时也有一些弊端:用户必须安装和设置客户端程序;用户必须学习怎么使用该程序;还可能会因为通信产生额外的成本。分布式移动学习程序的开发包括以下步骤:项目管理;分析;设计;实现;测试。这些步骤是应用在软件开发和移动内容。应用程序的开发需要考虑到获得的结果和

图1 分布式移动学习平台结构图

相关的应用程序和系统的质量。

除了移动学习的内容,还有数据库用于管理用户、消息和其他设置。数据库里的数据需要从专用服务器里访问。这款为安卓设备开发的移动学习应用程序有以下几个模块:课程;测验;期末和部分测试;消息。为了管理这个系统,会开发特定的模块以便支持:用户控制;内容管理;课程;测验;做笔记。这些模块是独立写出的,共享相同的数据。每个模块都有相关联的屏幕显示,它们是从主屏幕触发启动的。

移动端和服务器的通信是基于网络服务的。XML Web服务对于开发者和用户来说都有很大好处:它使用简单的协议,服务器和客户端的实现都比其他方法要简单得多。

原型开发至今,已经实现了测试模块。

2、Android平台

2.1 Android操作系统

Android操作系统最开始是由Google通过开放手持设备联盟开创的一个项目,这个联盟包括超过30家来自ICT的公司。Android平台是一个开源的项目,允许任何移动设备制造商对它进行修改完善。图2描述了android操作系统的体系结构。这种操作系统是基于2.6.x版本的Linux内核,这是一个庞大的内核。这种内核含有移动设备硬件的驱动,比如屏幕、鼠标、相机、USB、蓝牙等等。内核提供硬件接口,内存管理,进行和其他资源。

本地函数库在下一阶段的水平依赖于移动设备的硬件结构。这些函数库可以支持2D和3D图形(单个的,嵌入式开放图形库),多媒体,安全,存储,浏览(浏览器)和C标准函数库。

Android应用程序使用java程序设计语言。应用程序需要一个环境来管理他的生命周期。这就需要有java虚拟机(叫做Dalvik虚拟机)和java类库为应

用程序提供一些基本的支持(回收,输入输出操作管理等等)。Android应用程序和java ME以及javaSE不兼容。应用程序仅为移动设备优化的。

应用程序接口允许访问包含所有android应用程序组件的框架。Android应

用程序的应用程序框架包括组件管理(安装、执行),windows管理和图形用户界面,事件处理等。应用程序级别包括预装应用程序(联系人管理、电话、日历、浏览器)和用户应用程序。应用程序是基于java技术,使用通过应用程序接口提供的类。另外,还可能通过NDK使用本机的用C/C 编程语言编写的函数。

小部件不同于应用程序,它只占用主要显示屏幕的一部分和一些相关联的屏幕。Android操作系统是多任务处理,每一个程序都在独立的线程里运行。

2.2 android应用程序开发

Android应用程序开发是利用一个人或多个基础的组件:activity(Activity基础类),services(Services基础类),content providers(ContentProvider基础类),对发送到所有应用程序的消息进行接收和处理的组件(BroadcastReceiver基础类),消息(Intent类)。

在应用程序开发中使接口代码分离的资源非常重要。activities代表与应用相关的屏幕。一个应用程序可以拥有一个或多个activity。Services是和主线程同时运行的例程,并不获取图形用户界面。它允许在应用程序的后台进行活动的开发,并不阻塞主线程的执行和互动。ContentProviders是用来在各应用程序之间共享数据的。数据共享是通过文件、数据库和其他方式的。ContentProviders的一个可选择的用法是在进程之间进行通信。通过BroadcastReceiver的子类,应用程序可以对系统中突发事件进行回应。应用程序中没有用户图形界面的这类组件有很多。

为了激活组件,如活动意图的异步消息封装在对象类型。Android应用程序主要是用带有ADT 组件的Eclipse IDE进行开发。Android SDK和模拟器对于应用程序开发都是很有必要的。

3、图形用户界面

原型开发包括三部分:考试选择;问题和答案;答案列表。界面很简单也很直观,没有任何图形和图纸。这样可以减少应用程序所需要的内存,也缩短了开发的时间。后续版本将会包括修订的更有好的用户界面。这个应用程序主要目标是触屏的移动设备,但也不仅限于此。

测验模块的主界面如图3。相关联的activity叫做ActTeste,并且在AndroidMainifest.xml配置文件中声明为main activity。当应用程序启动后,测试列表自动加载显示在这个界面。这个列表是一个ListView组件。关于这个列表的一些基本的描述在XML源文件中进行定义。例如图3 ,接下来的语句结构会在每个list基本定义中用到。

lt;TextView xmlns:android='http://schemas.android.com/apk/res/android'

android:layout_width='fill_parent'

android:layout_height='wrap_content'

android:padding='10dp'

/gt;

图3 android设备上的测试选择界面

要想开始一个新的activity,就要用到Intent实例。所有的activity都要在AndroidManifest.xml 文件中声明:

lt;activity android:name='.ActTeste' /gt;

lt;activity android:name='.ActIntreb'/gt;

lt;activity android:name='.ActRasp'/gt;

如果一个activity没有在AndroidManifest.xml文件中声明,当代吗执行的时候就会发生运行异常。所有的测试数据都是从存储在服务器端的数据库下载的。在初始化的时候要用到特定的网络服务方法。主菜单的一些项目要包括:登录和注销应用程序;退出应用程序;查看应用程序版本。当onCreateOptionsMenu 方法被调用的时候,加载主菜单设置:

onCreateOptionsMenu(Menu menu)

{

menu.add(0, LOGIN, 0, 'Login');

menu.add(0, LOGOUT, 1, 'Logout');

menu.add(0,IESIRE, 2,'Iesire');

menu.add(0,DESPRE, 3,'Despre');

return true;

}

当用户选择一个菜单项,onOptionsItemSelected 函数就会被调用。比如,当用户想要退出应用程序,和IESIRE 标签相关的代码就会被执行:

(MenuItem item)

{

switch (item.getItemId())

{

//...

case IESIRE:

android.os.Process.killProcess (android.os.Process.myPid());

return true;

}

return false;

}

下面的代码是用来显示问题和答案相关的activity的,这个activity是基于AdapterView.OnItemClickListener 接口的:

public void onItemClick(AdapterViewlt;?gt; parent, View item, int position, long id)

{

Intent intent = new Intent(ActTeste.this, ActIntreb.class);

//add parameters

intent.putExtra('idTest', position 1);

//launch selected test

startActivity(intent);

}

当用户从列表中选择一个测试板块的时候,和第一个问题相关的界面就会显示出来。图4就说明了和问题窗口相关的图形界面。

图4 在android设备上显示的问题界面

问题只有一个正确答案。学生可以按顺序地从问题到答案进行操作。一些菜单项对于第一个问题和最后一个问题是无效的:

public boolean onPrepareOptionsMe-nu(Menu menu)

{

if (idIntrebareCurenta ==

numarIntrebari)

menu.setGroupEnabled(

ActIntreb.INAINTE, false);

else

menu.setGroupEnabled(

ActIntreb.INAINTE, true);

//hellip;

}

为了从一个activity向另一个activity传递复杂的对象,就要通过describeContent、writeToParcel 方法实现android.os.Parcelable 接口。

比如,Intrebare 类,代表一个问题,就实现了writeToParcel方法:

public void writeToParcel(Parcel dest, int flags)

{

dest.writeInt(idIntrebare);

dest.writeString(t

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[151584],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。