当前位置:文档之家› 软件设计安卓开发报告

软件设计安卓开发报告

通信与信息工程学院20 15 /20 16 学年第 2 学期软件设计实验报告模块名称Android开发专业通信工程学生班级学生学号学生姓名指导教师报告内容一.实验目的本软件设计是在理论课程的基础上,重点培养学生的动手编程能力,通过搭建开发环境、能够根据需求分析,系统设计及详细设计,最终编码测试运行,了解软件项目的开发过程,熟悉开发工具、熟练掌握使用一门语言。

根据大纲提供的题目和要求,实现其功能。

二.实验内容下载JDK软件包到本地;设置环境变量;提示符下运行java程序;安装MyEclipse开发环境,并在此环境下安装Android包,安装Tomcat应用服务器。

根据一个课程相关的app应用,从需求出发,分析设计内容及功能,能够实现围绕班级的分享、发帖、回复、关注等内容,建立模型并开发,经过测试、调整,实现系统编程,以理解掌握Android开发技术。

根据一个企业移动安全巡检的应用,从需求出发,分析实际系统的数据模型及编程模式,进行企业安全巡检系统设计并开发,完成的主要功能经过测试、调整,实现相关编程,以理解掌握如何应用Android移动开发技术。

三.实验过程3.1安装过程1.在官网上下载jdk1.7,安装后,配置环境变量,分别设置classpath和path环境变量,具体设置见下图:系统属性---高级---环境变量,新建Classpath,设置它的jdk路径,classpath D:\android_e\jdk1.7\lib path 后加一个; D:\android_e\jdk1.7\bin即可,这时候我们在程序中输入cmd,调出dos窗口,输入java,看到一长串的东西,说明安装成功,这时我们输入java -version,可以看到dos窗口上显示所安装的jdk版本。

安装tomcat服务器1、首先是Tomcat的获取和安装。

上Apache的官方网站下载,开源免费,下载很快。

这是两种不同的下载,一个是普通安装版本,一个是解压安装版本。

使用起来是一样的,只是在普通安装版本中有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册。

2、Tomcat的运行环境搭建。

(解压版)安装(就是解压)完成后如下:Tomcat的启动是一个bat文件(Windows下),在bin目录下。

双击即可。

我一开始安装了好多次,都没有成功,后来请教了别人,调出dos窗口,在里面输入安装的tomcat的bin路径,它提示说没有找到jdk,后来上网查了才知道:如果启动不成功,一般的情况是控制台出来一下立即消失,说明Tomcat没有找到Java的运行时环境。

简单理解,就是Tomcat找不到JDK,没办法运行。

御史我“告诉”它JDK的安装路径,即在环境变量里新建JAVA_HOME(不区分大小写),指向JDK安装目录。

如下:这样,Tomcat就配置好了,启动就OK。

启动Tomcat,在浏览器地址栏输入localhost:8080/如果看到关于Tomcat的介绍,说明配置成功,当时还是小小地激动了一下。

接下来就是将tomcat配置进eclipse java ee了,【Windows】->【Preferences】->【server】-editFinish ok 就行在下方server处出现我们要安装的那个tomcat,安装成功3.2界面布局这两周我渐渐熟悉了常用的UI组件,UI布局,UI元素。

能够简单的编写界面的布局(XML)文件。

从新建工程到一头雾水,建了几个工程才慢慢了解到到底在哪几个目录下写xml文件还是写java文件,文件中提到的string图片,只要是系统软件里没有的都要手动添加进去。

根据下图我们可以看到:MainBody.java,Main.xml,Strings.xml,AndroidManifest.xml这四个文件。

MainBody.java这是我们创建的java文件,他主要是实现项目的功能。

Main.xml 实现窗体界面的布局和显示。

Strings.xml这是Main.xml程序中的变量登记表。

AndroidManifest.xml这是窗体页面登记表。

LinearLayout表示一行的布局。

这整个窗体布局器中只有一行,可见这个界面就只有一行,即整块手机屏幕区域。

TextView表示一个组件,用于显示一个文本区域,并且可以看到,这个文本是来看hello这个变量。

android:layout_width="fill_parent" 表示设置宽度,为充满整个窗体。

android:layout_height="wrap_content" 表示设置高度,为默认尺寸。

对简单的按钮的会编一点了,比如androidid="+id/btn_save"中androidid 设置这个空间的id;+id就是在我的R.java文件新加一个id;/btn_save就是新加的id。

用Android:layout_marginLeft,意思是距离左边框的距离;用android:layout_marginRight,意思是距离右边框的距离。

同理,android:layout_marginTop:距离上边框android:layout_marginBottom:距离下边框。

