移动应用开发实验报告.docx

上传人:b****8 文档编号:9161923 上传时间:2023-02-03 格式:DOCX 页数:40 大小:35.53KB
下载 相关 举报
移动应用开发实验报告.docx_第1页
第1页 / 共40页
移动应用开发实验报告.docx_第2页
第2页 / 共40页
移动应用开发实验报告.docx_第3页
第3页 / 共40页
移动应用开发实验报告.docx_第4页
第4页 / 共40页
移动应用开发实验报告.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

移动应用开发实验报告.docx

《移动应用开发实验报告.docx》由会员分享,可在线阅读,更多相关《移动应用开发实验报告.docx(40页珍藏版)》请在冰豆网上搜索。

移动应用开发实验报告.docx

移动应用开发实验报告

中南大学

移动应用开发实验报告

内容简介··································3

上机实验要求及规范·············4

实验一···································5~11

实验二···································12~20

实验三··································21~42

实验四··································43~52

内容简介

移动应用开发是计算机专业学生的一门专业课程,着重讲述移动应用编程的技术方法。

对于学生从事移动应用系统的研发、使用和维护有重要意义。

本课程概念多、内容涉及面广、系统性强。

通过本课程的学习,学生应能从软件、硬件功能分配的角度去了解、分析和研究移动应用系统,建立起对移动应用系统的全面认识,树立全面地、发展地看问题的观点,从而加深对各种类型移动应用系统的了解。

本课程的学习应注重理论与实践相结合,因此实验教学是教学环节中必不可少的重要内容。

通过实验教学的学习,使学生熟练掌握有关移动应用编程的基本概念、基本原理和基本思想,掌握对移动应用系统进行设计、分析和计算的方法。

实验部分包括四个实验,包括实验目的、实验内容和实验所需环境等,介绍了每个实验所需的一些基础知识和技巧。

在实验中给出的实验题,跟课堂教学的内容都有密切的关系,所以需要将课堂上讲授的例子程序融会贯通,掌握实验所需的一些基本方法和工具,并在吃透例子程序的基础上,积极独立思考设计和编写满足实验要求的程序。

中南大学信息科学与工程学院鲁鸣鸣制定

上机实验要求及规范

移动应用开发课程具有比较强的实践性。

上机实验是一个重要的教学环节。

一般情况下学生能够重视实验环节,对于编写程序上机练习具有一定的积极性。

但是容易忽略实验的总结,忽略实验报告的撰写。

对于一名大学生必须严格训练分析总结能力、书面表达能力。

需要逐步培养书写科学实验报告以及科技论文的能力。

拿到一个题目,一般不要急于编程。

正确的方法是:

首先理解问题,明确给定的条件和要求解决的问题,然后按照自顶向下,逐步求精,分而治之的策略,按照面向对象的程序设计思路,逐一地解决子问题。

一、实验报告的基本要求:

一般性、较小规模的上机实验题,必须遵循下列要求。

养成良好的习惯。

姓名班级学号日期题目

i.问题描述

ii.设计简要描述

iii.程序清单〔带有必要的注释

iv.结果分析〔原始图示,测试数据与运行记录,分析正确性;

v.调试报告:

实验者必须重视最后这两个环节,否则等同于没有完成实验任务。

这里可以体现个人特色、或创造性思维。

具体内容包括:

测试数据与运行记录;调试中遇到的主要问题,自己是如何解决的;经验和体会等。

二、实验报告的提高要求:

阶段性、较大规模的上机实验题,应该遵循下列要求。

养成科学的习惯。

〔1问题描述

〔2需求和规格说明

〔3描述问题,简述题目要解决的问题是什么。

规定软件做什么。

原题条件不足时补全。

〔4概要设计:

功能模块的划分

〔5详细设计:

每部分模块的设计,含数据结构的设计,算法的描述〔流程图或PDL

a.设计思想:

主要算法基本思想。

b.设计表示:

每个函数的头和规格说明;列出每个函数所调用和被调用的函数,也可以通过调用关系图表达。

〔6实现注释:

各项功能的实现程度、在完成基本要求的基础上还有什么功能。

〔7用户手册:

即使用说明书。

〔8调试报告:

调试过程中遇到的主要问题是如何解决的;设计的回顾、讨论和分析;时间复杂度、空间复杂度分析;改进设想;经验和体会等。

实验一GeoQuiz应用实现

一、实验目的

1.掌握activity和布局文件的基本概念

2.掌握编写简单Android应用的流程

3.掌握响应用户交互操作的基本方法

二、实验开发环境和工具

可以在Linux或者Windows操作系统上搭建开发环境,所使用的开发工具包括ADTbundle或AndroidStudio,使用Java语言,工具包使用JDK1.7或1.8。

三、实验内容

1、参照参考书《Android编程权威指南:

thebignerdranchguide》第一章给出的Android应用GeoQuiz,能测试用户的地理知识。

用户通过单击True或False按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否。

如下图所示:

ThePacificOceanislargerthantheAtlanticOcean.

一、问题描述

这是一个简易的地理知识问答app。

本次实验是一个初步设计,主要内容有:

首先设计出一个界面〔相当于android入门,这个界面包括一个TextView用来展示题目,以及两个按钮,一个代表true,另一个代表false,当点击这两个按钮中的一个时主界面上要给出答题是否正确。

