为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机专业实习报告

2019-01-22 23页 doc 79KB 117阅读

用户头像

is_260251

暂无简介

举报
计算机专业实习报告武汉工程大学 计算机科学与工程学院 专业实习报告 专 业 计算机科学与技术 班 级 01 学 号 1305120107 学 生 姓 名 何经纬 指 导 教 师 刘菲 实 习 时 间 2015~2016学年第2学期 2016.5.8至2016.5.28 实 习 成 绩       武汉工程大学计算机科学与工程学院  制 说明: 1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。 2、 实习报告由武汉工程大学计...
计算机专业实习报告
武汉工程大学 计算机科学与工程学院 专业实习报告 专 业 计算机科学与技术 班 级 01 学 号 1305120107 学 生 姓 名 何经纬 指 导 教 师 刘菲 实 习 时 间 2015~2016学年第2学期 2016.5.8至2016.5.28 实 习 成 绩       武汉工程大学计算机科学与工程学院  制 说明: 1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。 2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。 3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。 4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。 5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。 6、 实习报告正文字数应不少于5000字,实习日记字数不少于500字/天。 7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自行填写以上内容。 8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。 专业实习答辩记录表 学生姓名: 何经纬 学号: 1305120107 班级: 01 答辩地点: 上海市宝山区同济支路199号千锋教育 答辩内容记录(至少3个问题。有问有答。问题简洁。答案准确): 答辩成绩 总分值 各项分值 评分 实际得分 总得分 备注 30 15 在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。       15 在规定时间内能准确、完整、流利地回答教师所提出的问题。   答辩小组成员(签字): 年 月 日               专业实习成绩评定表 学生姓名:  何经纬   学号:  1305120107   班级:  01         类别 总分值 各项分值 评分标准 实际 得分 合计 得分 备注 实习表现 20 10 遵守学校和实习单位的考勤、安全生产等纪律,积极参加实习活动,无旷课、迟到、早退等情况。       10 积极完成各项任务,表现良好,服从并配合指导教师和实习单位的工作安排。   项目实践及 实习报告 50 10 实习报告格式,文字通顺。按照实习大纲要求认真完成规定项目内容,能运用所学专业知识对问题加以分析,并对全过程的实习内容进行系统的总结。       20 每天记载实习笔记,内容翔实不空泛,无相互抄袭现象。论述充分完整,结构严谨合理。体现了实习过程中的学习情况和项目实践情况,及所思、所获、所感。   20 按照要求完成实习项目,方案合理,工作量饱满,能运用专业知识和技能去发现与解决实际问题。在项目实践过程中展现出了较强的学习能力、动手实践能力、团队协作能力和创新意识。   实习答辩 30 15 在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。       15 在规定时间内能准确、完整、流利地回答教师所提出的问题。   总评成绩     指导教师评语 指导教师: (签字) 日期: 年 月 日               一、实习目的与任务 1. 实习目的 1)培养学生熟悉信息呈现与信息获取的方法; 2)培养学生理解面向用户的体验良好的软件交互设计; 3)培养学生掌握将人的知识和经验融入程序设计的思路与方法。 2. 实习任务 1) 熟练掌握常用UI控件,熟练常用布局及资源文件的使用 2) 熟练掌握 Java编程, 具有扎实的技术功底,有良好的Java编程习惯 3) 熟练掌握常用UI控件,熟练常用布局及资源文件的使用 4) 熟练使用Eclipse、MyEclipse等工具 5) 熟练掌握Http上传下载网络数据,JSON和XML数据解析; 二、实习地点 单位:北京千锋互联科技有限公司(上海) 地址:上海市宝山区同济支路199号千锋教育 三、实习内容和要求 1、基于Android的UI设计; 2、Java语言、 集合数组面向对象的运用; 3、HTTP协议与请求格式;Json数据格式。 4、基于HTTP的信息交互; 5、基于Android语言的界面布局动画和客户端信息处理。 6、完成自主研发项目进行答辩。 7、按计算机学院规范撰写实习报告和实习笔记。 8、实习期间主动对实习过程中存在的问题进行监督并报告校内指导教师。 四、实习总结及分析 经过20天的学习,我对安卓开发有了初步的认识,我觉得学习安卓开发第一步就是要掌握一些高级控件的使用,比如在实习过程中学到的ListView、PagerView等控件,我发现这些控件的功能实现都需要适配器的配合。 要使用ListView首先是布局文件,我们需要两个布局文件,一个是放置列表控件的Activity对应的布局文件 main.xml,另一个是ListView中每一行信息显示所对应的布局 item.xml ,接着就是给适配器设置数据了,通常是先将数据添加到ArrayList中,然后将数据设置给适配器。ListView的适配器有四种,这四种适配器分别为为:ArrayAdapter、SimpleAdapter、SimpleCursorAdapter以及自定义Adapter。我们使用系统自带的ArrayAdapter、SimpleAdapter和SimpleCursorAdapter适配器时,对于事件的响应只能局限在一个行单位。假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。若采用系统自带的适配器,就不能精确到每个控件的响应事件。这时,我们一般采取自定义适配器来实现这个比较精确地请求。自定义适配器就是自己创建一个类继承BaseAdapter,并实现其方法。 ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。 在编写ViewPager的应用的使用,还需要使用两个组件类分别是PagerTitleStrip类和PagerTabStrip 类,PagerTitleStrip类直接继承自ViewGroup类,而PagerTabStrip类继承PagerTitleStrip类,所以这两 个类也是容器类。但是有一点需要注意,在定义XML的layout的时候,这两个类必须是ViewPager标签的子标签,不然会出错。ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用。 想要做好单机版的应用数据存储显得尤为重要,安卓有五种数据存储方式,分别为:使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据。本次实习我学习的是文件存储,Android中存储大量数据时,可采用本地文件的方式。Android操作文件的方式同样是用java的IO操作来完成。Android的文件可分为普通文件、静态文件和SDCard文件。普通文件是指Android程序通过文件操作,存放在系统中的文件,这种类型的文件可以通过以下的方法来操作:写文件首先声明一个文件输出流用来写入数据,可以使用Android系统提供的 openFileOutput来获取该输出流,获取输出流时需指明输出流对应的文件名称,以及该文件的使用模式。读文件的方法与写文件的方法类似,首先调用系统提供的openFileInput方法获取文件的输入流,接着使用IO读出数据,读出数据时需注意数据的编码方式。静态文件或者成嵌入式文件,该文件为程序的一部分,在编写时放入程序的资源目录中,程序编译时会将改文件,作为程序的一部分一起编译,该文件一般存放在res/raw文件夹下,文件的名称可以通过R.raw.fileName来访问。该类型文件的读取方式如下:文件的读取方式与普通文件有点区别,首先调用getResource()方法获取程序资源,然后通过openRawResource()方法打开指定的嵌入文件资源,接着文件的读取工作,读取原理与普通文件类似。SDCard文件是指存放在SD卡上的文件,进行SD卡操作前,要确保已安装SD卡且保证已配置允许对SD卡进行操作。对SD开的权限配置在文件AndroidManifest.xml中,在程序中操作SD卡前,也需判断是否已安装SD卡,判断的方法如下:使用Environment的getExteralStorageDirectory()获取的值与Environment的MEDIA_MOUNTED进行比较,如果相同,则说明支持SD卡操作,否则不能进行SD开操作。向SD中写入文件数据的代码如下:首先获取SD卡的目录文件,接着获取SD卡中指定的文件,获取文件后,就可以通过java的IO操作,对其进行读写了,读数据的方法还是与普通文件类似。 由于实习时间有限,安卓的数据存储方式我们只学习了一种,单数据库存储方式,我们可以自己尝试一下,应为我们已经学习过SQL Server数据库相关知识,相信使用SQLite数据库存储数据对我们来说也不算太难。 现在的安卓应用都几乎具有联网的功能,应为具有了联网功能这个应用才能推送一些广告,应用能推送广告之后就具有了一定的商业价值,具有商业价值的应用才有可能“生存下去”。在实习期间,我们学习了如何进行网络请求,从网络上获取数据,解析数据。基本原理都基本了解,而每次的网络请求、获取数据几乎都是重复工作,这时候如果我们使用xUtils框架进行网络数据获取,这会使得我们的工作效率大大提高。xUtils含有四个模块,实习过程中我们使用了其中两个模块,HttpUtils模块和BitmapUtils模块。其他两个模块还没有使用过,xUtils是目前比较流行的开发框架,运用好它会给很好地提升开发效率。目前我对xUtils的内部原理并不是很清楚,所以要掌握它必须要花费一些时间。 五、实习体会 我觉得学院安排我们实习培训安卓肯定是有一定原因的,了解一下安卓的历史和发展现状就知道了。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。 2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008 年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。 据国外媒体报道,市场调研公司Kantar Worldpanel ComTech最新发布的智能手机操作系统数据显示,于截至2016年2月末的三个月内,Android中国城市的销售份额从去年同期的73%增至76.4%。而在美国和欧洲五大市场(包括英国、德国、法国、意大利和西班牙),Android的市场占比继续保持增长态势。 综上所述,安卓近年行业发展不错,移动互联网时代带动安卓行业发展,安卓在未来5-10年间前景也比较乐观的,安卓行业也是非常有前途的,未来发展趋势有很好的兆头。所以这次上海之行就是奔着安卓去的,20天的实习时间我将学习到一些安卓的主流开发技术。 转眼间,在上海的20天的实习生活结束了,20天的时间并不很长,但学习到的知识却是很多。 在实习的第一天,我就有了不一样的感觉,实习和学习果然是有区别的,虽然这次实习的目的就是学习,但我还是明显的感觉到了学习与学习之间的不同。实习更加注重动手能力,而在学校的学习更加偏向于理论知识的学习。学习与实习二者相结合才能把所学的知识变成所用的知识,把所学的知识变成自己的知识。其实实习也是学习的一种,它可以帮助我查漏补缺,在实际操作过程中发现自己未掌握的知识,然后自己再去补上这个漏洞,对于自己掌握的知识,实际应用只会让我们对知识的掌握更加深刻,这样在实习的过程中就达到了学习的目的,一举两得。 老师给我们上课的方式是一边写程序一边讲解,把新的知识直接应用到实践中,在实践中去学习新的知识,虽然有的知识点掌握的并牢固,但是当再次用到这个知识点,脑海的就会浮现出这个知识点的相关内容,即使有些遗忘也可以及时找出自己以前写的代码参考一下,或者直接上网搜索相关的知识点,现在有很多门户网站提供了很多可供参考的资料,例如CSDN,开发者社区等。而这一切的前提就是要学好基础知识,打牢基础,实习过程中老师不可能从最基础的知识开始讲,如果基础不太好,那么刚开始听老师讲课就可能有些困难,如果一开始听不懂,再不自己补习的话,很可能就会掉队。老师每天讲的一个小项目都涵盖了一部分的知识点,有的可能在学校学过,有的可能是新的知识,对于已经学习过的知识,在写程序的过程中正好可以复习,巩固,用于实践,把理论知识编程可见、可用的知识;对于没有学习过的知识,我就在实践过程中学习,先学会怎么使用,再去了解其工作原理同样可以达到学习的目的。对于新的知识,仅仅凭借一次编程,我想是不能够掌握的,所以我们要要抽时间来“消化他”,通过查阅相关资料了解其工作原理后,我们要自己尝试用所学知识编写自己的程序、小应用,通过练习来达到掌握的目的。 这次实习还让我发现学习不能单单只学习“经典”,还要学习一些新出现的技术,只有这样,我的知识才不会与时代脱轨。我要尝试、要努力去学习新的知识,当然这一切的前提就是我们要有牢固的基础,也就是说,在学校学好基础知识是首要任务,基础不牢固,其他的都是痴人说梦。 同样自主学习也很重要,遇到困难,不会的,在别人不能提供帮助的情况下我要学会自主学习,通过查找书籍,查阅资料来解决问题,这样不仅能解决问题还能提高我的自主学习能力。 20天的实习生活让我学习到了很多,也收获到了很多,总之,不虚此行。 实习笔记 时间:2016年05月09日 地点:上海市宝山区同济支路199号千锋教育 主要内容:简单的JAVA基础与Android基础 今天是实习的第一天,即将到来的是大学生活中的第一次实习,虽然之前老师都给我们讲过实习会做哪些事情,但我的内心还是有些小小的激动。 上午,我们一行来到了实习教室,各自找到了各自的位置并领到了将陪伴我们20天的笔记本电脑。由于实习需要用到一些软件,而我们领到的笔记本里面并没有装,所以上午我们基本上都再给自己的笔记本安装软件。实习老师给我们带了一款新的安卓模拟器,这款模拟器的运行速度明显比我们在学校使用的原生模拟器的要快,流畅度也很高,相信它会给我们的程序调试带来很大的帮助。上午的时间很短暂,待我们分好实习小组,完成软件的安装后就下课了。 下午,我的实习生活真正开始了,我们开始了第一个安卓工程,第一个安卓工程主要涉及的是安卓基础,跟着老师一起敲代码,老师带着我们复习了一下安卓的基础,最主要的是让我们了解的四种基本布局及成员变量的重要性,在以前的学习过程中我并没有很重视成员变量的使用,今天老师特别给我们强调了成员变量的重要性,在今后的实习过程中,相信会涉及到很多成员变量的应用。老师还给我们介绍了四种布局,在学校的学习过程中我大概只使用过两种布局,并且都不太熟练,而在以后的实习过程中我们将会使用这四种布局,并且要掌握这四种布局。 第一天总是过的那么快,老师没有给我们将太难的内容,主要给我们讲了一些开发必备的知识,跟着老师一起敲代码,感觉挺不错,虽然当时可能没有理解某个知识点,但自己网上查阅一些资料,再敲段代码,调试、运行后基本上机会理解这个知识点。 时间:2016年05月10日 地点:上海市宝山区同济支路199号千锋教育 主要内容:BMI App的编写.主要知识 RelativeLayout Acivity的传递数据 经过第一天的基础知识复习和巩固,我们正式开始了以小项目为驱动的学习,今天我们将会做一个测量BMI值得小应用。 这个应用主要涉及到了相对布局、控件、Intent在Activity间传递数据、页面跳转、以及按钮点击事件应用,程序的逻辑不是很复杂,就是一些简单的基本运算,但是需要注意的是我们从EditText获取的数值是字符串类型,我们需要把它转换成double类型才能进行运算。 这个小应用虽然功能很简单,但让我进一步掌握了相对布局的使用,初步了解了成员变量的使用环境。 这个小应用功能比较简单,实现起来也不是很复杂,所以我们没有花太多时间就把它完成了。接着老师给我们讲了四种点击事件。当我听到老师说四种点击事件我确实很吃惊,竟然有四种点击事件,在平时的学习过程中我只使用过两种点击事件,没想到竟然有四种点击事件方法。看来我掌握的知识还是太少,这四种点击事件分别是:内部类;匿名内部类;布局文件中定义Onclick属性,并在activity中再声明方法;在主类中实现OnclickListener接口,并在主类中实现未实现的方法。每种点击事件方法都有它自己的特点,合理的使用会提高编程的效率。四种点击事件并不能一下子全部掌握,所以我在自习地时候,自己就编写几行简单的代码来练习这几种点击事件。 时间:2016年05月11日 地点:上海市宝山区同济支路199号千锋教育 主要内容:TomCat  App  火箭炸月宫App 主要学习Android的动画 今天老师讲了两个小项目,这两个小项目都是围绕着一个重要的知识点,这个知识点就是Handler。 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个 Button,Android会分发事件到Button上,来响应你的操作。如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示  "强制关闭"。这个时候我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,Android主线程是线程不安全的,也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。这个时候,Handler就出现了,来解决这个复杂的问题,由于Handler运行在主线程中(UI线程中),它与子线程可以通过Message对象来传递数据,这个时候,Handler就承担着接受子线程传过来的(子线程用sendMessage()方法传弟)Message对象,(里面包含数据) ,把这些消息放入主线程队列中,配合主线程进行更新UI。 Tom猫和小火箭这两个小应用还涉及到了帧动画,帧动画是一串图片顺序播放来实现的,首先要在drawable文件夹下建一个XML文件,设置每张图片的停留时间,然后顺序播放就可以实现动画的效果。 时间:2016年05月12日 地点:上海市宝山区同济支路199号千锋教育 主要内容:Android高级控件 ListVIew 的使用 今天是实习的第四天,我们学习了一个重要的控件:ListView,ListView是Android中常用的控件,它通过适配器来进行数据适配然后显示出来。 我们要使用ListView显示列表需要三个元素,列表的显示需要三个元素,ListVeiw:用来展示列表的View;适配器:用来把数据映射到ListView上的中介;数据集:具体的将被映射的字符串,图片,或者基本组件。而适配器是数据集和ListView之间的桥梁,所以适配器的使用显得尤为重要,根据列表的适配器类型,列表分为四种,ArrayAdapter、SimpleAdapter、SimpleCursorAdapter以及自定义Adapter。其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。 SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。当我们使用系统自带的ArrayAdapter、SimpleAdapter和SimpleCursorAdapter适配器时,对于事件的响应只能局限在一个行单位。假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。若采用系统自带的适配器,就不能精确到每个控件的响应事件。这时,我们一般采取自定义适配器来实现这个比较精确地请求。我们再新建一个MyAdapterListActivity继承Activity,自己定义一个适配器。 今天我们的老虎机应用就是用到了自定义适配器,并且用到了昨天刚刚学习的Handler,刚刚接触自定义适配器,一时间还没有完全理解 ,但是ListView是安卓应用中比较常见的控件,掌握适配器的使用显得尤为重要,在以后的学习过程中肯定还会用到,所以在以后的学习过程中要掌握适配器的使用。 时间:2016年05月14日 地点:上海市宝山区同济支路199号千锋教育 主要内容: TigGame  App  综合训练.主要知识点 Android的Handler机制 昨天我们已经简单的实现了老虎机的跑马灯效果。跑马灯效果就是通过Handler实现的,由此可以看出Handler的重要性。 Handler机制是在Android中提供了一种异步回调机制,使用它,我们可以在完成一个很长时间的任务后做出相应的通知。通常会使用Handler来控制主UI程序的界面,这样Handler会与其他线程协同工作,接收其他线程的消息并通过接收到的消息更新主UI线程的内容。 初步实现了首页效果,接着就要实现下注界面的了。下注界面的实现就是应用了ListView,通过ListView来展示下注信息,在这里我们使用自定义适配器作为数据和视图之间的桥梁。由于要实现下注功能,所以我们要给item设置监听事件,并且将item点击和RadioButton点击作为开始游戏的充分必要条件。 接着将获取的数据返回MainActivity,在这里我们使用的是startActivityForResult(intent, REQUESTCODE)方法,不再是startActivity(intent)方法,返回数据时还要用到setResult(RESULTCODE, data),最后在MainActivity中复写onActivityResult()方法接收数据。 得到数据后我们只需要判断是否中奖就基本实现老虎机的功能了,其中赔率是字符串类型,这里要获取第三个字符并将其转换成int类型。 老虎机的功能实现后程序基本完成,但是bug却很多,比如下注也能开始游戏,开始、下注按钮可以多次点击,这就需要我们去设置一些防护性代码了,这种非逻辑行的bug是比较容易修复的。 时间:2016年05月16日 地点:上海市宝山区同济支路199号千锋教育 主要内容:MP3 App的编写 MediaPLayer的使用 文件的操作 ,全选,反选. 音乐播放器几乎已经成为手机必备的一个功能模块,我自己的手机上就装了几个不同的音乐播放器,以前从来都没有想过自己可以动手写一个音乐播放器,今天老师就带着我们写一个本地播放器。 这个播放器的功能比较简单,主要涉及的控件有ListView、CheckBox、SeekBar等。 播放器使用的是线性布局。音乐播放是通过MediaPlayer来实现的,在播放音乐之前,我们先要通过ListView获取mp3文件的绝对路径。通过getAbsolutePath()返回抽象路径名的绝对路径名字符串,在获取绝对路径的时候,再将绝对路径解析为一个地址,然后就可以通过MediaPlayer播放音乐了。要实现ListView中的item点击事件,就要为ListView中的item设置监听事件,以实现点击歌曲名播放歌曲。 在实现播放器的基本功能后,我们对文件操作进行了优化,使其可以对mp3文件进行操作,例如全选和反选,操作文件的时候多次用到了ArrayList数组对文件进行或者文件夹进行存储以方便后续文件操作。其中要对外部存储进行操作,必须先在在AndroidManifest.xml中添加相关权限。 最后完成了播放器的一个雏形,播放器还无法还无法存储已经添加到播放列表的音乐,要存储已添加到播放列表的音乐需要用到安卓IO的相关知识,再以后的学习过程中会学习到相关的知识,到时候在来修复播放器这一缺陷。 时间:2016年05月17日 地点:上海市宝山区同济支路199号千锋教育 主要内容:MP3 App的编写 本地存储数据的操作 今天我们学习的是IO操作,以前C语言的学习过程中接触过,但是我觉得自己掌握的并不是很好,现在安卓课程又学习到了IO操作,看来IO操作在编程中极其重要,必须掌握。 安卓文件的读写这要主要分四个步骤,这四个步骤分别为:建立通道,建立数据存储空间,开始读写数据,关闭流。Context提供了如下两个方法来打开本应用程序的数据文件夹里的文件IO流。FileInputStream openFileInput(String name):打开应用程序的数据文件夹下的name文件对应的输入流。FileOutputStream openFileOutput(String name,int mode):打开应用程序的数据文件夹下的name文件对应输出流。Context还提供了如下几个方法来访问应用程序的数据文件夹。getDir(String name,int mode):在应用程序的数据文件夹下获取或创建name对应的子目录。File getFilesDir():获取该应用程序的数据文件夹的绝对路径。String[] fileList():返回该应用程序的数据文件夹下的全部文件。deleteFile(String):删除该应用程序的数据文件夹下的指定内容。 对安卓IO操作有了初步的认识后我们就去完善那个没有完成的音乐播放器,经过一番调试,音乐播放器保存已添加的歌曲的功能得以实现,但是播放器的功能还是比较简单,以后学习到新的知识还可以为播放器添加新的功能。 Android中向本地存放数据的方式有,数据库,sharedpreference和文件。这次我们只学习了文件存储,其他两种方式我们可以课外了解学习一下。 时间:2016年05月18日 地点:上海市宝山区同济支路199号千锋教育 主要内容:主要知识点 网络请求数据 前几天做的一些应用都是单机的,无法访问网络,今天就开始学习如何从网络上获取数据。 我们要从网络上获取数据首先要进行网络请求,安卓的应用的网络请求不能在主线程进行,主线程是用来绘制UI界面的,如果把网络请求放在主线程中,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示  "强制关闭",所以要开一个子线程来访问网络。同样,访问网络也需要获取相关的权限。 天气预报APP,我们使用HttpURLConnection的GET方式获取网络数据,GET方式将参数放在URL后一起传递过去,而且会被看到,一般不太安全,但是GET方式只获取数据,不会更新数据。具体的请求步骤:建立URL,URL url=new URL(urltmp); 使用URL建立连接,HttpURLConnection urlcon=url.openConnection()连接,并获取数据流 InputStreamReader reader=new InputStreamReader(urlcon.getInputStream());使用IO流处理数据。 得到从网络上获取的数据之后,我们还要对数据进行解析。从网络上获取的数据常用的有两种格式,一种是XML数据,另一种是JSON数据,现在用的比较多的是JSON数据。JSON(Javascript Object Notation)是一种轻量级的数据交换格式,相比于XML这种数据交换格式来说,因为解析XML比较的复杂,而且需要编写大段的代码,所以客户端和服 务器的数据交换格式往往通过JSON来进行交换。尤其是对于web开发来说,JSON数据格式在客户端直接可以通过javascript来进行解析。JSON一共有两种数据结构,一种是以 (key/value)对形式存在的无序的jsonObject对象,一个对象以“{”(左花括号)开始,“}”(右花括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。对JSON进行解析我们最常用的两个类就是  JSONObject和JSONArray这两个类,分别代表了JSON对象和JSON数组,这两个类都实现了 JSON 这个接口。 JSON数据的解析在获取网络数据中尤为重要,必须要掌握。 时间:2016年05月19日 地点:上海市宝山区同济支路199号千锋教育 主要内容:天气预报App的编写 网络请求数据JSON解析 与 XML解析 昨天学习了JSON数据解析,今天老师就可以带着我们做一个天气预报的应用。天气预报的基本原理就是把从API接口获取的数据解析出来,然后通过UI界面展示出来。 天气预报的数据是从中国天气网上获取的,为了减少不必要的重复工作,我们封装了一个访问网络的工具类,它的作用是访问网络,获取所需数据,工具类返回的是一个字符串,字符串的内容就是JSON数据。 获取到JSON数据后我们就可以进行JSON数据解析了,在解析数据之前,我们还需要在在线解析工具的帮助下校验JSON数据,这样我们才能观察到JSON数据的结构,知道JSON数据的结构后我们就可以编写代码,对JSON数据进行解析获取我们需要的数据。 天气预报除了要进行JSON数据解析还需要获取当前城市的code,而当前城市的code就封装在一个XML文件中,这时候我们就需要对XML文件进行解析。在Android中常用的XML解析器有三种,分别为DOM解析器、SAX解析器和PULL解析器。PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析 器,Android官方推荐开发者们使用Pull解析技术。Pull解析技术是第三方开发的开源技术,它同样可以应用于JavaSE开发,所以在这里我们选择了PULL解析器。PULL 的工作原理:XML pull提供了开始元素和结束元素。当某个元素开始时,我们可以调用parser.nextText从XML文档中提取所有字符数据。当解释到一个文档结束时,自动生成EndDocument事件。常用的XML pull的接口和类,XmlPullParser:XML pull解析器是一个在XMLPULL VlAP1中提供了定义解析功能的接口;XmlSerializer:它是一个接口,定义了XML信息集的序列;XmlPullParserFactory:这个类用于在XMPULL V1 API中创建XML Pull解析器;XmlPullParserException:抛出单一的XML pull解析器相关的错误。 时间:2016年05月23日 地点:上海市宝山区同济支路199号千锋教育 主要内容:手游伴侣App的编写  App一般架构的实现 Fragment的使用 今天老师带着我们学习了一种新的控件,ViewPager,ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。 ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类,ViewPager类还需要一个PagerAdapter适配器类给它提供数据。ViewPager的适配器是PagerAdapter,它是基类提供适配器来填充页面ViewPager内部,这个很像在前面学的ListView与适配器。 ViewPager通常不会单独使用,通常情况下ViewPager会和Fragment配合一起使用。 当我们需要动态的多界面切换的时候,就需要将UI元素和Activity融合成一个模块。在Android 2.3版本中我们一般通过各种Activity中进行跳转来实现多界 面的跳转和单个界面动态改变。在Android 4.0版本或以上系统中就可以使用新的特性来方便的达到这个效果——Fragment类。Fragment类似一个嵌套 Activity,可以定义自己的layout和自己的生命周期。当ViewPager会和Fragment配合使用时,ViewPager的适配器是FragmentPagerAdapter。 介绍完基础知识后,我们就开始了手游伴侣应用的编写,手游伴侣的大体框架就是用Fragment和ViewPager搭建起来的,Fragment实现了类似于QQ和微信那种页面切换的效果,两个页面之间的切换不再使用Activity进行切换了。在首页的布局中我们使用了ScrollView,因为Android系统测量机制的问题  不能在ScrollView使用其他可以滚动的视图,所以我们自己定义了ListView。 时间:2016年05月24日 地点:上海市宝山区同济支路199号千锋教育 主要内容:手游伴侣App的编写  三级缓存的原理与Xutils框架的使用 手游伴侣完成基本布局后,开始向其中填充内容了,手游伴侣的资源都是从网上获取的,为了减少重复代码和提高开发效率,我在开发过程中使用了xUtils框架。 xUtils 包含了很多实用的android工具,其源于Afinal框架,对Afinal进行了大量重构,使其支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响,xUitls最低兼容android 2.2 (api level 8)。 当前xUtils主要有四大模块:DbUtils模块、ViewUtils模块、HttpUtils模块、BitmapUtils模块。在手有伴侣中,我们主要用到了HttpUtils模块、BitmapUtils模块。HttpUtils模块支持同步,异步方式的请求;支持大文件上传,上传大文件不会oom;支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求;下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;返回文本内容的GET请求支持缓存,可设置默认过期时间和针对当前请求的过期时间。BitmapUtils模块加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象; 支持加载网络图片和本地图片;内存管理使用lru算法,更好的管理bitmap内存;可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。 有了xUtils框架,网络请求变的十分简单,几行代码就可以完成,我们要做的就是解析数据。在开发安卓应 用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量。对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这 势必会耗费用户的一定流量,如果不加以处理,每次打开应用都去网络获取图片,那么就会消耗大量流量,这里就要用到三级缓存了,当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片 时,就不需要再重复的到网络上去下载,直接可以从内存缓存和磁盘缓存中找,由于内存缓存速度较快,我们优先到内存缓存中寻找该图片,如果找到则运用,如果 没有找到(内存缓存大小有限),那么我们再到磁盘缓存中去找。只要我们合理的去协调这三层缓存运用,便可以提升应用性能和用户体验。 两天的时间,我们初步完成了首页功能的实现,但很多地方并不完善,有很多功能也没有实现,这就需要我们课后自己完成了。 时间:2016年05月25日 地点:上海市宝山区同济支路199号千锋教育 主要内容:学生编写自己的App 今天我们正式开始了自己的小项目,我们以小组为单位进行应用开发,每个组员有不同的分工。我们小组的成员分别是:王奇,宣浩杰、刘柯、柯晓波、我。 由于所学的知识有限,我们没有冒险去尝试做一些比较新奇的东西,我们决定做一款小游戏。我的初步分工是游戏数据存储与读取、游戏启动结束界面等。 游戏启动界面,我是用Animations实现的,Animations是一个实现Android UI界面动画效果的API。Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等。这些效果可以应用在绝大多数控件中。Animations总体上可以分为两大类,Tweened Animations和Frame-by-frame Animations。Tweened Animations提供了旋转、移动、伸展和淡出等效果。Frame-by-frame Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间隔间歇一个一个的显示。Animations的使用方法基本上都是一样的,创建一个AnimationSet对象和一个Animation对象,根据项目需求为Animation设置相应的数据,将Animation对象添加到AnimationSet对象中,使用控件对象开始执行AnimationSet。Animation 它下面有四个子类,也就是分别对应着四个动画效果AlphaAnimation 控制渐变透明的动画效果;ScaleAnimation 控制尺寸伸缩动画效果TranslateAnimation 控制画面平移的动画效果;RotateAnimation控制画面角度变化的动画效果。我这次使用的是Animation的子类AlphaAnimation,并设置了动画结束监听和页面跳转预留接口。     时间:2016年05月26日 地点:上海市宝山区同济支路199号千锋教育 主要内容:学生编写自己的App 我们游戏目前只是一个单机版的游戏,数据无法上传至网络,也就是说每局游戏结束以后游戏就会初始化,用户玩游戏的一些记录就会被清除,这样的用户体验非常差,我们必须想办法解决这个问题,由于使用网络保存数据我们都不是很清楚怎么做,于是我决定使用文件来保存数据。 文件保存数据我们在前面已经学过了,实施起来并不算太难,利用间隔符来保存不同功能的数据,文件保存有两种方式,一种是覆盖保存一种是不覆盖保存,使用的时候要加以区分,视需求而定。 在文件模块编写完成后,我对其进行了测试,确保所有功能都实现后将他的接口都留好,方便后续工作的进行。 在游戏结束后需要一个窗口告诉用户游戏分数、用户等级等信息,这时候就需要一个Activity了,一个类似于对话框的Activity,于是我就写一个布局和Activity,将Activity设置为dialog类型,测试、留好接口。 各个模块整合到一起后,游戏就要开始进行测试了,游戏测试主要是找游戏的bug,比如点击对话框空白处会使对话框关闭,这时候就需要设置对话框外空白处不可点击了,通过调用setFinishOnTouchOutside(false)就可以解决这个bug了。 修复完游戏bug后,游戏的开发工作就基本完成了。
/
本文档为【计算机专业实习报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索