软件设计安卓开发报告.docx

上传人:b****2 文档编号:17042161 上传时间:2023-07-21 格式:DOCX 页数:50 大小:361.31KB
下载 相关 举报
软件设计安卓开发报告.docx_第1页
第1页 / 共50页
软件设计安卓开发报告.docx_第2页
第2页 / 共50页
软件设计安卓开发报告.docx_第3页
第3页 / 共50页
软件设计安卓开发报告.docx_第4页
第4页 / 共50页
软件设计安卓开发报告.docx_第5页
第5页 / 共50页
软件设计安卓开发报告.docx_第6页
第6页 / 共50页
软件设计安卓开发报告.docx_第7页
第7页 / 共50页
软件设计安卓开发报告.docx_第8页
第8页 / 共50页
软件设计安卓开发报告.docx_第9页
第9页 / 共50页
软件设计安卓开发报告.docx_第10页
第10页 / 共50页
软件设计安卓开发报告.docx_第11页
第11页 / 共50页
软件设计安卓开发报告.docx_第12页
第12页 / 共50页
软件设计安卓开发报告.docx_第13页
第13页 / 共50页
软件设计安卓开发报告.docx_第14页
第14页 / 共50页
软件设计安卓开发报告.docx_第15页
第15页 / 共50页
软件设计安卓开发报告.docx_第16页
第16页 / 共50页
软件设计安卓开发报告.docx_第17页
第17页 / 共50页
软件设计安卓开发报告.docx_第18页
第18页 / 共50页
软件设计安卓开发报告.docx_第19页
第19页 / 共50页
软件设计安卓开发报告.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件设计安卓开发报告.docx

《软件设计安卓开发报告.docx》由会员分享,可在线阅读,更多相关《软件设计安卓开发报告.docx(50页珍藏版)》请在冰点文库上搜索。

软件设计安卓开发报告.docx

软件设计安卓开发报告

 

通信与信息工程学院

 

2015/2016学年第2学期

 

软件设计实验报告

 

模块名称Android开发

 

专业通信工程

 

学生班级

 

学生学号

 

学生姓名

 

指导教师

 

设计题目

 

任务要求

 

实验设备

 

及软件

 

同组人员

 

学号及姓

 

 

1.安卓开发班级圈app

2.安卓开发企业移动安全巡检系统

 

1.能配置Android的应用开发环境,并在此环境下开发。

2.使用Android移动开发技术实现围绕班级的应用。

3.设计企业移动安全巡检系统的基本功能并用Android移动开发技术实现;要求有图形界面及事件处理;设计数据模型并在Oracle中建立表(或使用其他数据库)。

 

1.硬件:

兼容机一台、Android开发实验箱

2.软件:

JDK1.7;Eclipse,Tomcat7.0;Oracle9i数据库

 

一人一组

 

[1]王诚等.Java编程实用技术.北京:

人民邮电出版社,2012

参考文献

[2]王诚等.Android移动互联应用开发教学实验箱实验指导书,

2014

 

报告内容

一.实验目的

本软件设计是在理论课程的基础上,重点培养学生的动手编程能力,通过搭建开发环境、能够根据需求分析,系统设计及详细设计,最终编码测试运行,了

解软件项目的开发过程,熟悉开发工具、熟练掌握使用一门语言。

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

 

二.实验内容

下载JDK软件包到本地;设置环境变量;提示符下运行java程序;安装

MyEclipse开发环境,并在此环境下安装Android包,安装Tomcat应用服务器。

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

整,实现系统编程,以理解掌握Android开发技术。

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

 

三.实验过程

3.1安装过程

1.在官网上下载

jdk1.7,安装后,配置环境变量,分别设置

classpath和path环境

变量,具体设置见下图:

 

系统属性---高级---环境变量,新建Classpath,设置它的jdk路径,classpath

D:

\android_e\jdk1.7\libpath后加一个;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,在浏览器地址栏输入

http:

//localhost:

8080/如果看到关于Tomcat的介绍,说明配置成功,当时还

是小小地激动了一下。

 

接下来就是将tomcat配置进eclipsejavaee了,

 

【Windows】->【Preferences】->【server】-edit

 

Finishok就行

 

在下方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(R.layout.main);这句代码,正是这个代码确定了本程序的具体布局也是显示窗体的功能。

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

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

我们使用命名内部类的方式创建Lister监听对象,OnClickListener是一个接口,创建对象后还需要实现它里面的方法体,该接口中只有一个方法体onClick(Viewv);接下来实现监听器内的方法麻烦就来了,如何知道窗体上点中的是哪个按钮呢?

