版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通信与信息工程学院20 15 /20 16 学年 第 2 学期软件设计 实验报告模 块 名 称 Android开发 专 业 通信工程 学 生 班 级 学 生 学 号 学 生 姓 名 指 导 教 师 设计题目1.安卓开发班级圈app2.安卓开发企业移动安全巡检系统任务要求1.能配置Android的应用开发环境,并在此环境下开发。2.使用Android移动开发技术实现围绕班级的应用。3.设计企业移动安全巡检系统的基本功能并用Android移动开发技术实现;要求有图形界面及事件处理;设计数据模型并在Oracle中建立表(或使用其他数据库)。实验设备及软件1.硬件:兼容机一台、Android开发实验箱
2、2.软件:JDK1.7;Eclipse,Tomcat7.0;Oracle9i数据库同组人员学号及姓名一人一组参考文献1 王诚等 . Java编程实用技术.北京:人民邮电出版社,2012 2 王诚等 . Android移动互联应用开发教学实验箱实验指导书,2014报告内容1 实验目的本软件设计是在理论课程的基础上,重点培养学生的动手编程能力,通过搭建开发环境、能够根据需求分析,系统设计及详细设计,最终编码测试运行,了解软件项目的开发过程,熟悉开发工具、熟练掌握使用一门语言。根据大纲提供的题目和要求,实现其功能。2 实验内容 下载JDK软件包到本地;设置环境变量;提示符下运行java程序;安装My
3、Eclipse开发环境,并在此环境下安装Android包,安装Tomcat应用服务器。根据一个课程相关的app应用,从需求出发,分析设计内容及功能,能够实现围绕班级的分享、发帖、回复、关注等内容,建立模型并开发,经过测试、调整,实现系统编程,以理解掌握Android开发技术。根据一个企业移动安全巡检的应用,从需求出发,分析实际系统的数据模型及编程模式,进行企业安全巡检系统设计并开发,完成的主要功能经过测试、调整,实现相关编程,以理解掌握如何应用Android移动开发技术。3 实验过程3.1安装过程1. 在官网上下载jdk1.7,安装后,配置环境变量,分别设置classpath和path环境变量
4、,具体设置见下图:系统属性-高级-环境变量,新建Classpath,设置它的jdk路径,classpath D:android_ejdk1.7lib path 后加一个; D:android_ejdk1.7bin即可,这时候我们在程序中输入cmd,调出dos窗口,输入java,看到一长串的东西,说明安装成功,这时我们输入java -version,可以看到dos窗口上显示所安装的jdk版本。安装tomcat服务器1、首先是Tomcat的获取和安装。上Apache的官方网站下载,开源免费,下载很快。这是两种不同的下载,一个是普通安装版本,一个是解压安装版本。使用起来是一样的,只是在普通安装版本中
5、有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册。2、Tomcat的运行环境搭建。(解压版)安装(就是解压)完成后如下:Tomcat的启动是一个bat文件(Windows下),在bin目录下。双击即可。我一开始安装了好多次,都没有成功,后来请教了别人,调出dos窗口,在里面输入安装的tomcat的bin路径,它提示说没有找到jdk,后来上网查了才知道:如果启动不成功,一般的情况是控制台出来一下立即消失,说明Tomcat没有找到Java的运行时环境。简单理解,就是Tomcat找不到JDK,没办法运行。御史我“告诉”它JDK的安装路径,即在环境变量里新建J
6、AVA_HOME(不区分大小写),指向JDK安装目录。如下:这样,Tomcat就配置好了,启动就OK。启动Tomcat,在浏览器地址栏输入http:/localhost:8080/如果看到关于Tomcat的介绍,说明配置成功,当时还是小小地激动了一下。接下来就是将tomcat配置进eclipse java ee了,【Windows】-【Preferences】-【server】-editFinish ok 就行在下方server处出现我们要安装的那个tomcat,安装成功3.2界面布局这两周我渐渐熟悉了常用的UI组件,UI布局,UI元素。能够简单的编写界面的布局(XML)文件。从新建工程到一头
7、雾水,建了几个工程才慢慢了解到到底在哪几个目录下写xml文件还是写java文件,文件中提到的string图片,只要是系统软件里没有的都要手动添加进去。根据下图我们可以看到:MainBody.java,Main.xml,Strings.xml,AndroidManifest.xml这四个文件。MainBody.java这是我们创建的java文件,他主要是实现项目的功能。Main.xml实现窗体界面的布局和显示。Strings.xml这是Main.xml程序中的变量登记表。AndroidManifest.xml这是窗体页面登记表。LinearLayout表示一行的布局。这整个窗体布局器中只有一行,
8、可见这个界面就只有一行,即整块手机屏幕区域。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,意思是距离左
9、边框的距离;用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的控件的左边。 andr
10、oid:layout_alignTop=id/ok ,使当前控件与id控件的上端对齐。 3.3功能的实现添加功能基本方法界面出来了,但你会发现窗体上的组件没有任何作用,所以接下来我们就需要为窗体上的组件添加上相应的功能。登陆界面的功能是当我们输入正确的帐户和密码之后,自动将页面跳转到新的页面中去。即接下来要实现的就是从输入框中获取信息,按登陆按钮时自动核对信息。这时我们需要在MainBody.java文件中来实现这些功能。onCreate()就是我们的主程序入口,相当于Main()函数,在程序中第一个执行的主线程。也许我们会产生疑问,我们刚刚编写的窗体界面是如何与这个功能程序关联的呢?细心的人
11、可以看到setContentView(R.layout.main);这句代码,正是这个代码确定了本程序的具体布局也是显示窗体的功能。下面让我们来添加窗体的按钮的监听器,监听屏幕上对象。当按下按钮时产生相应的功能。我们使用命名内部类的方式创建Lister监听对象,OnClickListener是一个接口,创建对象后还需要实现它里面的方法体,该接口中只有一个方法体onClick(View v);接下来实现监听器内的方法麻烦就来了,如何知道窗体上点中的是哪个按钮呢?如何获得在Main.xml布局管理器中创建的组件呢?这时我们可以回到第二步“显示窗体”中或查看我们的Main.xml文件中,我们会发现,
12、在我们创建组件时,都加上了android:id=+id/person_name这样一段代码,只是斜杠后面的名称都不一样,这就是我们给每个组件设置的ID号,这个ID号会在R.java文件中自动注册,并且全部是静态变量,既然是静态变量,那我们就可以跨类使用R.java文件中注册的ID号来对Main.xml中的对象操作了,如果我这样说不能明白,那只要知道我们可以通过使用对象的ID号来对组件操作就行了。那我们从View V这个窗体对象中来获取被操作的对象ID,通过v.getId()方法来获得一个整形数值;用switch()语句来判断相应的操作,对应的值就是R.id.名称。通过这种方式我们就可以确定在窗
13、体上点击了什么按钮,当然还需要对按钮对象加上这个监听方法就OK了。接着我们完善一下当按下“登陆”按钮时,触发的下一事件,即判断帐户和密码输入框中是否有内容以及内容是否正确。我们知道了如何获取按钮的操作方法了,那么文本输入框的操作方法获取方式是否以前面一样呢?如果我们尝试后会知道,我们虽然可以通过ID获取文本输入框这个对象,却无法通过这种方法获取文本输入框中的内容。那么这里我们就需要把这个ID的对象实例化了,根据它的ID来实例化这个对象,其实每个组件都可以被实例化,这里我们也看到了,需要通过实例化后的组件对象才能添加刚才我们创建的监听方法,这里需要注意,帐户和密码输入框两个组件都定义成了全局变量
14、,这样方便在监听方法中直接引用。设计流程3.3.3具体功能实现1.关于发帖最简单的方法,发帖后将生成的数据存到数据库,然后刷新论坛列表页。2.关于点赞功能数据库字段里面有个“赞”的字段,当用户点击该图片,onclick事件内进行数据库操作:每次点击就添加+1,后Update该对应的ID的“赞”字段。建立服务器,使用phpaspnodejs等语言,接受app传来的请求,然后访问数据库。不过时间太短,我只安装了服务器,并不会用,只是建了一个数据库。3.Android中利用App实现消息推送机制的实现步骤/方法消息推送机制服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否
15、正在运行或者关闭。独立进程,无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。我们需要一个独立进程的后台服务。在androidmanifest.xml中注册service时,有一个android:process属性,如果这个属性以.开头,则为此服务开启一个全局的独立进程,如果以:开头则为此服务开启一个为此应用私有的独立进程。通知用户和点击查看,停止服务,view sourceprint?1 stopservice(new intent(myactivity.this,messageservice.class);2 setmessagepush(false);/设置配置
16、文件或数据库中flag为false运行一下,停止服务。退出线程,实践证明,thread的stop()方法并不可靠。但是我们有其他的办法。退出线程有两种方法。第一种方法,强制退出。view sourceprint?1 /杀死该线程所在的进程,自然就退出了2 system.exit(0);第二种方法,设置isrunning为false。4.关于分享的核心代码publicvoidonClickShare(Viewview)Intentintent=newIntent(Intent.ACTION_SEND);intent.setType(image/*);intent.putExtra(Intent.
17、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,这个相对比较简单,对于我这个
18、新手来说,数据库用这个软件是比较轻松的。下面来创建一个数据:mysqlCREATE DATABASE test; /创建一个数据库mysqluse test; /指定test为当前要操作的数据库mysqlCREATE TABLE user (name VARCHAR(20),password VARCHAR(20); /创建一个表user,设置两个字段。mysqlINSERT INTO user VALUES(huzhiheng,123456); /插入一条数据到表中2.打开Eclipse,创建一个项目(my),操作:右键点击my-build Path-add external Archive
19、r.选择jdbc驱动,点击确定。我的项目列表:3。驱动已经导入,下面我们来写一个程序验证一下import java.sql.*;publicclass MysqlJdbc publicstaticvoid main(String args) try Class.forName(com.mysql.jdbc.Driver); /加载MYSQL JDBC驱动程序 /Class.forName(org.gjt.mm.mysql.Driver); System.out.println(Success loading Mysql Driver!); catch (Exception e) System.
20、out.print(Error loading Mysql Driver!); e.printStackTrace(); try Connection connect = DriverManager.getConnection( jdbc:mysql:/localhost:3306/test,root,198876); /连接URL为 jdbc:mysql/服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码 System.out.println(Success connect Mysql server!); Statement stmt = connect.createStateme
21、nt(); ResultSet rs = stmt.executeQuery(select * from user); /user 为你表的名称while (rs.next() System.out.println(rs.getString(name); catch (Exception e) System.out.print(get data error!); e.printStackTrace(); 点击运行程序:Success loading Mysql Driver!Success connect Mysql server!huzhiheng出现上面结果,说明连接数据库成功。网上找了个
22、例子,往MySQL的user表中插入100条数据,以此来熟悉MySQL。import java.sql.*;publicclass Myjproject publicstaticvoid main(String args) try Class.forName(com.mysql.jdbc.Driver); /加载MYSQL JDBC驱动程序 /Class.forName(org.gjt.mm.mysql.Driver); System.out.println(Success loading Mysql Driver!); catch (Exception e) System.out.print
23、(Error loading Mysql Driver!); e.printStackTrace(); try Connection connect = DriverManager.getConnection( jdbc:mysql:/localhost:3306/test,root,198876); int num=100; PreparedStatement Statement=connect.prepareStatement(INSERT INTO user VALUES(?,?); for(int i=0;inum;i+) /定义个100次的循环,往表里插入一百条信息。 Stateme
24、nt.setString(1,chongshi+i); Statement.setString(2,bo+i); Statement.executeUpdate(); / catch (ClassNotFoundException e) / TODO Auto-generated catch block / System.out.println(An error has occurred:+e.toString(); / e.printStackTrace(); catch(SQLException e) SQlite Android SQLite的应用 简易的车间情况管理系统 1.用到类似表
25、单的界面。界面美观清晰。 2.搭建ListView WIdget组件。单击列表项即可对其删除修改。 3.实现了对车间信息的增,删,改,查。四实验结果该班级圈实现了动态登陆,点击登陆按钮,五问题及解决:关于修改代码过程中遇到了种种问题,经过多次上网搜索和自己亲自摸索实践总结出了一点东西:1.在修改了资源文件后,出现“cannot be resolved or is not a field,解决方法如下:a.删除R.Java文件,这时,系统会重新生成一个R.java;b.删除java代码中的”import Android.R“文件。2安卓开发中Theme.AppCompat.Light的解决方法
26、styles.xml中提示如下错误,这是版本问题。error: Error retrieving parent for item: No resource found that matches the given name Theme.AppCompat.Light.解决方法:在Eclipse中打开任意一个.java文件,输入 android.R.style. 这时你会看到一个提示列表,仔细看看,再对比一下,看哪个与原有的最接近就选择哪个。用将下划线替换成.就可了。将改为 同理,将改为3.还有一个是重复引用问题,比如:xmlns:android= namespace prefix xmlns
27、found for tag TableLayout解决方案:scrollview中已经引用了xmlns,下面那个tablelayout就不能再用了,后面的地址一样,去掉就可以了。当然除了代码修改,还有整个模拟器的运行,以及将我们制作的app在手机上完美运行也是遇到重重困难的,比如手机版本问题。打开SDK安装目录,找到SDKManager.exe(windows平台),点击运行。点Tools菜单,选中About,弹出信息框就可以看到SDK版本。minSdkVersion =“8”,说明该应用在只能安装在大于等于android系统API level 为8(android2.2)的系统上,尽量要让m
28、inSdkVersion的值大于等于我们用到的API 接口的开始被支持的最低版本。这样可以让不支持该接口的android系统不能安装我们的应用,防止应用在一些手机上因兼容性问题而崩溃。出现乱码安卓App真机测试显示乱码,怎么解决?后台使用Tomcat服务器,mysql 数据库,数据成功添加并正常显示在数据库中,但是手机中就变成了问号,用的是服务器返回json字符串,对于这种问题,一般都是默认编码问题。看一下你项目的编码是不是UTF-8。六心得体会通过学习Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。例如: 要的布局(或者控件) ,在学习界面中,我发现Android为我们提供了很好的类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024汽车零部件运输合同模板
- 2024年塘坝承包合同堰塘承包协议
- 2024广告活动赞助合同范本
- 葡萄酒代理授权合同样本-合同格式
- 2024上海国内旅游合同范本
- 精美设计的货物运输合同
- 海运出口货物运输代理契约
- 繁华商业圈店面转租合同
- 无限期劳动合同样本
- 高速公路泥水平衡盾构隧道专项预算定额
- 精神病合并高血压病人护理
- 新东方英语背诵美文30篇
- 自学考试-计算机系统结构(全国)
- 极地特快中英文台词打印版
- GB/T 3620.1-2016钛及钛合金牌号和化学成分
- GB/T 307.3-2017滚动轴承通用技术规则
- GB/T 17514-2017水处理剂阴离子和非离子型聚丙烯酰胺
- 二副面试问题与答案
- Friends《老友记》英文介绍(并茂)课件
- 公安派出所建设标准
- 小学开展仪式教育的策略研究
评论
0/150
提交评论