android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐。

这里属性值只能为true或false,默认false。

android:layout_marginLeft="10dip" 使当前控件左边空出相应的空间。

android:layout_toLeftOf="id/ok" 使当前控件置于id为ok的控件的左边。

android:layout_alignTop="id/ok" ,使当前控件与id控件的上端对齐。

3.3功能的实现3.3.1添加功能基本方法界面出来了,但你会发现窗体上的组件没有任何作用,所以接下来我们就需要为窗体上的组件添加上相应的功能。

登陆界面的功能是当我们输入正确的帐户和密码之后,自动将页面跳转到新的页面中去。

即接下来要实现的就是从输入框中获取信息,按登陆按钮时自动核对信息。

这时我们需要在MainBody.java文件中来实现这些功能。

onCreate()就是我们的主程序入口,相当于Main()函数,在程序中第一个执行的主线程。

也许我们会产生疑问,我们刚刚编写的窗体界面是如何与这个功能程序关联的呢?细心的人可以看到setContentView(yout.main);这句代码,正是这个代码确定了本程序的具体布局也是显示窗体的功能。

下面让我们来添加窗体的按钮的监听器,监听屏幕上对象。

当按下按钮时产生相应的功能。

我们使用命名内部类的方式创建Lister监听对象,OnClickListener是一个接口,创建对象后还需要实现它里面的方法体,该接口中只有一个方法体onClick(View v);接下来实现监听器内的方法麻烦就来了,如何知道窗体上点中的是哪个按钮呢?如何获得在Main.xml布局管理器中创建的组件呢?这时我们可以回到第二步“显示窗体”中或查看我们的Main.xml文件中,我们会发现,在我们创建组件时,都加上了android:id="+id/person_name"这样一段代码,只是斜杠后面的名称都不一样,这就是我们给每个组件设置的ID号,这个ID号会在R.java 文件中自动注册,并且全部是静态变量,既然是静态变量,那我们就可以跨类使用R.java文件中注册的ID号来对Main.xml中的对象操作了,如果我这样说不能明白,那只要知道我们可以通过使用对象的ID号来对组件操作就行了。

那我们从View V这个窗体对象中来获取被操作的对象ID,通过v.getId()方法来获得一个整形数值;用switch()语句来判断相应的操作,对应的值就是R.id.名称。

通过这种方式我们就可以确定在窗体上点击了什么按钮,当然还需要对按钮对象加上这个监听方法就OK了。

接着我们完善一下当按下“登陆”按钮时,触发的下一事件,即判断帐户和密码输入框中是否有内容以及内容是否正确。

我们知道了如何获取按钮的操作方法了,那么文本输入框的操作方法获取方式是否以前面一样呢?如果我们尝试后会知道,我们虽然可以通过ID获取文本输入框这个对象,却无法通过这种方法获取文本输入框中的内容。

那么这里我们就需要把这个ID的对象实例化了,根据它的ID来实例化这个对象,其实每个组件都可以被实例化,这里我们也看到了,需要通过实例化后的组件对象才能添加刚才我们创建的监听方法,这里需要注意,帐户和密码输入框两个组件都定义成了全局变量,这样方便在监听方法中直接引用。

3.3.2设计流程3.3.3具体功能实现1.关于发帖最简单的方法,发帖后将生成的数据存到数据库,然后刷新论坛列表页。

2.关于点赞功能数据库字段里面有个“赞”的字段,当用户点击该图片,onclick事件内进行数据库操作:每次点击就添加+1,后Update该对应的ID的“赞”字段。

建立服务器,使用php asp nodejs等语言,接受app 传来的请求, 然后访问数据库。

不过时间太短,我只安装了服务器,并不会用,只是建了一个数据库。

3.Android中利用App实现消息推送机制的实现步骤/方法消息推送机制服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭。

独立进程,无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。

我们需要一个独立进程的后台服务。

在androidmanifest.xml中注册service时,有一个android:process属性,如果这个属性以"."开头,则为此服务开启一个全局的独立进程,如果以":"开头则为此服务开启一个为此应用私有的独立进程。

通知用户和点击查看,停止服务,view sourceprint?1 stopservice(newintent(myactivity.this,messageservice.class));2 setmessagepush(false);//设置配置文件或数据库中flag为false运行一下,停止服务。

退出线程,实践证明,thread的stop()方法并不可靠。

但是我们有其他的办法。

退出线程有两种方法。

第一种方法,强制退出。

view sourceprint?1 //杀死该线程所在的进程,自然就退出了2 system.exit(0);第二种方法,设置isrunning为false。

相关主题