英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
使用网络服务开发移动学习应用程序
保罗pocatilu
经济信息学系
布加勒斯特经济研究院,罗马尼亚
摘要: 今天的移动设备的发展增加了移动应用开发社论,其中移动学习应用。移动硬件和 软 件平台允许运行的更快和更丰富的应用程序。本文介绍的主要步骤是一种分布式移动学习在安卓系统中的应用。客户端应用程序使用网络服务与服务器通信。原型开发包括测试。
关键词:移动应用,安卓操作系统,网络服务
1 介绍
移动学习应用开发利用各种技术和平台的设计形式。每一个实施都有具体的在用户界面和控制方面的特点内容和影响发展过程。
移动学习系统至少包括以下组件:
- 移动学习设备;
- 移动学习软件;
- 移动学习内容。
移动学习所需的软件过程是一个简单的移动网络浏览器或专用的应用程序,可以独立或客户端应用程序。
学生在学习系统的行为是[ 2 ]:
- 采取网上课程;
- 考试;
- 发送反馈;
- 发送作业,项目。
参与电子学习解决方案的培训师,包括移动学习,是:
- 处理内容管理;
- 准备测试;
- 通过学生获取评估测试,作业,项目;
- 发送反馈;
- 与学生沟通(论坛、E-mail和其他类型的邮件)。
最常用的移动架构学习型应用使用的是基于网络的众所周知的技术。
通常,独立的移动应用程序需要所有的移动学习内容是存储在移动设备中。
当需要时分布式移动学习应用程序(在包括基于Web的)便加载和使用的这些内容。
分布式平台上有一个类似真实的网络平台的建筑,不同的是客户端应用程序是一个丰富的应用程序,而不是一个简单的移动网络浏览器和服务器是。
使用该平台的优点是:
- 丰富的用户界面;
- 支持多媒体内容;
- 学习内容可以很容易地更新在服务器上;
也有一些缺点:
- 用户需要安装和设置客户应用;
- 用户必须学习如何使用应用程序;
- 可能的额外使用的流量费用。
分布式移动学习的发展应用程序包括以下步骤:
- 项目管理;
- 分析;
- 设计;
- 实施;
- 测试。
该步骤适用于软件开发和移动内容。应用程序开发重新考虑结果在于[ 5 ]和[ 6 ]相关的移动应用系统的质量。
图1描述了在分布式移动学习系统中所涉及的组件
图1 分布式移动学习平台的体系结构
除了移动学习内容外,还有用于管理用户数据库、消息和其他设置的数据库。而且要从专用服务器中去访问这些存储在数据库中的数据。
移动学习的应用,开发对于安卓设备,有以下几个模块:
- 课程;
- 测验;
- 最终和部分测试;
- 消息。
为了管理系统,开发设计模块需提供:
- 用户控制;
- 内容管理;
- 课程;
- 试验;
- 标志。
这些模块都要独立编写,而且他们分享共同的数据。各模块有一个相关的屏幕,他们展示在主屏幕上。
客户端和服务器之间的通信是基于网络服务。XML Web服务对开发商而言有很多优点而对于用户而言:他们使用简单的协议和实施服务并且用户用起来比其他的方法都容易。
原型开发到现在已经要实现测验模块。
2 安卓平台
2.1安卓操作系统
安卓操作系统是itiated谷歌通过开放手机联盟的一个项目,该项目在ICT中拥有超过30家公司。安卓平台是开源的项目,允许任何的移动设备制造商进行修改。
图2描述了安卓的体系结构操作系统。
图2 安卓体系结构
操作系统是基于Linux内核版本2.6,X,这是一个单片的内核。内核包括移动的驱动程序设备硬件:屏幕,键盘,摄像头,USB、蓝牙等。内核提供接口硬件和内存管理,进程和其他资源。
在下一个水平的本地库依赖移动式硬件结构的凹陷装置。这些库包括支持二维和三维图形(单、OpenGL ES),多媒体,安全,存储,浏览(WebKit)和标准C库[ 8 ]。Android应用程序开发使用JAVA编程语言。应用程序需要一个环境来管理自己的生活循环。这包括一个java虚拟机(称为Dalvik虚拟机)和java提供基本支持的类库应用(收藏,输入/输出歌剧管理等)。安卓应用不兼容java我或java SE。
应用的优化受移动设备的约束。
应用程序编程接口允许访问一个框架,包括所有的Android应用使用的组件。应用框架包括安卓应用程序的组件管理(安装、执行),Windows管理和用户界面图形化,事件处理等。
应用级包括预先安装的应用程序(联系人管理、电话、日历,互联网浏览器)和用户应用。应用程序是基于java技术通过用户使用类应用程序接口。另外有可能使用本机在写在C / C 支持程序功能编程语言通过NDK开发工具包。
与应用程序不同的部件,只占主显示屏的一部分,和home健关联。
安卓操作系统是多任务,每个应用程序在一个单独的线程中运行。
2.2 安卓应用程序开发
安卓应用程序开发使用一个或多个基本组件[ 3 ],[ 4 ]:
- 活动(Activity基类),
- 服务(基础类服务),
- 内容提供商(ContentProvider 基类)
- 组件接收并作用于消息派到所有的应用程序(基地类BroadcastReceiver)
- 消息(类意图)
在一个特别重要的应用开发的发展,使资源接口代码分离。活动表示相关联的屏幕一个应用程序。一个应用程序可以有一个或更多的活动。服务是运行于并行的例程主线程,没有图形用户界面。他们允许行动的发展后台不阻塞主线程执行和互动应用。
内容提供者用于共享数据应用之间。数据共享通过文件、数据库或其他手段。一个替代内容供应商是使用进程间通信。
应用程序可以响应发生在系统中使用类的事件来自BroadcastReceiver。他们做没有图形用户界面和应用程序可以有几个这种类型的组件。为了激活类似于活动的组件,封装在
使用意图类型的对象。
安卓应用主要是使用Eclipse和Android开发工具(ADT)插件。对于应用的开发Android SDK和模拟器是必要。
3图形用户界面
原型开发有三个交流活动:
- 测试选择;
- 问答;
- 答案列表。
界面简单直观,无需任何图形和图纸。这将减少通过应用所需的内存量和减少开发时间。
未来的版本将包括重新设计友好的用户界面。应用使用触摸屏的移动设备的目标,但不限于。
测验模块的主要屏幕是图3关联活动是actteste和被宣布为主要在xml配置文件的活动。
当应用程序启动时,该列表测试是自动加载在这个屏幕上。
列表的ListView的类型的一个对象。列表元素的描述被定义在基于XML的资源文件。为
例如图3下面的结构是用于每个列表元素:
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安卓系统测试选择屏幕装置
为了开始一项新的活动,一个意图使用立场。所有活动都需要在 AndroidManifest.xml文件中声明:
lt;activity android:name='.ActTeste' /gt;
lt;activity android:name='.ActIntreb'/gt;
lt;activity android:name='.ActRasp'/gt;
如果活动在AndroidManifest.xml中没有被声明,执行代码时将会出现运行时异常。
所有可用的测试都加载于一个存储在服务器端的数据库。一个专门的网络服务方法是用于此初始行动。
主菜单包含允许的项目:
- 登录/注销申请;
- 退出应用程序;
- 查看应用程序版本。
主菜单选项在添加时onCreateOptionsMenu方法被调用:
public boolean 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代码标签被执行:
public boolean onOptionsItemSelected (MenuItem item)
{
switch (item.getItemId())
{
//...
case IESIRE: android.os.Process.killProcess (android.os.Process.myPid());
return true;
}
return false;
}
下面的代码是用来显示与问题和答案相关活动, 基于适配器接口View.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 问题屏幕如图所示
机器人装置
这些问题只有一个正确的答案。学生可以从中导航另一个问题。一些菜单项
被禁用的第一个或最后一个问题:
public boolean onPrepareOptionsMenu(Menu menu)
{
if (idIntrebareCurenta == numarIntrebari)
menu.setGroupEnabled( ActIntreb.INAINTE, false);
else
menu.setGroupEnabled( ActIntreb.INAINTE, true);
//hellip;
}
为了传递复杂的对象从一个交流活动到另一个,他们必须执行接口android.os.parcelable通过方法describecontents和writeToParcel 。例如,类intrebare,代表一个问题,实现writeToParcel 方法这样:
publicvoidwriteToParcel(Parcel dest, int flags) <!--
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[29045],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。