您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 移动应用开发实验报告
中南大学移动应用开发实验报告目录内容简介··································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,当点击这两个按钮中的一个时主界面上要给出答题是否正确。其次,还要实现答完题后题目自动跳转。ThePacificOceanislargerthantheAtlanticOcean.二、设计简要描述按照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=:tools=:layout_width=match_parentandroid:layout_height=match_parentandroid:gravity=centerandroid:orientation=verticalandroid:paddingBottom=@dimen/activity_vertical_marginandroid:paddingLeft=@dimen/activity_horizontal_marginandroid:paddingRight=@dimen/activity_horizontal_marginandroid:paddingTop=@dimen/activity_vertical_margintools:context=.MainActivityLinearLayoutandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentTextViewandroid:id=@+id/tv1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:gravity=centerandroid:text=ThePacificOceanislargerthantheAtlanticOcean.//LinearLayoutTextViewandroid:id=@+id/tv2android:layout_width=20dpandroid:layout_height=30dp/LinearLayoutandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentButtonandroid:id=@+id/bu1android:layout_width=90dpandroid:layout_height=30dpandroid:background=#3d9aafandroid:text=true/TextViewandroid:id=@+id/tv2android:layout_width=20dpandroid:layout_height=30dp/Buttonandroid:id=@+id/bu2android:layout_width=90dpandroid:layout_height=30dpandroid:background=#3d9aafandroid:text=False//LinearLayout/LinearLayout首先实现一个简单的界面,主要用到的是线性布局(LinearLayout),只要设置几个属性就可以,以下两行分别是设置为居中、垂直。(注意gravity与layout_gravity的区别,gravity指的是该view里面的内容与该view的相对关系,而layout_view指的是该view与父view的相对位置关系)android:gravity=centerandroid:orientation=horizontal添加一个TextView,两个Button,首先都要设定他们的大小,如下(wrap_content指自适应大小,根据内容来自动调整大小)android:layout_width=wrap_contentandroid:layout_height=wrap_content然后就是他们的显示的内容,当然TextView也要显示内容即题目,但是,我们考虑到后面要自动的改变题目的内容,因此暂时不设置内容,先让其空着。而true和false两个按钮则要先设置其text。我们为了提高代码的复用,减少硬编码,我们将使用字符串的引用来设置两个按钮的text。首先要在strings.xml文件中(res-values-strings.xml)添加两个字符串。stringname=true_buttontrue/stringstringname=false_buttonfalse/string然后在activity_main.xml文件中设置两个按钮的textandroid:text=@string/true_button控制层设计如下:pack
本文标题:移动应用开发实验报告
链接地址:https://www.777doc.com/doc-2398623 .html