如何获得在Main.xml布局管理器中创建的组件呢?

这时我们可以回到第二步“显示窗体”中或查看我们的Main.xml文件中,我们会发现,在我们创建组件时,都加上了android:

id="@+id/person_name"这样一段代码,只是斜杠后面的名称都不一样,这就是我们给每个组件设置的ID号,这个ID号会在R.java文件中自动注册,并且全部是静态变量,既然是静态变量,那我们就可以跨

类使用R.java文件中注册的ID号来对Main.xml中的对象操作了,如果我这

样说不能明白,那只要知道我们可以通过使用对象的

ID号来对组件操作就

行了。

那我们从ViewV这个窗体对象中来获取被操作的对象

ID,通过v.getId()

方法来获得一个整形数值;用

switch()语句来判断相应的操作,对应的值就

是R.id.名称。

通过这种方式我们就可以确定在窗体上点击了什么按钮,

当然

还需要对按钮对象加上这个监听方法就OK了。

接着我们完善一下当按下“登

陆”按钮时,触发的下一事件,即判断帐户和密码输入框中是否有内容以及

内容是否正确。

我们知道了如何获取按钮的操作方法了,那么文本输入框的

操作方法获取方式是否以前面一样呢?

如果我们尝试后会知道,

我们虽然可

以通过ID获取文本输入框这个对象,却无法通过这种方法获取文本输入框

中的内容。

那么这里我们就需要把这个ID的对象实例化了,根据它的ID来实例化这个对象,其实每个组件都可以被实例化,这里我们也看到了,需要

通过实例化后的组件对象才能添加刚才我们创建的监听方法,这里需要注意,帐户和密码输入框两个组件都定义成了全局变量,这样方便在监听方法中直接引用。

 

3.3.2设计流程

 

3.3.3具体功能实现

1.关于发帖

最简单的方法,发帖后将生成的数据存到数据库,然后刷新论坛列表页。

 

2.关于点赞功能

数据库字段里面有个“赞”的字段,当用户点击该图片,onclick事件内进行数

据库操作:

每次点击就添加+1,后Update该对应的ID的“赞”字段。

建立服务器,使用phpaspnodejs等语言,接受app传来的请求,然

后访问数据库。

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

据库。

 

3.Android中利用App实现消息推送机制的实现

步骤/方法

消息推送机制

服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭。

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

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

务。

在androidmanifest.xml中注册service时,有一个android:

process属性,

如果这个属性以"."开头,则为此服务开启一个全局的独立进程,如果以":

"开头

则为此服务开启一个为此应用私有的独立进程。

通知用户和点击查看,停止服务,

viewsourceprint?

1stopservice(new

intent(myactivity.this,messageservice.class));

2setmessagepush(false);//设置配置文件或数据库中flag为false

运行一下,停止服务。

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

但是我们有其他的办法。

退出线程有两种方法。

第一种方法,强制退出。

viewsourceprint?

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

 

4.关于分享的核心代码

publicvoidonClickShare(Viewview){

 

Intentintent=newIntent(Intent.ACTION_SEND);intent.setType("image/*");

intent.putExtra(Intent.EXTRA_SUBJECT,"分享");

intent.putExtra(Intent.EXTRA_TEXT,"终于可以

了!

!

!

");

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent,getTitle(

)));

 

}

 

5.关于评论功能

 

获取到评论人的ID然后提交你的回复内容,你的用户ID,当前评论的ID然后点击回复发送给服务器他自己处理去吧。

点击评论的时候,前台就记录当前回复是针对哪条评论id,提交的时候一并存起来。

 

3.3数据库的建立

 

1.数据库我下载的是

 

MySQL,这个相对比较简单,对于我这个新手来说,数据库用这个

软件是比较轻松的。

下面来创建一个数据:

mysql>CREATEDATABASEtest;//创建一个数据库

 

mysql>usetest;//指定test为当前要操作的数据库

 

mysql>CREATETABLEuser(nameVARCHAR(20),passwordVARCHAR(20));//创建一个表user,设置两个字段。

 

mysql>INSERTINTOuserVALUES('huzhiheng','123456');//插入一条数据到表中

 

2.打开Eclipse,创建一个项目(my),

 

操作:

右键点击my--->buildPath--->addexternalArchiver...选择jdbc驱

动,点击确定。

 

我的项目列表:

 

3。

驱动已经导入,下面我们来写一个程序验证一下

 

importjava.sql.*;