其次,还要实现答完题后题目自动跳转。

二、设计简要描述

按照AndroidMVC的思想

深入理解MVC概念

  MVC即Model-View-Controller。

M:

逻辑模型,V:

视图模型,C:

控制器。

  MVC模式下,系统框架的类库被划分为3种:

模型〔Model、视图〔View、控制器〔Controller。

模型对象负责建立数据结构和相应的行为操作处理。

视图对象负责在屏幕上渲染出相应的图形信息展示给用户看。

控制器对象负责截获用户的按键和屏幕触摸等事件,协调Model对象和View对象。

  用户与视图交互,视图接收并反馈用户的动作;视图把用户的请求传给相应的控制器,由控制器决定调用哪个模型,然后由模型调用相应的业务逻辑对用户请求进行加工处理,如果需要返回数据,模型会把相应的数据返回给控制器,由控制器调用相应的视图,最终由视图格式化和渲染返回的数据,对于返回的数据完全可以增加用户体验效果展现给用户。

一个模型可以有多个视图,一个视图可以有多个控制器,一个控制器也可以有多个模型。

(1)、模型〔Model

  Model是一个应用系统的核心部分,代表了该系统实际要实现的所有功能处理。

比如:

在视频播放器中,模型代表一个视频数据库及播放视频的程序函数代码;在拍照应用中,模型代表一个照片数据库,及看图片时的程序函数代码。

在一个应用中,Model代表一个号码簿,以及拨打和发送短信的程序函数代码。

Model在values目录下通过xml文件格式生成,也可以通过硬编码的方式直接Java代码生成。

View和Model是通过桥梁Adapter来连接起来。

(2)、视图〔View

  View是软件应用传送给用户的一个反馈结果。

它代表软件应用中的图形展示、声音播放、触觉反馈等职责。

视图的根节点是应用程序的自身窗口。

比如,视频播放器中可能包含当前播放的画面,这个画面就是一个视图。

另一个视图组件可能是该视频的文字标题。

再一个就是一些播放按键,比如:

Stop、Start、Pause等按钮。

  View在layout目录下通过xml文件格式生成,用findViewById<>获取;也可以通过硬编码的方式直接Java代码生成。

(3)、控制器〔Controller

Controller在软件应用负责对外部事件的响应,包括:

键盘敲击、屏幕触摸、呼入等。

Controller实现了一个事件队列,每一个外部事件均在事件队列中被唯一标识。

框架依次将事件从队列中移出并派发出去。

根据以上分析,在该项目中首先在视图层也就是xml文件中设计如下:

android=":

//schemas.android/apk/res/android"

xmlns:

tools=":

//schemas.android/tools"

android:

layout_width="match_parent"

android:

layout_height="match_parent"

android:

gravity="center"

android:

orientation="vertical"

android:

paddingBottom="dimen/activity_vertical_margin"

android:

paddingLeft="dimen/activity_horizontal_margin"

android:

paddingRight="dimen/activity_horizontal_margin"

android:

paddingTop="dimen/activity_vertical_margin"

tools:

context=".MainActivity">

android:

layout_width="wrap_content"

android:

layout_height="wrap_content">

android:

id="+id/tv1"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

gravity="center"

android:

text="ThePacificOceanislargerthantheAtlanticOcean."/>

 

android:

id="+id/tv2"

android:

layout_width="20dp"

android:

layout_height="30dp"/>

android:

layout_width="wrap_content"

android:

layout_height="wrap_content">

 

android:

id="+id/bu1"

android:

layout_width="90dp"

android:

layout_height="30dp"

android:

background="#3d9aaf"

android:

text="true"/>

android:

id="+id/tv2"

android:

layout_width="20dp"

android:

layout_height="30dp"/>

android:

id="+id/bu2"

android:

layout_width="90dp"

android:

layout_height="30dp"

android:

background="#3d9aaf"

android:

text="False"/>

首先实现一个简单的界面,主要用到的是线性布局〔LinearLayout,只要设置几个属性就可以,以下两行分别是设置为居中、垂直。

〔注意gravity与layout_gravity的区别,gravity指的是该view里面的内容与该view的相对关系,而layout_view指的是该view与父view的相对位置关系

android:

gravity="center"

android:

orientation="horizontal"

添加一个TextView,两个Button,首先都要设定他们的大小,如下〔wrap_content指自适应大小,根据内容来自动调整大小

android:

layout_width="wrap_content"android:

layout_height="wrap_content"

然后就是他们的显示的内容,当然TextView也要显示内容即题目,但是,我们考虑到后面要自动的改变题目的内容,因此暂时不设置内容,先让其空着。

而true和false两个按钮则要先设置其text。

我们为了提高代码的复用,减少硬编码,我们将使用字符串的引用来设置两个按钮的text。

首先要在strings.xml文件中〔res->values->strings.xml添加两个字符串。

true

false

然后在activity_main.xml文件中设置两个按钮的text

android:

text="string/true_button"

控制层设计如下:

packagecom.example.testcase;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.View;

stener;

importandroid.widget.Button;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivityimplementsOnClickListener{

privateButtonbut1,but2,but;

privateTextViewtv;

privateintid;

 

Override

protectedvoidonCreate{

super.onCreate;

setContentView;

}

Override

publicbooleanonCreateOptionsMenu{

//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.

getMenuInflater<>.inflate;

but1=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1