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

上传人:b****4 文档编号:4673292 上传时间:2023-05-07 格式:DOCX 页数:60 大小:1.54MB
下载 相关 举报
移动应用开发实验报告.docx_第1页
第1页 / 共60页
移动应用开发实验报告.docx_第2页
第2页 / 共60页
移动应用开发实验报告.docx_第3页
第3页 / 共60页
移动应用开发实验报告.docx_第4页
第4页 / 共60页
移动应用开发实验报告.docx_第5页
第5页 / 共60页
移动应用开发实验报告.docx_第6页
第6页 / 共60页
移动应用开发实验报告.docx_第7页
第7页 / 共60页
移动应用开发实验报告.docx_第8页
第8页 / 共60页
移动应用开发实验报告.docx_第9页
第9页 / 共60页
移动应用开发实验报告.docx_第10页
第10页 / 共60页
移动应用开发实验报告.docx_第11页
第11页 / 共60页
移动应用开发实验报告.docx_第12页
第12页 / 共60页
移动应用开发实验报告.docx_第13页
第13页 / 共60页
移动应用开发实验报告.docx_第14页
第14页 / 共60页
移动应用开发实验报告.docx_第15页
第15页 / 共60页
移动应用开发实验报告.docx_第16页
第16页 / 共60页
移动应用开发实验报告.docx_第17页
第17页 / 共60页
移动应用开发实验报告.docx_第18页
第18页 / 共60页
移动应用开发实验报告.docx_第19页
第19页 / 共60页
移动应用开发实验报告.docx_第20页
第20页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

移动应用开发实验报告.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可即时反馈答案正确是否。

以下图所表示:

 

一、问题描述

这是一个简易地理知识问答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="

xmlns:

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;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivityimplementsOnClickListener{

privateButtonbut1,but2,but;

privateTextViewtv;

privateintid;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.

getMenuInflater().inflate(R.menu.main,menu);

but1=(Button)this.findViewById(R.id.bu1);

but2=(Button)this.findViewById(R.id.bu2);

tv=(TextView)this.findViewById(R.id.tv1);

but1.setOnClickListener(this);

but2.setOnClickListener(this);

returntrue;

}

@Override

publicvoidonClick(Viewv){

id=v.getId();

if(id==but1.getId()){

Toast.makeText(this,"恭喜你,答对了!

",0).show();

}else{

Toast.makeText(this,"Sorry,答错了!

",0).show();

}

}

}

packagecom.example.testcase;

publicclassTrueFalse{

privateintmQestion;//保留地理知识字符串id

privatebooleanmTrueQuestion;

publicTrueFalse(intmQestion,booleanmTrueQuestion){

super();

this.mQestion=mQestion;

this.mTrueQuestion=mTrueQuestion;

}

publicintgetmQestion(){

returnmQestion;

}

publicvoidsetmQestion(intmQestion){

this.mQestion=mQestion;

}

publicbooleanismTrueQuestion(){

returnmTrueQuestion;

}

publicvoidsetmTrueQuestion(booleanmTrueQuestion){

this.mTrueQuestion=mTrueQuestion;

}

}

 

三、调试结果

 

试验二GeoQuiz应用实现进阶

一、试验目

1.掌握Android中MVC设计模式

2.掌握Activity生命周期基础概念

3.掌握Android应用调试

3.掌握Android应用中多个组件切换基础方法

二、试验开发环境和工具

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

三、试验内容

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

thebignerdranchguide》第2、3、4、5章给出Android应用GeoQuiz进阶具体代码和讲解,完善GeoQuiz应用,使得

1)GeoQuiz能从多个应用之间切换,以下图所表示:

2)创建GeoQuiz应用横向布局,以下图所表示,并实现跨周期数据保留(手机旋转后,应用目前问题状态仍能保持)

3)为GeoQuiz应用增加第二个用户界面(以及对应activity),新增activity用来给用户提供查看目前问题答案,以下图所表示:

 

一、问题描述

在此次试验中关键实现以下多个功效:

·使用数组实现问题类控制,轻易做到题目跳转

·翻转手机屏幕后任然能保持在同一个问题中

·实现前翻后翻功效

·实现作弊功效

首先,在将题目抽象为一个类时候,首先要分析这个类属性。

在TrueFalse类中,关键有一个整型变量mQestion用于地理知识字符id,一个布尔型变量mTrueQuestion用于显示该问题是否正确。

TrueFalse类具体实现以下

packagecom.example.testcase;

publicclassTrueFalse{

privateintmQestion;//保留地理知识字符串id

privatebooleanmTrueQuestion;

publicTrueFalse(intmQestion,booleanmTrueQuestion){

super();

this.mQestion=mQestion;

this.mTrueQuestion=mTrueQuestion;

}

publicintgetmQestion(){

returnmQestion;

}

publicvoidsetmQestion(intmQestion){

this.mQestion=mQestion;

}

publicbooleanismTrueQuestion(){

returnmTrueQuestion;

}

publicvoidsetmTrueQuestion(booleanmTrueQuestion){

this.mTrueQuestion=mTrueQuestion;

}

}

在activity类中,mQuestionBank数组中存放了题目,在TextView设置文本内容时,只要依据TrueFalse对象mQuestion即问题id来设置即可

MainActivity类具体实现以下:

packagecom.example.geopoe;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.ImageButton;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

privateTextViewmQuestionText;

privateButtonmTrueButton,mFalseButton,mCheatButton;//

privateImageButtonmPrevImageButton,mNextImageButton;

privateintmCurrentIndex;//用于统计目前文本id

privatebooleanmCheat;//表示是否作弊

privatestaticfinalStringKEY_INDEX="index";

publicstaticfinalStringSHOW_ANSWER="answer";

//mQuestionBank数组中存放了题目,在TextView设置文本内容时,只要依据

//TrueFalse对象mQuestion即问题id来设置即可

privateTrueFalse[]mQuestionBank=newTrueFalse[]{

newTrueFalse(R.string.question_an,false),

newTrueFalse(R.string.question_chi,false),

newTrueFalse(R.string.question_su,false),

newTrueFalse(R.string.question_tai,true),

newTrueFalse(R.string.question_zhu,true),

newTrueFalse(R.string.quetion_ya,true),};

@Override

protectedvoidonActivityResult(intrequestCode,intr

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2