publicclassMysqlJdbc{

publicstaticvoidmain(Stringargs[]){

try{

Class.forName("com.mysql.jdbc.Driver");//加载MYSQLJDBC驱动程序

//Class.forName("org.gjt.mm.mysql.Driver");

System.out.println("SuccessloadingMysqlDriver!

");

}

catch(Exceptione){

System.out.print("ErrorloadingMysqlDriver!

");

e.printStackTrace();

}

try{

Connectionconnect=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/test","root","198876");

//连接URL为jdbc:

mysql//服务器地址/数据库名,后面的2个参数分别

是登陆用户名和密码

 

System.out.println("SuccessconnectMysqlserver!

");

Statementstmt=connect.createStatement();

ResultSetrs=stmt.executeQuery("select*fromuser");

//user为你表的名

while(rs.next()){

System.out.println(rs.getString("name"));

}

}

catch(Exceptione){

System.out.print("getdataerror!

");

e.printStackTrace();

}

}

}

 

点击运行程序:

 

SuccessloadingMysqlDriver!

 

SuccessconnectMysqlserver!

 

huzhiheng

 

出现上面结果,说明连接数据库成功。

 

网上找了个例子,往MySQL的user表中插入100条数据,以此来熟悉MySQL。

 

importjava.sql.*;

 

publicclassMyjproject{

publicstaticvoidmain(Stringargs[])

{

try{

Class.forName("com.mysql.jdbc.Driver");//加载MYSQLJDBC驱动程序

//Class.forName("org.gjt.mm.mysql.Driver");

System.out.println("SuccessloadingMysqlDriver!

");

}

catch(Exceptione){

System.out.print("ErrorloadingMysqlDriver!

");

e.printStackTrace();

}

try{

Connectionconnect=

DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/test","root","198876"

);

 

intnum=100;

PreparedStatementStatement=connect.prepareStatement("INSERTINTOuserVALUES(?

?

)");

for(int

i=0;i

//

定义个

100次的循环,往表里插入一百条信息。

{

Statement.setString(1,"chongshi"+i);

Statement.setString(2,"bo"+i);

Statement.executeUpdate();

}

 

//}catch(ClassNotFoundExceptione){

//TODOAuto-generatedcatchblock

//System.out.println("Anerrorhasoccurred:

"+e.toString());

//e.printStackTrace();

}catch(SQLExceptione)

{

}

}

}

 

SQliteAndroidSQLite的应用简易的车间情况管理系统1.用到类似表单的界面。

界面美观清晰。

2.搭建ListViewWIdget组件。

单击列表项即可对其删除修改。

3.实现了对车间信息的增,删,改,查。

 

四.实验结果

该班级圈实现了动态登陆,点击登陆按钮,

 

五.问题及解决:

关于修改代码过程中遇到了种种问题,经过多次上网搜索和自己亲自摸索实践总结出了一点东西:

 

1.在修改了资源文件后,出现“"cannotberesolvedorisnotafield",解

决方法如下:

a.删除R.Java文件,这时,系统会重新生成一个R.java;b.删除java代码中的”importAndroid.R“文件。

 

2安卓开发中Theme.AppCompat.Light的解决方法

styles.xml中

parent="Theme.AppCompat.Light">提示如下错误,这是版本问题。

error:

Errorretrievingparentforitem:

Noresourcefoundthatmatches

thegivenname

'Theme.AppCompat.Light'.

解决方法:

在Eclipse中打开任意一个.java文件,输入android.R.style.这时你会

看到一个提示列表,仔细看看,再对比一下,看哪个与原有的最接近就选择哪个。

用将下划线替换成"."就可了。

改为

Theme.Light">

同理,将

parent="Theme.AppCompat.Light.DarkActionBar">

改为

Theme.Holo.Light.DarkActionBar">

 

3.还有一个是重复引用问题,比如:

xmlns:

android="提示报错,说Unexpectednamespaceprefix"xmlns"foundfortagTableLayout

 

解决方案:

scrollview中已经引用了xmlns,下面那个tablelayout就不能再用了,后面的地址一样,去掉就可以了。

 

当然除了代码修改,还有整个模拟器的运行,以及将我们制作的app在手机

上完美运行也是遇到重重困难的,比如手机版本问题。

打开SDK安装目录,找到SDKManager.exe(windows平台),点击运行。

点Tools菜单,选中About,弹出信息框就可以看到SDK版本。

minSdkVersion=“8”,说明该应用在只能安装在大于等于android系统APIlevel为8(

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

当前位置:首页 > 经管营销 > 经济市场

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

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