移动应用开发实验报告Word格式文档下载.docx
- 文档编号:6834875
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:60
- 大小:1.54MB
移动应用开发实验报告Word格式文档下载.docx
《移动应用开发实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《移动应用开发实验报告Word格式文档下载.docx(60页珍藏版)》请在冰点文库上搜索。
移动应用开发课程含有比较强实践性。
上机试验是一个关键教学步骤。
通常情况下学生能够重视试验步骤,对于编写程序上机练习含有一定主动性。
不过轻易忽略试验总结,忽略试验汇报撰写。
对于一名大学生必需严格训练分析总结能力、书面表示能力。
需要逐步培养书写科学试验汇报以及科技论文能力。
拿到一个题目,通常不要急于编程。
正确方法是:
首先了解问题,明确给定条件和要求处理问题,然后根据自顶向下,逐步求精,分而治之策略,根据面向对象程序设计思绪,逐一地处理子问题。
一、试验汇报基础要求:
通常性、较小规模上机试验题,必需遵照下列要求。
养成良好习惯。
姓名班级学号日期题目
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文件中设计以下:
<
LinearLayoutxmlns:
android="
xmlns:
tools="
android:
layout_width="
match_parent"
layout_height="
gravity="
center"
orientation="
vertical"
paddingBottom="
@dimen/activity_vertical_margin"
paddingLeft="
@dimen/activity_horizontal_margin"
paddingRight="
paddingTop="
tools:
context="
.MainActivity"
>
<
LinearLayout
wrap_content"
TextView
id="
@+id/tv1"
text="
ThePacificOceanislargerthantheAtlanticOcean."
/>
/LinearLayout>
TextView
id="
@+id/tv2"
20dp"
layout_height="
30dp"
/>
Button
@+id/bu1"
90dp"
background="
#3d9aaf"
true"
@+id/bu2"
False"
首先实现一个简单界面,关键用到是线性布局(LinearLayout),只要设置多个属性就能够,以下两行分别是设置为居中、垂直。
(注意gravity与layout_gravity区分,gravity指是该view里面内容与该view相对关系,而layout_view指是该view与父view相对位置关系)
android:
horizontal"
添加一个TextView,两个Button,首先都要设定她们大小,以下(wrap_content指自适应大小,依据内容来自动调整大小)
然后就是她们显示内容,当然TextView也要显示内容即题目,不过,我们考虑到后面要自动改变题目内容,所以临时不设置内容,先让其空着。
而true和false两个按钮则要先设置其text。
我们为了提升代码复用,降低硬编码,我们将使用字符串引用来设置两个按钮text。
首先要在strings.xml文件中(res->
values->
strings.xml)添加两个字符串。
stringname="
true_button"
>
true<
/string>
false_button"
false<
然后在activity_main.xml文件中设置两个按钮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);
}
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;
publicvoidonClick(Viewv){
id=v.getId();
if(id==but1.getId()){
Toast.makeText(this,"
恭喜你,答对了!
"
0).show();
}else{
Sorry,答错了!
"
}
}
publicclassTrueFalse{
privateintmQestion;
//保留地理知识字符串id
privatebooleanmTrueQuestion;
publicTrueFalse(intmQestion,booleanmTrueQuestion){
super();
this.mQestion=mQestion;
this.mTrueQuestion=mTrueQuestion;
publicintgetmQestion(){
returnmQestion;
publicvoidsetmQestion(intmQestion){
publicbooleanismTrueQuestion(){
returnmTrueQuestion;
publicvoidsetmTrueQuestion(booleanmTrueQuestion){
三、调试结果
试验二GeoQuiz应用实现进阶
1.掌握Android中MVC设计模式
2.掌握Activity生命周期基础概念
3.掌握Android应用调试
3.掌握Android应用中多个组件切换基础方法
thebignerdranchguide》第2、3、4、5章给出Android应用GeoQuiz进阶具体代码和讲解,完善GeoQuiz应用,使得
1)GeoQuiz能从多个应用之间切换,以下图所表示:
2)创建GeoQuiz应用横向布局,以下图所表示,并实现跨周期数据保留(手机旋转后,应用目前问题状态仍能保持)
3)为GeoQuiz应用增加第二个用户界面(以及对应activity),新增activity用来给用户提供查看目前问题答案,以下图所表示:
一、问题描述
在此次试验中关键实现以下多个功效:
使用数组实现问题类控制,轻易做到题目跳转
翻转手机屏幕后任然能保持在同一个问题中
实现前翻后翻功效
实现作弊功效
首先,在将题目抽象为一个类时候,首先要分析这个类属性。
在TrueFalse类中,关键有一个整型变量mQestion用于地理知识字符id,一个布尔型变量mTrueQuestion用于显示该问题是否正确。
TrueFalse类具体实现以下
在activity类中,mQuestionBank数组中存放了题目,在TextView设置文本内容时,只要依据TrueFalse对象mQuestion即问题id来设置即可
MainActivity类具体实现以下:
packagecom.example.geopoe;
importandroid.content.Intent;
importandroid.widget.ImageButton;
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),};
protectedvoidonActivityResult(intrequestCode,intr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 应用 开发 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)