移动应用开发实验报告.docx
- 文档编号:9161923
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:40
- 大小:35.53KB
移动应用开发实验报告.docx
《移动应用开发实验报告.docx》由会员分享,可在线阅读,更多相关《移动应用开发实验报告.docx(40页珍藏版)》请在冰豆网上搜索。
移动应用开发实验报告
中南大学
移动应用开发实验报告
内容简介··································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"> 首先实现一个简单的界面,主要用到的是线性布局〔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添加两个字符串。 然后在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= but2= tv= but1.setOnClickListener but2.setOnClickListener returntrue; } Override publicvoidonClick id=v.getId<>; if Toast.makeText ",0>.show<>; }else{ Toast.makeText ",0>.show<>; } } } packagecom.example.testcase; publicclassTrueFalse{ privateintmQestion;//保存地理知识字符串的id privatebooleanmTrueQuestion; publicTrueFalse super<>; this.mQestion=mQestion; this.mTrueQuestion=mTrueQuestion; } publicintgetmQestion<>{ returnmQestion; } publicvoidsetmQestion this.mQestion=mQestion; } publicbooleanismTrueQuestion<>{ returnmTrueQuestion; } publicvoidsetmTrueQuestion 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 super<>; this.mQestion=mQestion; this.mTrueQuestion=mTrueQuestion; } publicintgetmQestion<>{ returnmQestion; } publicvoidsetmQestion this.mQestion=mQestion; } publicbooleanismTrueQuestion<>{ returnmTrueQuestion; } publicvoidsetmTrueQuestion this.mTrueQuestion=mTrueQuestion; } } 在activity类中,mQuestionBank数组中存放了题目,在TextView设置文本内容时,只要根据TrueFalse对象的mQuestion即问题的id来设置即可 MainActivity类的具体实现如下: packagecom.example.geopoe; importandroid.app.Activity; importandroid.content.Intent; undle; 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[]{ estion_an,false>, newTrueFalse newTrueFalse newTrueFalse newTrueFalse newTrueFalse Override protectedvoidonActivityResult if{//说明没有作弊 return; }else{ //表明有从其他Activity传过来的intent,要获取是否作弊 mCheat=data.getBooleanExtra } } //更新问题 publicvoidupdateQuestion<>{ mCurrentIndex= mCheat=false; mQuestionText.setText
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 应用 开发 实验 报告