2019级软件1班安卓实训总结

一、19软件技术1班 - 周璐

时光匆匆流走,转眼就迎来了大二的安卓实训。实训是每一个大学生必须拥有的一段经历,它使我们在实践中巩固知识。实训又是对每一位大学生专业知识的一种检验,它让我们学到了很多在课堂上学不到的知识,既开阔了视野,双增长了见识,为我们以后进一步走向社会打下了坚实的基础,也是我们走向工作岗位的第一步。

本交实训的目的在于灵活运用本学期的学习到的相关的知识来做一个基于存储卡的音乐播放器,但是本次实训不是一下就做一个功能齐全的项目,而是分版本来进行的。

第一个版本的基于存储卡音乐播放器V0.1,只能播放存储卡指定目录里第一首音乐。虽然本版本的音乐播放器实现的功能比较的少,但是这个版本却是整个实训的开头,也是后面版本的一个起始的模板,作用还是很重要的。本次版本做了一个非常重要的准备工作,那就是将要用到的音频文件利用DDMS放入到存储卡里的指定位置里,这样我们的音乐播放器才音乐可以进行播放。在把音频文件放入存储卡的时候有一点需要重点注意一下,因为虚拟机的版本问题,所以需要进行相应的授权才能把音频文件放入到指定的目录里面。

这一步是非常关键的。而且不仅是放入音频文件需要授权,应用运行的时候也需要在程序里进行相应的读的授权。

完成效果图:
在这里插入图片描述
程序可以正确运行,能得到相应的音乐文件,也能进行音乐的播放。第一个版本的基于存储卡的音乐播放器完成的功能比较的简单,算是一个简单易懂的好的开头。

第二个版本的基于存储卡音乐播放器V0.2,本版本是在上一个版本的基础上添加相应的功能,除了能播放存储卡指定目录里第一首音乐,还能显示其播放进度与音乐时长,比上一个版本的多了一些功能。因为本版本比上一版本多了一些功能,所以相应的代码也要比上一个版本的多一些内容。

界面布局资源(activity_main.xml)比上一个版本多了更加多的东西,比如进度条的显示等等,也多了一些界面和一些操作。

还多了一个关于按钮操作的XML文件:pause_buttou_selector.xml与play_button_selector.xml

完成效果图:
在这里插入图片描述
多了一个进度条及时长。

这个版本也要在程序里编写代码进行相应的授权。

第三个版本的基于存储卡音乐播放器V0.3比V02版本的又进行了一些升华,不再是只能播放第一首音乐了,而是用列表显示存储卡指定目录里全部音乐,这样存储卡指定目录里的全部音乐都可以进行播放了。也多了一些按钮,布局文件也进行了改变。

比上一个版本也多了俩个按钮相关的xml文件:previous_button_selector.xml与 next_button_selector.xml

也多了一些类,类就不做更多的说明了,日志博客上都有。

添加了上一首和下一首相关的代码,其余地方也产生了一些小的变动。

完成效果:
在这里插入图片描述
应用成功运行,能放出音乐,有进度条,有音乐列表,可以进行下一首上一首的切换,本版本的想要实现的功能实现。

第四个版本的基于存储卡音乐播放器V0.4比V03版本又进行了一个升华,不再是从存储卡的指定目录里得到音乐文件,而是扫描整个存储卡来得到指定类型的文件来得到我们存储卡上的全部音乐文件,这样就比前面的那些版本更加的实用,功能也更加的强大。

MusicPlayerApplication类(新添加的类,是能实现扫描的基础,也是本版本的重点)

其余的地方也有一些小的变动,但是这里就不进行详细的说明了。

完成效果:
在这里插入图片描述
在这里插入图片描述
程序可以运行,可以扫描出外置存储卡上的全部MP3音乐,也能显示出来,也可以进行播放,本版本的功能实现。

第五个版本的基于存储卡音乐播放器V0.5又与前面了几个版本不同了,这个版本是利用广播与服务来进行前后台的通信,也就是说后台接收到了指定的广播信号,前台才进行相应的操作,比前一个版本的功能又提升了一点。

多了AppConstants接口类、MusicPlayService类(音乐播放服务类,本版本的重点)

其他的一些改动就不再多做说明了。

完成效果:
在这里插入图片描述
在这里插入图片描述
程序可以运行,可以扫描出外置存储卡上的全部MP3音乐,用服务和广播也能显示出来,也可以进行播放,本版本的功能实现。

第六个版本的基于存储卡音乐播放器V0.6是本次实训的最后一个项目,也是本次实训的最终版本。V06版本的功能是在V05版本的基础上添加一些功能(启动界面类,播放模式可选,进度条可拖拽),本次版本完成的功能基本上与我们手机上音乐播放器的效果差不多了,可以进行音乐的播放,也能选择是顺序、随机还是单曲循环播放音乐,音乐的进度条也能进行拖拽,甚至还能启动界面。

第六个版本的比第五个版本的多了三个功能,也多了一些相应的代码类的xml文件:启动界面布局资源(activity_splash_screen.xml)、播放模式按钮模板(custom_border.xml)、
动画相关模板(animator.xml)、启动界面类(SplashScreenActivity)

其他的类也做了一些小的修改,但是这里就不再多做说明了。

完成效果:
在这里插入图片描述
程序可以运行,有启动画面,音乐播放模式功能运行正常,音乐插入进度条可以进行拖拽,本版本功能实现。

本版本与v05版本相比添加了一些功能,也是一个比较综合性的项目,把本学期安卓学习的大部分内容都结合起来了,比如说补间动画的运用,还有界面的跳转,也有一些新学的的内容,比如说进度条的可拖拽的实现等等。本次实训第一阶段的项目到v06版本就结束了,通过本次的实训我还是学习到了很多新的东西,也了解了做一个比较完整的项目的过程其实还是比较的多并且繁琐的,而且有些地方写错了一点整个项目就运行不出来,所以还是比较考验人的细心程度的。

本次实训到这里就结束了,后面还有第二、三阶段的音乐播放器要做,但是是个人看自己的能力来做的,所以我在这里就不做说明。

从本次实训中我学到了很多在课堂上学不到的东西,学会了做一个相对完整的功能性较强的APP需要的具体的步骤,还有其中相应的知识,比如如何显示一首音乐的进度条及其时长,如何让进度条变得可以进行拖拽,如何从存储卡上扫描出指定类型的文件等等等等,总之,通过本次实训我学到了很多新的东西。更重要的是我知道了对于设计手机APP来说,细心是非常重要的,基本上只要写错了一个小小的地方(比如说某个对应的名字)你就完全运行不起,哪怕你其它地方没有写错也运行不起,所以说做一个手机APP必须要认真仔细,不能有一点的马虎。

本次的实训基本上我就是跟着华老师的讲课来做的,这样就省下了很多的精力,因为不需要自己设计要有哪些需求,也不用自己来设计某个功能,所以,本次的实训也让我明白了自己不足之处,没有对于设计一个手机APP的整体的概念,没有办法自己单独的做一个功能性比较完整的手机APP,知识的储备还不足,所以以后我会尽量的多去学习一些新的东西,并把那些新的东西学得很牢固,这样我在做一个功能复杂的手机APP的时候就知道要实现某个效果需要做什么样的操作了。

二、19软件技术1班 - 张仙静

光阴似箭,在这难事多发的一年里,并没有我想象中的那样难熬,转眼这一学期就已经将近尾声。在这学期接触到了安卓手机应用开发的学习,在老师的细心讲解与教学当中,对我在知识上、见识上有了很大的帮助。前期的学习对于我来说有点略显乏味,因为这时讲的都是一些布局配合些许简单的Java代码就能运行的案列,当然布局是不可分割、不可缺少的一部分,学习到了现在线性布局也已经算是我的老伙计了,到了后面所学习的就需要更多更复杂的Java代码才能够实现理想的效果,比如安卓触摸、按键、手势操作事件,这些也算是安卓应用开发学习进程的一个分水岭,往后章节所学习的内容就比之前的稍微复杂了一些,当然,也具有更多的趣味性与挑战性。

经过一天又一天的学习,知识一天又一天的打磨与沉淀,我们在2020年的年底进入了实训课程,它伴随着我对新知识的渴望一齐与2021来到我的面前。新的一年,新的路程,新的学习目标———基于存储卡音乐播放器。完成这个项目对于目前的我来说算是有很大的难度了,因为这又涉及到了安卓核心组件,活动(Activity)、服务(Service)、广播接收者(BroadcastReceiver),并且涉及到的知识点对于现阶段的我来说综合性比较强,比如意图(Intent)、通过意图激活Activitity和Service、发送广播,安卓常用控件:按钮(Button)、标签(TextView)、进度条(ProgressBar)、拖拽条(SeekBar)、列表控件(ListView)、单选按钮(RadioButton)、媒体播放器(MediaPlayer)、图像视图(ImageView),还有继承继承基适配器创建自定义适配器,补间动画、线程等等。知识点涉及繁多,难度相对于之前的安卓学习来说难度提升了不少,但也激发了我的学习兴趣。

在老师的带领下,我们遵循着基于存储卡音乐播放器V0.1逐渐增加功能,在此基石上搭建成一个完整的播放器‘大厦’,这对于我们来说这个实现思路是非常的友好,能够让我们更好的学习知识与消化知识,大部分同学跟的上脚步。通过此次的实训,我收获了很多,一方面是学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自己动手做项目的能力。本次实训,是对我能力的进一步锻炼,也是一种考验。从中获得的诸多的收获,也是非常可贵的,是非常有意义的。在此次实训中还锻炼了我其他方面的能力,提高了我的综合素质。首先,它锻炼了我做项目的能力,提高了我独立思考问题、自己动手操作的能力,在学习的过程中,复习了以前学习的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目也使我更加具有协作精神。

为其十几天的实训在忙碌中结束了,虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的实训中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在实训过程中,和同学们相互探讨,相互学习。实训过程中,也十分感谢老师的细心讲解。这次实训不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习之前的那点知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。

实训后发现自己所掌握的知识还不是那么的全面与牢固,对实训项目还有些感到疑惑,甚至有点头大的感觉,没有很好的理解类之间是怎样配合并完成工作的,这也恰恰说明我之前的学习不是那么的稳固,对每一个知识点,每一个组件,每一个控件都没有好好的了解透彻,以此实训为告诫,我打算以后以如下几个方面进行提高自己的能力。

  1. 上课方面
    不浪费课堂的每一秒,专心跟着老师的脚步,在理解中、在疑惑中、在不断吸取知识中飘过代码的海洋,给自己打下牢固的基础知识。
  2. 课外方面
    多去查阅资料,学习相关的知识,学习课上没有学到过的,没有讲解很透彻的知识点,全方位打造自己的知识系统。

三、19软件技术1班 - 张娟圣

本次的实训项目为基于存储卡音乐播放器,从v0.1到v0.6版本,由简单到复杂,循序渐进,一步一步的实现到最后的第六版本的功能。
第一版本的是最简单的,实现了播放存储卡指定目录里某一首音乐的功能。
第二版本是在第一版本的基础上增加功能设置:
1、添加了一个进度条,动态显示音乐的播放进度。
2、添加一个标签显示音乐播放的当前位置(格式——mm:ss)
3、添加一个标签显示音乐的播放时长(格式——mm:ss)
第三版本是在第二版本的基础上增加功能设置:
1、添加一个音乐播放列表(显示歌名)
单击某一首音乐就立刻播放,播放进度清零,显示当前音乐的播放时长。
2、添加一个【上一首】与【下一首】按钮
当前音乐为第一首时,单击【上一首】按钮,切换到最后一首音乐。
当前音乐为最后一首时,单击【下一首】按钮,切换到第一首音乐。
当某一首音乐播放完毕后,会自动切换到下一首音乐播放。
第四版本是在第三版本的基础上增加功能设置:
1、创建方法能扫描存储卡上所有mp3文件(采用递归算法)
2、用自定义应用程序类存放全局数据和方法
3、利用异步任务来完成耗时的存储卡扫描工作
第五版本是在第四版本的基础上增加功能设置:
1、创建应用程序常量接口保存广播频道常量
2、在音乐播放器应用程序类里添加两个属性
currentMusicIndex
currentPosition
访问它们的方法
3、创建MusicPlayService来完成音乐的播放、暂停以及切换工作
4、利用广播来实现MainActivity与MusicPlayService之间的通信
第六版本是在第五版本的基础上增加功能设置:
1、添加启动画面(SplashScreenActivity)
2、添加音乐播放幕式功能:顺序播放、随机播放、单曲循环播放
3、将进度条(ProgressBar)改为拖拽条(SeekBar),用户通过拖拽可自行设置音乐播放进度值

安卓开发我觉得很有趣,学习安卓就好像是剖析了一些我们日常接触的一些软件。本次实训的项目就是音乐播放器,虽然说本次实训前面的代码都是老师带领我们一起做的,但是,我从中还是学到了很多知识点。本次实训我认为很有意义,不仅提升了自己的知识、能力,还了解了我们平时所用的音乐软件。第六版本的完成是我跟着老师的博客做基于媒体库音乐播放器完成的。

即使跟着老师敲代码,在一些步骤上还是会出错,我在过程中遇见了如下几个问题:

  • 遇见的问题:无法打开sdk中的montor.exe,不知其原因。

  • 解决办法:经过百度之后发现之前安装软件的时候没有进行相应的配置,我进行了相应的配置后打开了montor.exe。

  • 遇见的问题:进入montor.exe后,storage下的emulated文件不能打开,找不到存放音乐素材的存储卡位置。

  • 解决方法:虚拟机要用google API的才能打开emulated/0/music目录,第一次打开还需要获取权限(adb root \ adb shell)。

  • 遇见的问题:运行时虚拟机未显示音乐列表,程序不能使用。

  • 解决方法:发现未在项目清单文件里设置安卓应用的授权访问外置存储卡。

  • 遇见的问题:播放按钮,下一首按钮、上一首按钮无法使用。

  • 解决方法:发现是按钮的代码写错了,未做更改。

本次的实训项目,我认为比以前的实训相对简单。知识方面储备还是不足,希望能够多学习更多的知识,实操是很重要的,记忆不能够完全靠背书本,实际操作才能够记忆更多。对本科还是很有兴趣,我会继续学习本科的。

本次实训项目v0.1到v0.6版本全部完成,所有功能均已实现,效果图如下:
在这里插入图片描述
本次实训,是对我能力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是非常有意义的。我能学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原来,学的时候感叹学的内容太难懂,现在想来,有些其实并不难,关键在于理解。还锻炼了我其他方面的能力, 首先,它锻炼了我做项目的能力,提高了独立思考问题、自己动手操作的能力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。

我从中理解到开发人员最重要的一点就是细心。对于每一天和一大堆数字打交道,绝不能出一点点错,要明白失之毫厘,差之千里,零点零几的差别,有可能造成与实际很大的距离。日后我会不断提升自己的能力,不断学习,制订学习的计划,努力去实现每一步,从中学习,了解不足之处及时更改不足之处。

四、19软件技术1班 - 雍仲杨

大二上期已经渐渐接近最后的尾声了,本次的实训任务是安卓app的创建【基于外存储的音乐播放器】,在这次项目的完成过程中我承担的角色自然是一个软件开发者的身份,起先在V1.0版本到V5.0版本是在老师的带领下完成的,期间项目的完成过程很详细,是由浅到深逐步完成的,在第一个版本中,内容很简单也很单调,通过存放音乐资源文件到DDMS中然后通过开发软件AndroidStudio来进行导入完成,这一次任务很简单也很轻松通过一个暂停与播放按钮来完成对音乐的播放功能,“基于外存储的音乐播放器V2.0”是在V1.0的基础上进行完善的,期间增加了新的功能与控件内容——进度条(ProgressBar)功能,能够完全地显示出音乐的播放进度显示,“基于外存储的音乐播放器V3.0”是在之前的版本上增加了能够播放上一首与下一首功能的新版播放器,在这一次的项目中我遇到了一些困难,关于在播放器的选择上,代码出现了困难,不知道如何获取音乐列表中的内容,最后仍然是在华老师的带领下得知通过定义一个音乐列表与一个适配器的方式来将所获取的音乐存放在一个数组之中,然后透过get方法将数组之中的内容获取出来,“基于外存储的音乐的播放器V4.0”与“基于外存储的音乐播放器V5.0”同样也是继承上一个版本的基础上完成的,本次的任务是添加了一个可以自由切换音乐的功能,也可以选择音乐的播放,代码也是越来越复杂,写久了也难免出现一些枯燥感,尤其是在晚上。最后就是“基于外存储的音乐播放器V6.0”这是本次项目的最后一个版本,可以说这是一个继承了前面所有版本的优点,可以自动切换、选择性播放音乐,同时本次任务是华老师留给我们自己来写的,最大的不同就是多了一个开场动画以及音乐的播放模式可单曲循环、随机播放等新功能,刚开始我是一脸懵逼不知道从何下手,后来逛博客园的时候看见了类似的做法,于是就获取了下来,自己尝试着做没想到效果居然能够完成,顿时觉得很有成就感,通过创建新的ui中的动画播放类以及布局文件中新的动画播放资源达成效果。最终的成果是一个比较完美的音乐播放器。通过这次的实训项目结果来看,自己的确拥有了一定的独立完成能力,但是有一个缺点就是时间的控制上明显是存在缺口的,无法好好分配时间导致有些任务的完成上显得太过于迟缓,还险些没能完成任务,下来以后打算借这个寒假的时间好好锻炼一下自己对代码的熟知程度,提高自己的创作能力,其次在进步方面我学会了如何去构建一个软件开发的时候思路,一个架构。或者是说一个软件需要先去知道用户所需然后初步在脑海中架构出一个模型,然后从简单入门到慢慢对一个软件进行功能的添加与升级,然后慢慢修复bug,其中对于本次实训来说,逛博客园给了我很大的帮助,解决了很多问题,不仅仅是现在,平时也是这样,一些有意思的东西都能找到,一座丰富的知识宝库。

本次实训任务圆满结束,我最大的收获就是将自己模仿成了一名软件开发者,体会了一次项目的制作流程,其中遇到了很多困难,也解决了很多困难,甚至有些时候枯燥无比,无聊至极。但是坚持到最后才知道,看见自己亲手写下的代码占据了整个屏幕的时候,真的觉得自己干了一件很了不起的事情,从中得到了极大地鼓励,也许作为一名软件开发者就是孤独的,只有耐得住寂寞才会成就一番伟业。以后我得学会坚持下去,学会慢慢成长。其次,在本次任务的完成过程中我的组员也给了我很大的帮助,在这期间出现了种种小问题,尤其是那种由于粗心写漏了的代码,不仅仅是我他们都犯过同样的错误,于是我们互相进行检查挨个挨个排查出错误,在这期间我们培养了彼此之间的默契感,团队的帮助永远胜于一个人的力量,在这短短十多天时间中我们慢慢磨练出了一种无形的默契,也许从最开始就已经开始出现了这种默契感,总之这一次的实训给了我很大的收获。对于自己的不足我想只能通过多去敲代码多去了解代码的含义才会有所提高了,期待下一次的实训项目,一定会展现出一个不一样的自己。

五、19软件技术1班 - 杨宇浩

在实训期间,也遇到了许多的问题。

  1. 其中随着不同版本的需求增多,编写的文件也变多,需要熟悉各个文件的作用,方法里的各个变量的作用。学习了老师的代码,和同学讨论各个需求,查找了许多网上的资料。但是还是对其中的方法的逻辑有看不懂的地方。
  2. 学习的是安卓开发的基础,网上很多的资料都看不太懂,查阅资料的时候带来了很多问题
  3. 和同学在项目沟通上存着问题,导致很多地方花费了很多没必要浪费时间
  4. 各种马虎和粗心导致本来逻辑没错的地方,把代码写错
  5. 不习惯写注释
  6. 学习的热情不够等

完成了基于储存卡的音乐播放的6个版本的项目,虽然有许多代码还不完善,代码格式不规范,代码不够简洁,存着稳定性扩展性不足等诸多问题。但是各个需求的功能基本也都是能正常运行。

实训总结:学习,复习了安卓开发的流程,掌握了安卓开发的基础知识,了解团队合作的重要性,面对任何困难也不要畏惧,多查资料,和同学讨论,请教老师,最终都是可以解决的。通过这次的项目开发让我体会到了开发的不易,开发过程中和同伴的合作是多么重要,开发过程中必需要明确目标,有目标才有方向,才能通过不断的改进来达到,开始做项目时东搞一下,西搞一下,反过来什么都没有弄完,因为学习的是基础网上很多的相关代码也开不太懂,查找资料方面也存在很多困难。开始在网上查找安卓的APP启动动画时,发现了很复杂和繁琐的启动动画的方式。弄了半天也不行,最后在同学的帮助下最终完成了启动动画的效果。很多的基础学习的并不牢靠,导致很多地方要想很久。写代码应该多去练,只有实际去写,才能发现自己的不足。又因为现在手机变成了每天接触最多的工具。而安卓系统又是开源的。优势自然很明显。这是一个短期内不会被淘汰的技术。在现在这只信息大爆炸,知识井喷的年代,不断的学习才可以在当前的技术洪流中站稳脚跟。而这样一开始,老师就给我一种耳目一新的感觉:这老师上课带劲啊!不过也就仅此而已了。老师花了一下午的时间着重介绍了老师所在的公司,以及我们接下来三周的实训计划。接下来一周实训之后,这个实训在老师的刻意营造下,尽量模仿公司的氛围。而让我感受最受的就是:凭事实说话。就是无论要下什么结论的时候,都要拿得出能够说服人的数据。这是我在第一周中感受最深的一件事也是我学到的第一件事。说话下结论要有真凭实据在这次项目中,本着利用自己擅长的部分,加工加点的完成了接口实现模块并实现所有的单元测试。为项目后续进度提供了较为完善的后台数据、接口服务。每个项目开发的过程,都需实事求是、踏实做事。不为面子,虚报自己的能力,能做什么能做多少、都要根据自己的职业能力来下定论。遇到技术问题,自己能独立解决就独立解决,不能就及时向他人求教或自己查找资料自学。在项目开发中若有自己比较好的意见(先自己确定以目前技术是实时可行的、对项目开发或功能实现有利的意见),要向项目管理和项目其他队员提出,看是否采纳。学习安卓开发让我涨了不少知识,虽然并没有深入了解安卓的相关知识,平时也没有深入的专研。但安卓开发的实用性和有趣性是有的。也感谢华老师这一个学期安卓开发这门课的教育。

六、19软件技术1班 - 杨超

在期末的实训过程中,我们所需要完成的项目是音乐播放器,这算是我们一个学期以来,基本上运用到大部分所学知识点的一个项目,在实训中也遇到了各种各样的困难,有知识点上的,也有个人原因吧。

再最初的实训中,刚开始嘛,涉及到的东西较少,跟上老师的步伐来也能跟得上,听课的难度也不算大,而且在实训的时候是把整个项目拆开来实现,每个小项目中包含一部分的功能,然后后期在前一个小项目的基础上,添加更多的功能,最后实现整体的项目需要,越到项目的后面,涉及到的知识越多,从易到难,层层递进,比一次性的在同一个项目上完成所有功能更容易学习,更容易分开理解每个小项目实现的功能,后期项目再在前期项目的基础上实现,也能更好的去复习一次前面项目实现的功能和过程,能更好的建立起一个完整项目实现的步骤,该先完成什么功能,然后不断累加,实现整个项目的完善。项目功能的分开实现最后再汇总,也能更好的理解整个项目中各个功能实现的逻辑思维,在后期遗忘时,打开一个小项目里面实现的一个小功能,远比打开整个项目,看着密密麻麻的代码脑袋发昏要好的多,分开看也更好的理解,有些时候,分开的代码能看的懂他的逻辑思维,知道为什么要这样去写,但是和在一起,成了一大串,看起来就头疼,分开能懂的,合在一起就不知道怎么回事了。

在实训过程中,老师带着我们一起去实现,从一个小的功能,到一个大的功能,再到所有功能组合再一起,一步一个,遇到的问题也能及时的解决,跟着老师的思路总比自己像个无头苍蝇一样乱撞要好太多。

在实训过程中,综合性比较强,遇到的问题也是接连不断,就比如,在写的时候遗漏了一句看起来普普通通的代码,但是你运行整个项目,它就会直接给你死掉,查找错误也比较麻烦,而且往往自己看,自己测试,很难去找出来,这时候就需要找一个朋友或者老师帮着查看一下,他们往往一眼就能看出来哪里存在问题,当局者迷旁观者清嘛,在代码的编写过程中也是这样。代码的缺少,上下定义属性的不一致,通过logcat基本上都能很好的解决问题,最难的是你代码没错,但是逻辑错了,关键的一两局代码位置写反了,这才是最伤心的,在logcat里面也没给报错,弄起来一般都的卡上半天,然后再一个不经意间恍然大悟,白白浪费大把时间。往往也能遇到一些跟代码无关的问题,比如我在运行项目时,有些时候启动了项目,由于代码存在问题,然后死掉,关闭运行中的项目之后,它就会显示握手失败,编码存在问题等等标志性的提示,然后你下一次运行项目就直接无法运行,还没运行起来它就会自动关闭,网上百度说电脑显卡驱动有毛病,但是我在驱动精灵上看我的显卡是最新的,也很正常,重启电脑这个问题又不存在了,又能再次运行项目,这个问题到现在都没解决,出现这个问题的时候就是最搞心态的时候。还有就是在运行项目的时候老师使用的是API24,需要去给monitor权限,我觉得麻烦,然后就用了API23,也遇到了一个问题,就是你在Drawable下面放入图片的时候,你运行项目他会报错,说找不到该图片的存在,路径有问题,但是你的图片就放在那的,怎么可能找不到呢,后来经过查询得知,在Android7.0也就是API24以下的手机里面找不到该图片,解决办法也很简单,只需要把Android切换到project查看drawable,因为在drawable下面存在很多不同的drawable,我们放图片一般是放在drawable24下面去了,重新复制一份放到drawable下面就能运行了,也不会报错了,在以后的项目里面再也没有遇到这个问题,也不知道当时怎么搞的,不过多遇到点问题也是好事,以后再遇到就知道怎么去解决了。除了学习中遇到的问题,就是生活上的问题了,在实训的时候,刚开始还好,兴趣勃勃,但是接连着不空隙的上实训就有点疲乏了,上午上完实训,下午接着来,就有点耐不住了,听着听着就心不在焉了,不过也再强逼着去听,不过显然效果不怎么样,只能说听是听了,但是要问为什么这样写就不知道了,在这种时候我就喜欢在下课或者老师讲到一个地方停顿的时候,我自己去搞下一步需要怎么做,然后自己写写,或者构思构思,然后等到老师讲的时候,看看跟我想的出入怎么样,虽然每次都有点惨不忍睹,但是兴趣重新提起来了,也有利于听课的状态嘛。

实现的完成度还是算可以的,在每一个小项目讲完后,运行起来都能达到和老师一样的效果,偶尔也会遇到一两个小错误,但是都很好解决,解决了就能达到效果了。但是在V06的实现中明显就困难起来了,因为是我们自己做嘛,把剩下的启动动画,拖拽条,还有播放模式完成,没了老师的讲解就全靠自己去尝试,通过不断的去调试解决问题达到效果。在启动动画时没什么难度,就写一下界面,在弄一个补间动画来实现图像的旋转就成了,也就是几个角度的问题,拖拽条也问题不大,把进度条progressbar改成拖拽条seekbar,在接口里面定义一个常量,然后在服务类通过接收器计算一下它当前拖拽的所在进度就行了,难度是播放模式那里,弄了半天也没弄明白逻辑顺序,然后准备先放一放,弄一下第二三阶段的实现,但是偶然发现在讲稿里面有播放模式,然后就借鉴了一番,顺带把自己拖拽条的代码修改了一下,看上去更简洁明了,而且在里面启动界面什么的都有,偶然间的惊喜,顺利的完成了播放模式。整体运行的效果也能完成老师的效果。

在整个实训中,遇到的问题多种多样,但同样解决问题的办法也多种多样,以前都是分开讲的各个方面的知识点,没有融会贯通起来使用过,在实训中就很好的把大部分的知识运用起来了,但在服务类和广播接收者的运用还是不够熟悉,还有很多的不足。还是就是个人自身的问题也很大,有时候就是按捺不住开小差的心啊。各方各面都还有很大的提升空间。

七、19软件技术1班 - 幸亮

通过这次实训让我领略了安卓开发的魅力,虽然才学习了一学期的安卓开发,但我还是学习到了很多知识,特别是这次实训,基本是综合了这学期的很多知识点,大二上期学业已经开始慢慢接近尾声了,在这一学期的安卓学习中有轻松的时刻也有为了作业和实训熬到凌晨两三点才睡觉的时候,安卓开发也陪我度过了完整的一学期,就算以后不从事这方面工作,它也会在我生活中留下浓重的一笔,刚接触安卓这一块的时候我觉得安卓非常的简单,特别是各种基本布局的时候,我便开始不那么认真,可当我学到后面才发现还是有很多需要花时间才能搞定或者花时间都不一定能搞定的东西,例如很多服务类,交互类,链接数据库等等,如今人们的生活中处处都有安卓的影子,人人都有手机,人人都需要安卓app,所以我相信这个行业应该还是很吃香的,毕竟这是与生活相关比较密切的,还记得最初安装Android Studio的时候遇到的很多困难,搞得我想放弃,后来询问了安装好的同学们,整整安装了两天才弄好它,不知道查了多少资料,遇到了多少麻烦才解决了这一大开端的难题,后来就是在一些课的课后作业中遇到的困难,也是经常上百度才能找到答案或者是在csdn里去找一些一些案例然后慢慢地模仿操作,尤其是在写实训代码的时候,我是完全严格按照老师的代码顺序来操作,先写布局文件以及设置相对应的图片或者是字符串资源,然后就是进入对事件处理界面中进行对事件的处理。

此次实训最难的就是6,0版本,首先就是在0.5版本基础上增加启动页更改ProgressBar为SeekBar,SeekBar 是水平进度条 ProgressBar 的间接子类,相当于一个可以拖动的水平进度条,大多数代码基于0.5版本,启动后延时4.5秒启动意图跳转MainActivity并且自行销毁后面就是修改部分了,其中activity_main.xml进行了修改。

然后是max min,这是指进度条粗细这玩意是ProgressBar的间接子类,如果不需要别的自定属性,可以直接改0.5版本的ProgressBar为SeekBar改id后就不用管了。其他位置的代码变动不多主要在app子包常见应用程序常量接口 - AppConstants里添加,然后在app子包,在里面创建音乐播放器应用程序MusicPlayerApplication中定义用户修改进度及播放模式接下来就是MainActivity的修改定义播放方式,其余代码都没有变动。至此为止,0.6就实现完成了。以上就是0.6更新的内容,简单介绍了SeekBar是什么并且更改0.5版本的ProgressBar为SeekBar,加入我自定义的颜色,按钮什么的。加入判断播放模式,除此之外没有什么更改。

通过这次实训我学到了很多英语知识,每次老师取的名字都是非常的贴切。学习到了上网寻找帮助,寻找解决问题的方法,还有发现了很多网站,这些网站里面全是各种大佬,各种资料教程,例如菜鸟教程,b站等等,里面去找类似的代码进行模仿,查资料等。对于个人而言,学习安卓或者是任何软件专业的科目都需要强大的自律性,短期可能看不出来什么,但是日积月累能带来的影响却是很大,就像我们的实训项目音乐播放器一样,最开始很简陋,随着实训地进行,版本的更新,功能的不断增多,也开始像模像样起来。

此次实训我还是有很多不足的地方,例如上课不是很认真,因为觉得可以下来在写,可是这种拖延就是最拖累我的地方,导致实训上课时效率很低,下课后去写也是断断续续。还有意识到我很多基础知识还不是很扎实,假期应该能全部补回来,总的来说问题也不是很大,大多功能都能实现,希望下学期能更进一步吧。

八、19软件技术1班 - 吴钊

  1. 基于存储卡音乐播放器V0.1
    这个版本作要写的是功能:播放存储卡指定目录里某一首音乐,这个版本所写的代码不多但是遇到的困难也有,差不多都是权限的问题,刚开始导入音乐的时候导入不进去,后面去修改了权限后,就可以导入进去了,虽然说代码不多,但是还是容易出差错。
  2. 基于存储卡音乐播放器V0.2
    第二个版本是根据第一个版本来改的,功能就是比上个版本多了一个进度条能显示时长,添加了线程,初始化播放器等一些代码,在做这个版本的时候老师在创建包时,没有认真看,导致创建包时位置没有创建对,在这个地方耽误许多时间,在其他地方就没有其他问题了。
  3. 基于存储卡音乐播放器V0.3
    第三版也是在第二个版本上增加或修改代码来实现,功能:列表显示存储卡指定目录里全部音乐,显示播放进度与音乐时长,在吸取了第二个版本犯的错误,在这个版本创建子包是就没有创建错误,在创建视图的时候不知道快捷键,导致写代码的速度跟不上老师所讲的速度,后面再同学的指导下知道了,到了这个版本稍微有点难了。
  4. 基于存储卡音乐播放器V0.4
    同上,功能:列表显示存储卡全部音乐,显示播放进度与音乐时长基于存储卡音乐播放器v.01,这个版本遇到的问题就有点多了,在耗时工作执行后那个板块遇到的问题最多,系统总是说有空指针,导致程序一直启动不了,其他的好像没有什么问题了。
  5. 基于存储卡音乐播放器V0.5
    功能:列表显示存储卡全部音乐,显示播放进度与音乐时长,播放任务交给音乐服务类来完成,利用广播接收器实现界面类与服务类之间的通信。这个版本遇到的问题在于写完代码过后运行不起,在后面自己参照着老师的案例一步一步的去排错,排了两次才在主方法里面找到错误。怪自己没有细心仔细的去写代码,但凡认真点也不至于,花多的时间去排错误。
  6. 基于存储卡音乐播放器V0.6
    功能:添加启动画面,添加音乐播放模式功能:顺序播放、随机播放、单首循环,将进度条改成拖拽条,用户通过拖拽可自行设置音乐播放进度值。列表显示存储卡全部音乐,显示播放进度与音乐时长,播放任务交给音乐服务类来完成,利用广播接收器实现界面类与服务类之间的通信。

第六个版本刚开始的时候还不知道怎样去写,到老师说的把第二阶段和第三阶段做出来能多加分,我就去把第二阶段的做了出来,发现这里面恰好有第六版所需要的的代码,参照着老师的案例,拿着第五版的代码,在里面修改,因为第六版是在第五版的基础上增加了加载界面和播放模式,只需要在合适的地方把需要的代码写上去,经过几次的修改,最终做出来了第六版,这次也算是自己独立写出来的程序,所以在遇到困难的时候多动动手和脑,能让你发觉到解决问题的方法,总能在网上查询到你所需要的东西,多动动手反正自己也不会吃亏,也能提示自己的敲代码能力。做第二阶段时,参照着老师的案例做出来,就是运行的时候他总说该程序停止运行。在这个点上也有许多的困惑。

通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,经过这次的实训我也总结出了自己的不足,学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。在代码这块还是有所欠缺,在平时缺少动手能力总是等着下来了在敲,上课三心二意的,不认真听讲,总想着下来去完成它,可是到了课后却又不想做,一直留着等想到了才回去动手做一下,刚开始的时候还会跟着敲,平时也会去提前去预习,好像到后来有点懒了不想去动了。要不是这次的实训我也没有那么大的动力,想着去把他做完。想到自己动手做出来一个程序,感觉自己挺开心的……

这次实训,我们更多学到的是不懂就要问和自己应该尽自己的全力去尝试,哪怕失败,也要尽自己的全力,和身边的同学一起探讨而不是抄袭,团队合作和发挥团队意识,最后在自己的努力下终于运行成功,这种感觉美不可言,心情愉悦至极,有很强的成就感。

最后,我自己感觉这次实训的收获还是很大的,我相信在不久的将来我们会有自己的一片天空。

九、19软件技术1班 - 王志宇

这次关于基于储存卡的音乐播放器的实训项目,可以算是这学期安卓学习所有项目的一次综合练习。在这次项目中我们需要用到需要完成(读取储存卡里的歌曲)(播放,下一首,上一首)(进度条可以控制音乐进度)(可以选择需要的播放方式等)。需要运用的知识有(布局方式,按钮事件,触摸事件,单选框,广播和接收等)。开发流程按照先写视图后写方法的方式完成。大概可以分为新建默认项目的类型。选对应的布局方式,线性布局更加适合音乐播放器这种布局,获取虚拟手机的读写权限,将歌曲导入到Music的文件包,将项目所需要的各种图片导入到项目的相应位置。编写主布局文件,和创建上下暂停的相应选择器,顺序随机单曲的播放形式,配置项目清单,然后编写主方法文件。

当然在编写项目的过程中不可避免的会遇到各问题如在放入音频文件时会打不开strong文件夹下的music的项目,其中的原因就是有可能没有赋予他相应的权限。解决办法也很简单你只需要使用安卓7.0的虚拟机就能很好的解决这个问题。

也有如有一些代码敲得太快而导致出错、和同学沟通的不到位导致自己理解出错是项目报错、查阅网上资料但解决不了问题等等其要他的粗心或其他小问题所导致的。所以我们在编写项目时一定要认真仔细不能图快!否则会导致贪图一时的快使你后面慢慢的来查那一个小错。当然我们对待项目也要富有热情不然你会觉得写项目会是一件枯燥乏味的事情。
一些以前没有接触过得知识也是很重要的,虽然可能之前并没有太多接触甚至干脆还没学,但想到就是一个小小的音乐播放器这种常见的软件都会遇到的东西我们却不熟悉,挺让人感觉有点担忧,感觉得好好接触一下这些功能了,好在这次实训之后这些东西都慢慢熟悉了。这也是我变得更好学了。

但这次实训还是有一些问题的,其实最主要的还是有的东西以前没有接触过或者只是稍稍接触了一下。比如service的功能,之前学习的知识只是对它进行开启和停止,对它有什么作用都不怎么了解,这次突然就让它独自进行音乐播放,当时对我的冲击还是挺大的。以及后两个项目里的读取媒体库也非常新鲜,联网更是第一次接触,但和服务器之间的数据交换我还是一知半解,大概知道是怎么回事,但想要自己写出来的话还是必须翻资料的。虽然这些东西很新鲜也很有趣,但有时候也会导致暂时无法理解但必须得写完,就照着实训手册抄代码,这样下来可能有点丧失兴趣。

这次实训对我的作用还是很大的他教会了我有些东西你不去碰它那你就只能一直不会,如果你去尝试去实践你会发现它其实也并没有你想象中的那么的难,就像在生活中一样如果你一直逃避你所需要面对的责任那么你会越来越害怕,只有当你去勇敢承担你的责任时你才能成长起来,虽然你可能会失败但是你一定回学到东西的。比如我在这个实训项目中就学到了怎么在安卓应用中获取储存卡中的内容还有怎么解决权限不够的问题。所以说我们都应该去做作业和学习,不然你就只能一直不会。

十、19软件技术1班 - 王益山

这次实训主要是老师带着我们做项目,从0.1版本开始基本就是照着老师教的做,其中我主见不足,且欠缺经验,但是在课余查过很多资料,按照实训内容来推断。下一步应该是制作基于网络的音乐播放器。这个的话按我理解。应该要加api接口来获取音乐。或者自己建一个本地服务器。后期再改进那种。我承担的角色其实就只是一个学子。真正分配到我头上的任务就只有0.6版本。

我主要就在0.5和06版本进行过自主开发。

0.1版本----在0.1版本时期,因为java版本不对。导致DDMS打不开,在导入音乐时卡了一会,最终搞定后。因为没认真上课没注意要在清单文件授权读取外置存储卡。导致程序闪退N次其他都没有什么问题。

0.2版本----在0.2版本时期增加了进度条和音乐时长

因为疏忽大意,导致时长没添加上去(没记错好像是只显示右边那个结束时长,没显示左边那个时长)。为此翻看了老师代码和我自己的代码对比了一遍才找到错误。

0.3版本----在0.3版本时期要加入列表控件。但是我在列表控件填充方面学的很不好,导致我不知道怎么将列表填充出来,(出洋相)。然后老师教了后,晚上下课了。由于当天0.3没教完。老师让课后自己研习一下。后面就把别的基础的东西都弄完了。(没记错,好像这个版本最开始也弄错了时长的控制,只显示了一边的时长,另一半没显示)才睡的觉。第二天又根据老师教的去修改了才算彻底完成了0.3版本。

0.4版本----0.4版本是要求去扫描存储卡上的所有.MP3文件了。

这个时候就很好做了,在老师的带领下基本没遇到什么问题,就是我不知道是我写错还是老师您教的有点问题,在扫描音乐时好像本地没音乐,会报错。

0.5版本----0.5版本时由于控制音乐播放更改为广播与服务。并且上课有点打晃,后面老师让自己完善时浪费了一些时间。

而0.6版本一开始也将我难住了。因为我不想循规蹈矩。我不想弄得一模一样。在代码开发方面经验不足的我。为了将单选组去掉换成一个按钮花了我半个多小时去网络上搜索怎么判断一个按钮单击事件的定义。后来还是灵光乍现。改成定义数字。才搞定了音乐播放模式的判断。

至于seekbar这个东西。只是在菜鸟教程看了一下就搞定了。毕竟这玩意是ProgressBar的子类,也就是ProgressBar的属性都可以用。就不用改变太多就能加进去。 而且他还有自己的属性就是:android:thumb,和定义背景颜色。

单独在Drawable中弄一个sb_thumb.xml里面定义上自己喜欢的颜色什么的就行了。

除此之外。我自认为我最终制作出来的0.6版本。根本就不是个完整的本地音乐播放器。
真正的本地音乐播放器。应该是扫描全盘。然后排除时长过短和时长过长的音乐。并且上下一曲的单曲循环也写错了。按照使用习惯。上下一曲应该是能单曲循环的。也就是说,在单曲循环模式。应该是执行上下一曲。并且在更新音乐后。应该能继续进行单曲循环。我思路如果没错的话。应该是要将单曲循环拖出去单独定义。

还有就是。实训项目制作的软件在目前最新安卓版本11 API30这个版本。他根本就不读目录里的音乐。这点我估计可能是权限不足。

并且我还要想制作一个配置文件或者什么。在第一次进入APP扫描后。将内容添加到配置文件。在第二次进入就不再扫描音乐。直接读取配置文件。

并且通过本次实训。我发现我在列表以及适配器方面都有很大的欠缺。

通过本次的实训也有很多收获,至少知道了如何将自己所学和要制作的东西结合起来。而且有问题不会,在去百度搜索时,收获很多。。有时也问同学和老师,毕竟去网上搜索,要是搜的问题不够直观,搜索到的内容也是乱七八糟的。

攻克难关这方面,我自认为我还是比较坚持的。

然后在实训后。我也发现我好像离开AndroidStudio后如果没有提示,我好像编写代码都难,毕竟AndriodStudio你输入代码太会有一点提示出来。换别的比如eclipse可能我就抓瞎了,出现这种问题就表明我对于代码,对于语句的记忆不够深刻。

大体上,我觉得我安卓开发基础学习的还算行,但是不够细心,很多时候报错都是因为我写错了什么东西或者根本没给别人定义功能然后去点击那个按钮,那报错是必然的,但是在同时,我又不知道去查看logcat导致我一脸懵逼。后来学会了查看报错。终于是在代码之路上正式启程!然后由于没认真的学习JAVA。

导致我安卓学的也不太顺畅。好在老师够耐心,教学也够细致。课后还能看项目代码来学习,补漏。可以还能去搜索下别的前辈,学长的笔记。在这次实训就将平时学习的东西都融汇了大半,我收获良多。

十一、19软件技术1班 - 王人杰

不知不觉中的实训已经接近尾声。虽然时间很短,不过我确实学到了一些我觉得有用的东西,并且是平时上课学不到的东西。实训时间很短,确实很短。原本刚开始,乃至之前听说有为期三周的实训的时候,都觉得,这样的实训不过就是走过场罢了,能学到什么东西呢?所以一开始也没当回事。

就这样,带着这样的心态,开始了实训。因为第一天周一上午没有课,下午,才算是正式开始了三周的实训。一开始听老师讲课的时候,感觉很舒服啊,噼里啪啦一讲一堆,不过我就喜欢这样的,听着爽埃平时老师上课的时候都是讲一句顿一顿,或者一句话反复琢磨半天,这样的话,虽然老师的出发点是好的,是为了让学生更容易理解,但这样的话,教学的整体进度就下来了。而且就算是一个知识点反复讲,也不见得能就精通了这个东西,或者说对这个有多么理解。反而容易让学生产生一种懈怠的情绪。

我不一个人做的原因有这么几点:首先,一个人做太没有挑战性了,为了完成任务而做项目,没意思。第二点:团队的成员对参与这个项目比较积极。不管怎么说,我的团队小组成员就算基础很差,但只要是真心的想要学习的,想要把项目做好的,那我就不应该拒绝他们,因为一个小小的拒绝,可能会对别人的一生产生巨大的影响,而这个影响似乎不是积极的。所以,我觉得我应该尽我所能去帮助我的小组成员。第三点:我想锻炼一下,作为一个小组负责人,我的职责是什么。我应该怎么做才能充分发挥小组成员的能力。我甚至自己都没有参与核心代码的编写。我既然决定要帮助我的小组成员,那么我就是真心实意的帮助我的小组成员,而不是敷衍,也不想让我的小组成员觉得我是在敷衍他们,那么我就把真正重要的东西交给我的小组成员,这样让我的小组成员感觉到自己受到重视,这样也可以更好的激励我的小组成员。

虽然,或许这样短短的几天不能够改变一个人太多。但或许我可以给他们在心里种下一颗积极的种子,或许以后,只要一点点阳光,一点点水分,这颗种子就可以发芽,破土而出,成长为一个坚定的信念。我的项目还是不能运行,我也不知道原因也很苦恼。我想,通过这次实习让我认清了自己的很多不足和缺点。第一个就是缺乏工作经验。因为自己缺乏经验,很多问题而不能分清主次,还有些培训或是学习不能找到重点,随着实习工作的进行,我想我会逐渐积累经验的。第二是工作态度仍不够积极。在工作中仅仅能够完成布置的工作,在没有工作任务时不能主动要求布置工作,若没有工作做时就会松懈,不能做到主动学习,这主要还是因为懒惰在作怪,在今后我要努力克服惰性,没有工作任务时主动要求布置工作,没有布置工作时作到自主学习。

扎实的专业知识是提高工作水平的坚实基础.在学校学习专业知识时,可能感觉枯燥无味,但当工作以后,才会发现专业知识是多么的重要,因为在日常工作中要处处用到。要想提高我的工作效率,工作质量,很多知识只是知道是远远不行的,而是要精通。作为一个IT人员必须要有过硬的专业知识,要拥有较强的学习能力。时代在不断的发展,不断地进步。而信息行业的变化更是无比迅速。所以我们每时每刻都不能停下学习的脚步,我们只有通过不断的学习来充实自己,完善自己,才能在工作中更好地发挥自己的水平。

十二、19软件技术1班 - 王丹婷

大二上学期过的很快,可能是因为疫情的原因然后导致今年都过的云里雾里的然后结束了。在选择java的时候还是有想过认认真真的学习的,但是可能是坚持了两个月之后开始慢慢放松自己。慢慢的没有上课好好的听讲了。在安卓的第一节课的时候,就是安软件。安软件真的好麻烦,尤其是jsp的!它真的是又要下还要配置一堆东西,其实也不是麻烦,就是有些时候配置的路径不对,或者下载的地方没放对,然后就要找很久,然后就会耗尽耐心,然后放在那里想等一下再来,然后下一次来的时候就忘记了上一次的事情,但是我还是安装好了的。第一次上安卓课,等运行出来的那个页面出来的时候,还是很有成就感的,跟上了老师的步伐,然后才运行出来的。然后上课也有好好的听讲所以运行出来还是挺开心的,后来学习的东西越来越多可能就有点力不从心了吧,整个上午或者整个下午的上课,还是很容易让人感到疲惫的。虽然老师上课很激情,我也觉得挺吸引人的,但是有些时候就觉得人已经出窍了,好像就听不进去了。这学期学习了很多布局和常用的控件之类的,我觉得让我跟着老师的节奏来我就会,如果让我自己独立完成的话有很多时候就觉得力不从心了,就是很多都记不熟然后很多就忘记了。就不能独立完成。可能是自己还是比较缺少这种独立然后融会贯通的能力吧,就,还是需要继续努力啊。希望下学期的我,能好好的跟上老师的节奏,尽量不跑神,然后很多时候课堂的东西其实还不够,还需要我们下来继续学习,这就更加需要我们自己独立去完成了。还是要经常看看书看看博客,这学期刚开始我还比较积极的向老师提问题,然后后来就慢慢不了,更多的时候就是百度或者在老师的博客上面再跟着走。所以还是要继续努力才行。开学这段时间以来我们又学习了很多新的知识,整体感觉还挺可以的。老师说我们的进度比其他班的慢多了,但是其实对我而言还是讲的挺快的了。这段时间的学习让我明白了构造方法的应用。知道了重载与返回值类型无关。我们按照老师的脚步一点一点的慢慢来还是学习到了很多新的知识,也会给我们时间去练习课堂上的知识,会及时的练习到。还是很好的。

下个周我希望能够尽力跟上老师的节奏去学习新的知识,空余时间在寝室或者图书馆能够多多了解到有关JAVA的知识。丰富自己的知识面,拓宽自己整理好上课的笔记,下来多多温习。这次的实训前面五个章节都是由老师带领着我们完成的。所以虽然经常有问题,但是也都还好,因为每一步都是跟随着华老师步伐来的,就虽然还是有时候会遇到困难,但是都还是比较好的解决了。然后V06是我们自己完成的,就出来了不少的问题(我其实有一个困惑,为什么这个打字反映这么的不灵活,这让我的1500非常的有压力啊,好卡啊,救命)然后也会出来一些我不懂也不知道怎么解决的问题,这个时候我就会去问问亲爱的同学,还有亲爱的百度,虽然很多时候给出来的答案一知半解的,但是还是比较能够解决我当时的一部分问题了。我觉得学习代码,就是要不骄不躁的心情,以及毅力。才能学好代码,你要是慌张了,就更加运行不出来了。所以我们要在写代码的时候投入自己的全部精力,聚精会神的加入到代码的完成当中

十三、19软件技术1班 - 滕配

转眼间,一学期已经从我的时间中溜走。不知不觉,我已经学习了一学期的android studio,这学期的安卓应用学习,让我受益匪浅,时间总是在不经意间悄然离去,在这短短的安卓项目实训就这么快结束了,这次实训让我们学到很多课堂中学不到的东西,因为这次因为考试我们的机房被占,停了5天的课(包括周末中),老师让我们私下完成基于存储卡播放器v0.6,其实私下完成其实挺好地因为这样我们遇到问题只能自己解决,也让我们明白了做一件事肯定不是一帆风顺,没有困难就没有进步,勇敢和坚持将会带领我们走向成功的驿站。

通过这次安卓实训巩固了四大组件、进度条、线程、播放接收者、服务、活动、按钮等等使用与运用。运用基于音乐播放器从开始V0.1到V0.6,在敲代码的过程中从模糊的知识点到慢慢地真正理解代码意义所在,在上课的时间跟着华老师敲代码,实现播放器的功能,但是会遇到不理解代码的使用方法,在过程中也出现很多问题,有时候请教华老师有时候自行解决,实在自己不能解决我才找老师解决,因为当我们解决一个问题又收获一个知识点了,这也是意外的收获。

在我看来,写代码的烦恼与枯燥,但是自信心可以激发我们前进,华老师带着我们写由浅到深、从简单到困难,也让我明白了每一个项目阶段需要自己动手去完成一个个任务,并享受完成的成就感;还有自信心,这样不仅加深我对知识点的掌握与运用,还让我们拥有一次难忘的实训经历。

在写第一阶段项目之前,华老师带我们写服务、启动与停止服务、绑定与解绑服务、启动服务传递数据,创建服务、注册服务、广播接收者(创建、注册、通过意图发送)、发送与接收广播、进度条等等,这些都是分开讲解滴。老师讲得非常详细、每次都带着我们一起敲代码,因为接触的是平时没有学习过的知识,所以老师不仅带着我们写博客,而且课堂上教我们反复运用哪些知识点,增强了我们对新知识的掌握程度。在写第一阶段的实训项目的时候,写代码都是跟着老师敲的,写完后几乎都发现不了什么错误,在跟着老师写的时候没的太多的思考,直接跟着老师敲的,很多时候写完了之后发现的一些错误都是代码敲错了之类的小错误。到了基于存储卡音乐播放器V0.2出现的问题没得好大的毛病,在基于存储卡音乐播放器V0.1基础上添加了进度条、播放音乐的当前位置、显示播放时长因为是跟着老师敲的所以在本讲中没得什么大的问题。基于存储卡音乐播放器V0.3在基于存储卡音乐播放器V0.2基础上增加功能了下一首、上一首、自动切换到下一首音乐播放,因为慢慢深入了,不得不得边敲边思考为什么这样写,这些代码的含义是什么?思考下一步老师写干什么?老师边敲代码旁边又注释我觉得这样更好让我们理解代码的含义,有些代码一遍又一遍出现让我们更加增强了我们对新知识的掌握程度,很喜欢华老师这样讲课方式。而且华老师讲课中很详细。

在基于存储卡音乐播放器V0.6因为环境因为华老师让我们自己完成但是华老师发一个模板出来,让我们自己在基于存储卡音乐播放器V0.5基础上完成播放模式(顺序、随机、单曲循环、拖动进度条、动画效果),其实一步一步慢慢地来,加上有华老师的博客的帮助下成功地完成了。

本来想在基于存储卡音乐播放器V0.6基础上添加一个下拉列表菜单,但是在默认排序与按标题排序和按时长排序中访问媒体库,获取音频游标对象读取排序设置的时候出现许多的问题,需要声明id类标识符、音乐显示名称、音乐标题、音乐时长等等,发现把专辑图片拷入存储卡,mnt/sdcard/Music里,其专辑图片会不自动放进另外路径里面,而且路径没有变后缀名也没有变化,在自己破溃下没有坚持下去放弃了。虽然心中不情愿,从而发现自己不足之处。

我这次实训我遇到一个奇葩的问题,他报错是这样:我上百度找了很久了很久发现原来是我的电脑开了热点所以终止我的程序运行,是不是听起来很奇怪,当我把热点关闭了就可以运行出来了。

这次实训可以说是收获满满。无论是知识方面,还是习惯方面都得到了极大的提升。写代码要的是自律,在很多时候你可以蒙骗老师,但是你骗不了自己,所以一定要自己去尝试,自己去敲,这样你就可以发现自己的很多问题,并解决。代码错了不要害怕,重来一遍就是,没有什么可以阻挡我们书写代码的步伐。让我们只争朝夕,不负韶华。

十四、19软件技术1班 - 唐梓杰

在这次实训中,我受益匪浅,从最开始的什么都不知道,然后慢慢开始了解安卓这门学科的魅力,从大一到大二的时间学习python以及java,再到大二开始接触java分支学科安卓,让我更加的理解到了这门学科的魅力这门学科想对我们来说还是非常重要的,在我们大二的几门学科里面,安卓是最重要的科目,比如说对于jsp以及linux还有js来说,我们最重要的科目就是安卓了,这门学科既包含了布局文件代码也包含了java代码文件代码还包含了安卓代码,基本上重要的代码,这门学科都涵盖到了。

在最开始的学习多种布局文件时,刚开始还是很生硬,但是布局文件依旧很简单,只要多花时间就能将其攻破,到后面学习笔记的越来越向后,我们学习的代码越来越难,对于最开始的布局文件还是很简单的,后来开始学习最开始的东西就是控件的移动,再到后面的切换美女图片,再是按钮访问吐司提示,再到学习常用控件的颜色设置,渐变色文字,实现编辑框简单算数功能,设置判断获取输入的值,然后将其计算输出。再到放大缩小图片文件,用xy轴修改数值调整,按按钮切换图片功能实现,用单选按钮和输入框判断,在跳转页面将输入的东西显示在其它的页面上或者输出在页面下面。再到使用Fragment碎片、片段使用手势监听器、手势侦测器实现切换手势碎片功能。再到使用列表视图,使用适配器数据列表项模板等等实现大多数功能。

而在本次的实训中,做的就是基于存储卡的音乐播放器,其分为六个版本,每一个版本都有不同的功能,有些是很细微的改动有些却是大幅度的改动,但是在每一次细微或过大的报错中,我都在同学或查资料的情况下将其解决,然后彻底吸收到了这项内容的知识,这让我受益匪浅,从最开始的功能要求播放存储卡上一首音乐,可切换播放|暂停按钮,显示播放的音乐名,要求窗口有背景图片,涉及知识点有线性布局、标签、按钮、媒体播放器等等。首先我们要先打开sdk下的tools目录中的monitor.bat,再打开我们的模拟机,再启动DDMS找到music目录,将文件拖入music,再将素材文件拖入到Drawable目录,创建按钮背景图片选择器play_button_selector.xml设置背景图片选择器,再在activity_main中写入button控件以及获取歌曲名字控件,并在androidMainifest.xml授权读外置存储卡使用获取外部存储卡文件,再在主界面 MainActivity,首先声明多个变量,再通过资源标识获取控件实例,再给其定义读写权限数组,检测是否有读权限,如果没有权限,那么就请求权限。使用musicDir获取音乐文件存放目录。在主资源文件中使用setText获取到音乐名,如果未获取到吐司提示没有音乐文件。第二版本增加进度条功能,使用ProgressBar进度条控件,然后使用线程功能,设置播放源、设置当前播放位置标签、播放时长标签与音乐播放进度条最大值,给媒体设置播放器注册监听器,设置数字化进度条最大值setMAX,将其获取进度条最大值,然后并到播放功能。第三版本添加上一首歌、下一首歌功能,添加播放音乐播放列表功能,使用到了线程、消息处理器功能,设置按钮绑定到主资源布局,然后使用其调整上下歌曲调整,将播放的歌曲使用get获取到播放按钮之上。第四版本增加了存储卡扫描手机上所有MP3音乐文件(使用递归方法),使用自定义方法应用程序类存放,使用异步任务(AsyncTask)、递归算法(Recursive Algorithm),使用public List<Music> getMusicList()获取存储卡上的全部mp3文件,使用for循环过滤文件,找到所需的文件,编写getMusicList文件获取音乐列表方法,继承AsyncTask创建填充播放列表异步任务类用来扫描音乐进度条,显示扫描音乐标签。第五版本,在音乐播放器应用程序类里添加两个属性,currentMusicIndex、currentPostion,访问它们的方法。涉及知识点广播接收者(BroadcastReceiver)设置广播频道,注册接收广播功能。第六版本,设置一个进入音乐播放器效果,进入播放器循环专辑图片进入,创建布局控件activity_splash_screen设置进入界面,将需要定义的文字定义在上面,其他功能和第五版本相同。

在本学期的学习中,有很多不足,有些基本的东西没有搞懂还是一笔带过了,但是在本次实训中,我也同样遇到了很多问题,但是在多次的练习和查资料中,慢慢的记住了方法的使用,因为有许多东西是一直在使用的所以对那些控件的使用非常非常的牢固。但在本次实训中我养成了坚持的好习惯,不将一个项目做完我就觉得不甘心,一旦出现问题在短暂的气馁中,依然能振作起来,从最开始的生硬到后面的基本熟悉。实训后还是有很多的不足,但在这么长的时间里面,做出了很多改变,我觉得实训还是很值得很让人受益匪浅的!

十五、19软件技术1班 - 谭金兰

虽然时间很短,不过我确实学到了一些我觉得有用的东西,并且是平时上课学不到的东西。实训,时间很短,确实很短。

原本刚开始,乃至之前听说有实训的时候,都觉得,这样的实训不过就是走过场罢了,能学到什么东西呢?所以一开始也没当回事。

android是现在手机常见的一种操作系统,我们在玩手机的时候经常可以看见这个单词,不过,我想很少有人会去弄明白这个到底是什么样的。刚开始接触Android感觉到它很有意思,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例,尽管例子之间的连接比较零散,不过通过这些例子的学习我可以学习到了很多和以前java上相通的思想。

我在为期差不多半个月的实训中学到了很多知识,现在我对这半个月的实训做一个小总结。

  1. 通过半个月的android实习,基本掌握了Android应用程序开发的一般流程。对常用控件基本掌握其用法,对其事件的监听方法也基本掌握。学习Android不仅是对前沿开发技术的了解,也是对编程知识的一次提升。这次我们做的是关于存储卡音乐播放器V0.1~V0.6的项目,一开始听老师讲课的时候,感觉很舒服啊,噼里啪啦一讲一堆,不过我就喜欢这样的,听着爽啊而且就算是一个知识点反复讲,也不见得能就精通了这个东西,或者说对这个有多么理解。反而容易让学生产生一种懈怠的情绪。前五个板块是老师带着我们一去完成的,但在做的过程中也遇到了一些问题,在基于存储卡播放器V0.1中涉及到读取存储卡指定目录里的文件知识点的时候,就因为文件权限问题就花了点时间,原因不是因为命令,而是选择的手机模拟器版本的原因。在android studio7.0以上的版本中只能选择Apis版本。在基于存储卡音乐播放器V0.2中加一个进度条,动态显示音乐的播放进度。添加一个标签显示音乐播放的当前位置。添加一个标签显示音乐的播放时长,使它比第一板块直观一点。在基于存储卡音乐播放器V0.3中1.添加一个音乐播放列表(显示歌名)
    单击某一首音乐就立刻播放,播放进度清零,显示当前音乐的播放时长。
  2. 添加一个【上一首】与【下一首】按钮
    当前音乐为第一首时,单击【上一首】按钮,切换到最后一首音乐。
    当前音乐为最后一首时,单击【下一首】按钮,切换到第一首音乐。
  3. 当某一首音乐播放完毕后,会自动切换到下一首音乐播放。
    在这过程遇到了不少的问题,在创建子包的时候,包名的位置不对,导致了程序运行不出来。在基于存储卡音乐播放器V0.4中创建方法是能扫描存储卡上所有mp3文件(采用递归算法)
    用自定义应用程序类存放全局数据和方法
    利用异步任务来完成耗时的存储卡扫描工作

说明:模拟器存储卡上目录少,扫描很快就完成,几乎看不到等待的进度条,最好在真机上运行程序进行测试。在基于存储卡音乐播放器V0.5中创建应用程序常量接口保存广播频道常量、在音乐播放器应用程序类里添加两个属性;创建MusicPlayService来完成音乐的播放、暂停以及切换工作、利用广播来实现MainActivity与MusicPlayService之间的通信。在基于存储卡音乐播放器V0.6的时候这一板块是我自己做的,我根据前面老师的讲稿就行模拟;老师只给了我们一个实现效果图,它的效果图和第二实训阶段的第一小节很相似,于是我模拟老师给我们的第二阶段实训的项目做,能做出来一部分,但和老师的比较起来还差一些地方。大部分功能能实现。

通过学习Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。例如: 要的布局(或者控件) ,在学习界面中,我发现Android为我们提供了很好的类似反射机制,通过Layout文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样你可以通过java代码直接创建View进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件。

由于这次实训时间较短,对于Android应用程序的高级编程讲的很少,是这次实习中的不足。要想开发一些好的应用程序,还需要更多的知识支持。在做实习最后的项目时,遇到了很多平时没有遇到或者没有特别关注的问题,如常见的Activity忘记注册,对SD卡存取需要权限,细微的错误就可能导致程序运行错误。这些问题只有自己在实际开发中才能体会到并且解决,并且在解决后可以长时间的记住。

十六、19软件技术1班 - 舒江林

  1. 自己承担的角色,分配到的任务是什么?
    自己承担开发工程师的角色,负责开发整个基于存储卡音乐播放器,素材的整理,代码的完善等一系列工作。

  2. 做了些什么?
    完成了基于存储卡音乐播放器V1.0到V6.0的版本迭代,做出来一个完整的音乐播放App,可以播放音乐,获取手机外置存储卡的mp3音乐文件,并获取列表,通过列表和按钮切换、暂停等一系列操作,是一个基本完善的安卓应用。

  3. 都是如何做的?做的流程做详细的描述
    首先在开发工具里面创建安卓项目、把项目里面的目录层次建好,建好对应的包结构net.sjl.student。创建窗口类,然后根据窗口类完成对服务层、dao层的访问,成功读取dao层的数据后在GUI页面当中显示,将每一个窗口用此类方法,先编辑好逻辑代码,再将主窗口和每个页面联系到一起,完成所要满足的需求。

  4. 所做的结果如何?可以图文并茂,不能简单的以“好”,“很好”,“差”,“很差”等来说明。
    完成了第一阶段的实训内容,通过六个版本的迭代,开发了一个较为完善的安卓App——基于外置存储卡的音乐播放器,播放器实现了音乐的播放、切换、通过扫描获取手机存储卡中的音乐文件,并通过列表展现出来,同时可以通过按钮和列表两种方式控制音乐的播放状态——暂停、播放、上下首切换。同时也通过进度条反映出音乐播放的状态和进度,同时可以通过进度条控制音乐播放。并且最后还加了音乐播放器开启的动画界面,并且给音乐播放器加上了播放状态菜单,可以选择随机播放、顺序播放等音乐播放状态。
    本次的实训我们虽然只是做了一个简单的音乐播放器,没有太多花哨的界面和美观的布局,也没有实现音乐播放器的太多功能,但是我们目前做到这个水平是对过去一学期所学内容的融会贯通,我们通过这个实训项目已经可以大致了解到安卓开发的实际过程,对我们再将来,进入工作,开发更加庞大且复杂的安卓项目有着很大的借鉴作用,再将来。
    这个简单的实训项目功能简单、单一,但是对于将来的我们,是一个很重要的开端。

  5. 实训后自己所取得的进步有哪些?技术方面?纪律方面?团队合作方面?领导能力方面?独立攻克难关等方面?
    更加熟练地掌握了安卓的应用,加深了对基础代码的印象,对于系统开发结构,层次逻辑更加熟练,提升了自己的经验。更加深入地了解了安卓的开发与应用。可以更加冷静地处理代码报错问题,找到问题所在,并且正常处理,对于今后的学习有着很大的提示作用。同时也对于稳定自己的心态,起到了很大的促进作用。
    老师通过六个版本的迭代,也让我认识到,安卓开发是一个循序渐进的过程,我们开发任何一个大型,复杂的安卓项目,都是有一个个简单、轻便的小功能叠加而成,这也更需要我们打好基本功,这也,我们才可以,把一个个简单的代码、功能,汇聚成一个强大的、复杂的、庞大的、功能完善安卓App项目

  6. 实训后自己还在哪些方面存大不足?今后打算如何去克服?
    不足的地方就是感觉有时候变量名命名模糊。

对于代码的基本应用不是很熟练,今后要加强基础知识的学习,扎牢基本功。对于程序层次之间、类与类之间的联系不是很能理清楚,容易搞错。今后需要加强思路的理解,借助百度脑图,多加锻炼,弥补自己的不足。

另外 ,本次实训所暴露出来的是,我们在自我思考方面还会存在很大的不足,只是一味地简单跟着老师的代码一遍遍的抄写、复制、粘贴,缺少属于自我的思考,在将来的学习中,要加强独立思考问题的能力,只有更早地面对我们所遇到的问题,我们才可以更快的成长,在不久的将来可以独立面对学习、生活、乃至于工作中所遇到的挑战和机遇。

另外还需要特别注意的是,安卓开发不仅仅是代码的堆叠,更是设计一个作品的过程,我们需要提高自己的审美,知道如何可以做出更好的、更美的布局,在功能完善的同时,也要保证界面的整洁、美观,这样,我们开发的安卓App才可以更好的占有市场。

十七、19软件技术1班 - 刘杰

这次实训我自己承担的角色,分配到的任务是什么?我的角色是跟着老师做了五个版本的音乐播放器,任务是自行完成第六版本的音乐播放器,自行完成第二阶段和第三阶段的音乐播放器。我是跟老师的博客上的一点点完成。第一版本基于存储音乐播放器V0.1步骤,创建应用,将图片拷贝到drawble目录,创建播放按钮背景图片选择器,暂停按钮背景图片选择器,主要实现获取存储卡里面的音乐,在安卓应用上显示播放音乐名,添加播放和暂停按钮,使音乐能播放,在这个版本我遇到的问题就是怎么获取到存储卡上的音乐名,并赋予权限。在第二个版本上给它添加了一个进度条,单击播放按钮,进度条随着音乐时间移动,再次单击播放按钮,进度条暂停移动,再次单击播放,进度条从暂停位置开始播放。这个暂时没遇到问题。第三个版本在第二个版本上添加一个音乐播放列表(显示歌名),添加上一首、下一首切换按钮,可以选择列表音乐单击播放,音乐放到第一首,按一下上一首按钮跳到最后一首,音乐放到最后一首,按下下一首按钮跳到第一首歌,这个遇到进度条没动,按上一首按钮没跳,看老师的博客对比一下就解决了,第四版本在第三版本上添加方法能扫描存储卡上所有mp3文件(采用递归算法),用自定义应用程序类存放全局数据和方法,利用异步任务来完成耗时的存储卡扫描工作,这个也是遇到一些问题,有时音乐没扫描出来,我就去DDMS查看音乐在没在里面,在就检查代码的问题,就完成了。第五版本在第四版本上,创建应用程序常量接口保存广播频道常量,在音乐播放器应用程序类里添加两个属性currentMusicIndex,currentPosition,访问它们的方法,创建MusicPlayService来完成音乐的播放、暂停以及切换工作,利用广播来实现MainActivity与MusicPlayService之间的通信,这回没有遇到问题,一次就运行出来了,写代码就是要细心,有时候步骤不对就不行。第六版本是自己完成的,具体实现刚开始的界面动画效果,对音乐添加新的播放模式有:顺序、随机单曲循环播放,进度条添加拖拉效果。第二阶段是自己完成,老师给了步骤,主要是获取媒体数据库的音乐,这个项目我做出来了,开始是版本问题老是报错,换了一个低版本的就运行出来了,但是还有一些问题,就是它的标题栏没有显示出来,标题栏实现的效果也没有出来,暂时还没有解决。这个项目开始是音乐没获取到程序老是被杀死,后来重新添加音乐,关闭应用重新启动就解决了。第六版本的是实现在安卓应用上登陆获取网络乐库并播放,做这个项目很有意思,对其他的知识也多了一些了解,运用了我学过的一些知识,加深了印象,真正开始做才知道自己还有一些知识掌握的不扎实,今后应该杜绝这些错误,多看一些其他博主写的好的地方学习一下,所做的结果是有一些困难自己想办法解决了,下一次在遇见就不会不知道该怎么办了,还需要具备其他的,比如细心,坚持,心情也要好,不然看着很多报错就不行排查了。第六版本开始也做了很多的准备工作,用老师给的修改音乐标记软件,把音乐的标记都修改好了,在把它们都保存在数据库,需要把原来里面的数据库保存出来对比一下,把音乐的图片也取出来保存在数据库里面,在IDEA里我是一个一个运行来看到底是哪里报错,Tomcat也运行了几次才运行出来,在浏览器输入登录界面是用账号来登录也登不上,修改了就又能登上了,遇到问题不能着急,仔细分析一下就能找到办法,这样一层一层的做就更好分清添加了那一部分的功能,对下个版本就能更好的为它添加新的功能。学过的知识加深了印象,没遇到的也多了一些了解。

十八、19软件技术1班 - 刘宇

我于2020年12月29日开始的安卓实训,实训的内容主要是一个基于读取存储器的音乐播放器,而且回有六个版本,每个版本在以前版本的基础上不断完善和添加新的功能。对于我们才开始接触一学期的我们来说难度还是适中,但是始终还是有很多错误非常的顽固,我能力有所不足,也不敢保证功能全部实现了,但我还是花了很多精力来完成这次的实训。

首先我想说的就是遇到问题应该怎么解决,大多数人都遇到问题下意识百度,甚至不去思考,就直接把报错信息直接复制到百度搜索框中,可能这确实能解决大多数问题,可这样并不会让我们有太大提升,我们应该先看报错信息找出错误的地方,看不懂英文可以翻译,先自己尝试解决,通常的小错误都是由于不细心造成的,如果实在解决不了再去网上搜索,但是很多人并不会真正的用搜索引擎,为什么这样说呢,大多数遇到报错常用的方法就是把一长串报错复制上去搜索,这样确实能解决一些问题,但是有些问题如果你的搜索不够准确,那么完全搜索不到自己想要的,首先就是关键词的准确性,尽量挑重点查找,不要一股脑乱搜,必经搜索引擎也不是完全智能的。还有些问题是很广泛的,例如我在实训时遇到的空指针异常,如果你只是去搜索空指针异常估计完全搜索不出来能解决自己问题的答案。我是怎样做的呢,首先找到空指针异常的那段代码,然后网上搜索什么情况下会发生空指针异常,然后我找到了自己引发空指针异常的问题所在,然后针对性的解决了问题,我还收获了其他会发生空指针异常的情况,融会贯通,以后我就不会再遇到或者遇到了也会很快解决,这便是如何解决这些问题的好方法。

那么这次实训我是如何做的呢,最开始上课时先认真听讲,要先模仿,不要以为有自己的想法就不管老师了,在认真听讲的基础上还要思考,不能只是单纯的模仿,那跟练打字是一样的效果。然后第一个版本做完了的时候,自己下去再重新写一个差不多的版本,这个时候就可以完全开拓自己的想法,尽量拓展功能。

这次实训完成情况如何呢,一共有六个版本,总的来说都完成的不错,其中五个版本功能都完全实现,但是第六个版本老师叫我们下去独立完成,我发现我还是有很多的欠缺,制作出了一小部分功能。这也充分暴露了我如果离开了老师的指导,很多东西都写不出来的问题,这就是典型的没有融会贯通,知识基础不够牢固。

这次实训我的收获如何呢,总的来说还是很学到了很多东西,补足了上半学期落下的知识,特别是基础的布局我总算是都会了,这个实训项目的主要重点还是界面类,和服务类,界面还是很好搞,但是由于我的java基础就不是很好,进一步也影响到了我服务类的编写。还学到了遇到问题如何搜索何解决,如何和班上不熟的人询问问题,上课必须要认真,否则下来补落下的很痛苦很麻烦。

最后,说一下我的不足与改进,通过此次实训,我深刻意识到我还不能全靠自己来单独完成实训项目,自己独立写项目的能力非常不足,必须得通过假期补回来才行。还有在写安卓项目时我也感觉到我其实不是很喜欢安卓开发,也不知道是什么原因,感觉不是很感兴趣,当初选择java方向时是因为java没学好所以选择java,结果跟我预想的不太一样,
但是既然选择了这个方向,我还是想把安卓开发学好。

十九、19软件技术1班 - 刘均

时间真的跑得很快,返校宛如昨天,回家却又近在眼前;又一个学期即将结束,本学期的实训依旧如往常一样,看似简单实则“内藏玄机”。本次安卓实训的任务是编写基于SD卡的音乐播放器,这是一个涉及知识面很广的app,几乎囊括了本学期所学的全部安卓知识。我所扮演的角色自然是一名开发者,一名野生程序猿。本次实训的内容基于SD卡的音乐播放器共有6个版本,程序复杂性与功能多样性随着版本的增高而增加。但在我看来这只有一个应用,前面的5个版本只是为最后一个版本做铺垫,没有它们的存在最终版本的开发难度将大幅度增加。音乐播放器V01-V05版本是跟随老师一起完成的,后一版本在前一版本的基础上续写或修改,创作更高级的版本。

这五个版本都被讲得很细,注释都是一个步骤一行,想要理解程序的逻辑并不难,甚至因为注释较多的缘故还有些简单,但是理解归理解当一个程序代码量太多时也是枉然,想要在没有参照的情况下独立写出的难度不低,忘记方法就是个问题。V01版本功能相对较少,但即使是这第一个版本我也遇到了麻烦;在打开DDMS时被提示端口被占用,端口被占用导致文件夹无法显示那向music目录添加音乐文件自然也就不行,百度许多错误方法之后终于得到解决——在运行模拟器和Android Studio前打开DDMS就可以解决端口被占用问题(先让DDMS使用端口)。V01体现的只是一个音乐播放器软件的本质——播放音乐,不过多了个被处理后的音乐名,在用户体验方面就不是很友好。V02版本在V01的基础上添加了进度条、音乐时长和播放时长,利用线程实时更新进度值。V03版本使用的列表,利用适配器将需要显示的内容映射到列表上进行前台展示,之后利用声明的音乐索引添加“上一首”和“下一首”音乐的切换 ,还可以可以通过点击列表进行音乐切换,在这我就一直没搞明白单击列表上的音乐名它是如何获取到音乐索引进而播放音乐的。V03在运行时也同样出现了问题,应用页面刚刚打开就会被强行终止,一般遇到这种情况都是因为代码写错或者漏写,logcat里也会有很明显的报错。但是这儿却不是,代码反复检查没发现任何问题,logcat报错也没具体指示。那就可能是版本问题了,换了Android Studio自带的AVD果然就能正常运行。网上下载的模拟器运行虽快,但这莫名其妙的问题却真是让人头疼。V04版本是在V03的基础上修改了对SD卡的读取方式,将原来的读取指定目录改为扫描整张SD卡,在刚进软件时展示ProgressBar加载场景,增加了用户体验。V05版本外观上与V04别无二致,但是它的内部却出现了大变化;V05版本更接近于目前网络上发布的音乐播放器,它使用了service将音乐显示、音乐播放、音乐时长和播放进度全部交给音乐服务类(MusicService)完成,利用广播完成服务类与界面的通信,真正实现了前后端的分离。这个版本主要遇到的麻烦就是代码写错和漏写,因为代码量较大排错就有些麻烦,有时logcat的指引对我来说也没那么简单。此外还遇到一个设置了应用图标却不显示的问题,将之与之前没问题的项目进行对照,发现图标图片后面跟着的是(anydpi-v26),将其改为其他几个便可以显示出来。有了这五个版本做的铺垫,这第六个最终版本的完成自然是水到渠成。V06添加应用启动动画,在项目配置文件里将其对应的类设置为首启动,让动画播放完毕之后启动主页面并关闭动画页面,之后将进度条修改为可拖动的SeekBar,添加音乐播放模式切换功能。V06版本添加的功能中,我会写也最为熟悉就是启动动画,它的逻辑也和我想的差不多,当它运行成功时那种喜悦的感觉真的无法言表。这次实训让我发现了很多问题,功底不足,有时候一个小问题也会犯难。对于步骤太多的程序很头大,并不是理解不了,而是方法太多记不住。爱钻牛角尖也是个毛病,有时别人一眼就能看出问题所在。归根结底还是代码写得太少,运用不够熟练。当然,这次实训收获也不少,解决了我以前的不少疑问。实践是检验真理的唯一标准,实训是检验成果的一大标准。

二十、19软件技术1班 - 李杰

不知不觉中的实训已经接近尾声。虽然时间很短,不过我确实学到了一些我觉得有用的东西,并且是平时上课学不到的东西。实训,时间很短,确实很短。原本刚开始,乃至之前听说有实训的时候,都觉得,这样的实训不过就是走过场罢了,能学到什么东西呢?所以一开始也没当回事。

android是现在手机常见的一种操作系统,我们在玩手机的时候经常可以看见这个单词,不过,我想很少有人会去弄明白这个到底是什么样的。刚开始接触Android感觉到它很有意思,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例,尽管例子之间的连接比较零散,不过通过这些例子的学习我可以学习到了很多和以前java上相通的思想。

我在为期差不多半个月的实训中学到了很多知识,现在我对这半个月的实训做一个小总结。

  1. 通过半个月的android实习,基本掌握了Android应用程序开发的一般流程。对常用控件基本掌握其用法,对其事件的监听方法也基本掌握。学习Android不仅是对前沿开发技术的了解,也是对编程知识的一次提升。
    这次我们做的是关于存储卡音乐播放器V0.1~V0.6的项目,一开始听老师讲课的时候,感觉很舒服啊,噼里啪啦一讲一堆,不过我就喜欢这样的,听着爽啊而且就算是一个知识点反复讲,也不见得能就精通了这个东西,或者说对这个有多么理解。反而容易让学生产生一种懈怠的情绪。
    前五个板块是老师带着我们一去完成的,但在做的过程中也遇到了一些问题,在基于存储卡播放器V0.1中涉及到读取存储卡指定目录里的文件知识点的时候,就因为文件权限问题就花了点时间,原因不是因为命令,而是选择的手机模拟器版本的原因。在android studio7.0以上的版本中只能选择Apis版本。在基于存储卡音乐播放器V0.2中加一个进度条,动态显示音乐的播放进度。添加一个标签显示音乐播放的当前位置。添加一个标签显示音乐的播放时长,使它比第一板块直观一点。在基于存储卡音乐播放器V0.3中1.添加一个音乐播放列表(显示歌名)
    单击某一首音乐就立刻播放,播放进度清零,显示当前音乐的播放时长。
  2. 添加一个【上一首】与【下一首】按钮
    当前音乐为第一首时,单击【上一首】按钮,切换到最后一首音乐。
    当前音乐为最后一首时,单击【下一首】按钮,切换到第一首音乐。
  3. 当某一首音乐播放完毕后,会自动切换到下一首音乐播放。
    在这过程遇到了不少的问题,在创建子包的时候,包名的位置不对,导致了程序运行不出来。在基于存储卡音乐播放器V0.4中创建方法是能扫描存储卡上所有mp3文件(采用递归算法)
    用自定义应用程序类存放全局数据和方法
    利用异步任务来完成耗时的存储卡扫描工作
    说明:模拟器存储卡上目录少,扫描很快就完成,几乎看不到等待的进度条,最好在真机上运行程序进行测试。在基于存储卡音乐播放器V0.5中创建应用程序常量接口保存广播频道常量、在音乐播放器应用程序类里添加两个属性;创建MusicPlayService来完成音乐的播放、暂停以及切换工作、利用广播来实现MainActivity与MusicPlayService之间的通信。在基于存储卡音乐播放器V0.6的时候这一板块是我自己做的,我根据前面老师的讲稿就行模拟;老师只给了我们一个实现效果图,它的效果图和第二实训阶段的第一小节很相似,于是我模拟老师给我们的第二阶段实训的项目做,能做出来一部分,但和老师的比较起来还差一些地方。大部分功能能实现。

通过学习Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。例如: 要的布局(或者控件) ,在学习界面中,我发现Android为我们提供了很好的类似反射机制,通过Layout文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样你可以通过java代码直接创建View进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件。

由于这次实训时间较短,对于Android应用程序的高级编程讲的很少,是这次实习中的不足。要想开发一些好的应用程序,还需要更多的知识支持。在做实习最后的项目时,遇到了很多平时没有遇到或者没有特别关注的问题,如常见的Activity忘记注册,对SD卡存取需要权限,细微的错误就可能导致程序运行错误。这些问题只有自己在实际开发中才能体会到并且解决,并且在解决后可以长时间的记住。

二十一、19软件技术1班 - 李红芙

本次实训我们的任务是实现完善:基于外存储器音乐播放器V0.1-基于外存储器音乐播放器V0.6,总共有六个小节,六个板块,每一个版本都比上一个版本多增加实现一些功能。在本次项目的完成过程中我是一个软件开发者的身份,经过一步实现和完善,最终做出一个完整的项目—基于外存储器音乐播放器。基于外存储器音乐播放器V0.1-基于外存储器音乐播放器V0.5这五个小节,都是华为老师带领我们一起实现的,教我们一步一步实现和完善各项功能,而不是一次就让我们实现全部功能,我觉得这样很好。

在完成基于外存储器音乐播放器V0.1的时候遇到一点小问题,这个是老师带着我们一步一步实现的,总体来说没有太大难度,跟上老师的节奏,就很快完成了,在做这个第一阶段的时候唯一遇到的问题就是把音乐放进存储卡目录MUsic中,刚开始我没有找到Music目录,我也尝试了开启它的权限,但是只还是没打开,最后是下课休息的时候,我去问老师,才解决了这个问题,我的阅读权限不够高,就不能打开那个目录,老师用了adb root打开了更高级的权限,帮我解决了这个问题,虽然这个问题很小,但是先通过自己想办法解决,在去问老师这个过程,就让我对这个小问题印象深刻了,以后遇到这样的问题也知道该怎么解决了。

基于外存储器音乐播放器V0.2,这个版块也没有太大的难度,也是跟着老师对第一版增加功能,首先添加了一个进度条,动态显示音乐的播放进度,在进度条的前端添加了一个标签,显示播放音乐的播放的当前位置,格式设置为mm:ss,在进度条的后端也添加了一个标签,显示音乐的播放时长,格式也是为mm:ss。在这一小节中也没有遇到太难的问题。
基于外存储器音乐播放器V0.3这个版块难度上升了一点,它在基于外存储器音乐播放器V0.2的基础上多增加了一个音乐播放列表,显示歌曲名,在单击某一首音乐时进立刻播放,播放进度清零,显示当前音乐的播放时长。还增添了两个按钮【上一首】和【下一首】按钮。当音乐播放的是第一首时,单击【上一首】按钮,音乐就切换到最后一首,当音乐播放的是最后一首的时候,单击【下一首】按钮,就跳转到第一首音乐,当一首音乐播放完毕时,就会自动切换到下一首音乐。虽然难度在一点一点增加,但是感觉编程起来也变得越来越有趣了。

基于外存储器音乐播放器V0.4在基于外存储器音乐播放器V0.3的基础上,做出了一些修改,创建方法能扫描存储卡上所有的MP3音乐文件,采用了递归算法,用自定义应用程序类存放全局数据和方法,利用异步任务来完成耗时的存储卡扫描工作,启动程序就会出现一个扫描存储卡的界面,因为模拟器存储卡上的音乐目录较少,扫描很快就会完成,几乎看不到等待的过程,所以我们就把扫描时间设置得更长一点,这样就可以看到他显示的效果了。

基于外存储器音乐播放器V0.5在基于外存储器音乐播放器V0.4的基础上,修改了一些功能,如创建应用程序常量接口保存广播频道常量,在音乐播放器应用程序类里面添加了currentMusicIndex和 currentPosition两个属性,还有访问他们的方法,创建了MusicPlayService服务类来完成音乐的播放、暂停以及切换工作,利用广播来实现MainActivity与MusicPlayService之间的通信。在老师带着我们一起做的过程中,我们也在一起发现问题,解决问题,这样很好,遇到问题就可以及时解决了。

基于外存储器音乐播放器V0.6,这是整个实训项目的最后一版,这一板块是由我们自己完成实现所有功能,也是这个实训的最终综合版本,它的难度较高,老师只给了我们一个实现效果图,让我们去完善和实现它的功能,刚开始没有什么头绪,我就先去尝试做第二阶段实训项目:基于媒体库音乐播放器,我看到第二阶段的有个界面和第一阶段第六版老师要求我们完成的效果相似,我就想着综合第二阶段的模板和第一阶段第五版的项目模板来进行修改,在不停的尝试和百度下,终于把第六版做出来了,虽然还是有点小缺陷,就是在播放音乐的时候,播放进度值拖动不了,但暂停的时候又可以拖动,我没找到原因,除了这个外,其他功能都实现完成,我认为我在代码上还需强加练习,没有老师带着我们做,就感觉代码很陌生,所以还需强加锻炼,经常练习写项目。

这个项目总体来说我感觉还不错,刚开始时是由老师一步一步引导我们完成更多功能,但老师也没有全部带领我们完成,而是留了最后也是最重要的一版,让我们自行完成,把功能实现完整,这样很好,不仅带我们练习了,也给了我们锻炼的机会,学会自行完成项目。在这个项目中,也遇到了很多很多困难,但是那些困难也在我一次反复测试和百度下,成功的解决掉了,所以还是很开心的,虽然代码很复杂很多,不容易记,但当自己完成一个项目的时候,那个成就感也是很满足的,所以在写代码这条道路上,唯有的就是要坚持不懈,勇往直前,希望我能一次比一次更好。

二十二、19软件技术1班 - 李补都

在老师的带领下经过一段刻苦的实训,终不负自己这段时间努力的。这次Android实训就像是努力的穿过一片打的沙漠,艰苦劳累,面对这片大沙漠是如此的迷茫,不知道方向,只能跟着领路的人走,也不知道走到了什么位置,不过还好 的是还有人带领,这算是不幸中的万幸。

我们这次的实训是单独完成的没有小组,只是因为老师在带着我们做,所难度就下降了很多所以每个人都是这个项目的唯一负责人。

项目分为六个版本,逐步增加功能,直到最后实现全部功能。第一个版本是基于存储卡音乐播放器V0.1,主要的功能是:播放存储卡指定目录里某一首音乐。第二版本是基于存储卡音乐播放器V0.2;其主要功能是:在V0.1的基础上播放存储卡指定目录里某一首音乐,显示播放进度与音乐时长;第三个版本是基于存储卡音乐播放器V0.3,其主要的功能是:在V0.2的基础上列表显示存储卡指定目录里全部音乐,显示播放进度与音乐时长;第四个版本是基于存储卡音乐播放器V0.4。其主要的功能是:在V0.3的基础上列表显示存储卡全部音乐,显示播放进度与音乐时长;第五个版本是基于存储卡音乐播放器V0.5。其主要功能是:在V0.4的基础上列表显示存储卡全部音乐,显示播放进度与音乐时长,播放任务交给音乐服务类来完成,利用广播接收器实现界面类与服务类之间的通信。第六 个版本是基于存储卡音乐播放器V0.6,亲其主要的功能是功能:在V0.5的基础上添加启动画面,添加音乐播放模式功能:顺序播放、随机播放、单首循环,将进度条改成拖拽条,用户通过拖拽可自行设置音乐播放进度值。列表显示存储卡全部音乐,显示播放进度与音乐时长,播放任务交给音乐服务类来完成,利用广播接收器实现界面类与服务类之间的通信。最后一个版本完成,一个简单较基础的基于外部存储的音乐播放器就完成了。

在第一天接触实训的时候,简介就是懵的,不知道改从哪里动手,因为这也是第一次接触这总比较综合,比较大的项目。真的是有点为难我的意思我最印象深刻的就是,把音乐素材考入DDMS中的时候,上课的时候没有跟着老师的节奏走,也不是自己不愿跟着,而是我是真的实在是跟不上老师的步法,结果是想要打卡DDMS的时候,无法真确的打开,我是百度呀,各种的在网上查找资料,但是还是一无所获。所以当天的任务就没有及时的完成,这也是为我之后的实训埋下了不好的,导致我越来越跟不上老师的节奏,没有办法最后我是厚脸皮的问了我的同学,但是他好像也不是很清楚,所以我只能问老师,结果就尬尴了,老师老师我说这是上课的时候他特意的强调了的,真的是非常的羞愧。原来这是因为我的AVD是play的,而想要打开DDMS就要是AVD后是要跟API的才能真确的打开。然后我就重新下载安装了一个新的模拟器,这才真确的打开了DDMS。真的是坎坷不断呀!问题又出现了,里面又找不到music文件夹,所以不能将我的音乐素材成功的考入,这经过请教同学和老师,原来是要授权的,找到配置文件目录 ,然后输入CMD,打开cmd,输入adb root ,然后在输入adb shell,这里就可以 成功的授权了。终于我把我的音乐素材成功的考入到了里面。

在第一版本第一个是比较的顺利的完成了,做完以后还是比较有成就感的。后面的五个版本也是每天就是跟老师敲代码,报错就改错,如此反复,其实我的这就是写项目,不断的改错改错,我都怀疑项目是由改错累成的。项目里面的细节我就不详细的说了,没意思。我还是说这次项目我的感受,收获,发现的自己的不足,我想怎么改正。

我对此次项目的整体感受就是模糊,可能就是因为对知识点的掌握不够牢固,一些理论知识也理解的不够偶透彻完美,所以导致写项目的时候知识知所以然,不知其所以然。所以我写出来的项目好像知识老师的复制版本。而没有服务我的思想,也不是我想要的格式。这是一个很悲哀的事情。总而言之就是对Android着门课的掌握还是非常的遥远,所以啊!我要努力呀,除了努力我什么选择都没有。还有我有着一个致命的弱点,就是我的英语太差,导致在声明变量、给方法起名都是乱取的,这造成了很大的问题,如果过了很多天,回来看我自己写的项目,估计自己都看不懂。在出现一些bug我也不能直接的翻译,而是去找各种软件去翻译,这导致我写项目非常的缓慢。这就造成了速度上的问题。之后我要大量的积累一些干预编程方面的词汇,那是越多越好,我相信这回给我写项目是带了很大的帮助。发现自己在代码格式和命名上不是很规范,这在我阅读自己的代码时带来和很大的问题,希望自己能够尽快的改正自己这个不好的习惯。

这次实训是良好的,虽然在项目中很少体现出自己的思想,跟多的时候是跟着老师走。还好自己态度端着,认真的跟着老师敲代码。也发现了自己的很多不足之处,也收获良多,了解了同学的一些思想,在老师和同学这里受益良多。希望放假回来再看自己的这次实训的项目能够有豁然开朗,茅塞顿开,从中吸取到更多的知识。

二十三、19软件技术1班 - 赖旭龙

时间过得飞快,随着实训结束到来,一学期也迎来了终点,这一学期是安卓陪我度过,由此次总结纪念这学期的安卓时光,本次实训让我了解了安卓开发的大致流程,让我更加熟练的运用各种安卓开发知识,现在大家都有手机,人人都离不开安卓app,这更加促使我想更加努力的学习安卓开发,首先还是要感谢华老师,若不是他极其细心与耐心的教学,我可能就很难学习安卓开发,其次也要感谢我的同学们,帮助我解决了很多问题。

实训第一节课时,老师为我们讲解了我们要做的实训内容是一个音乐播放器,我一听就非常的感兴趣,我一直认为手机上面的音乐播放器很高级,我也是个很喜欢听音乐的人,我便投入进去,认真听老师的讲课,完全按照的华老师的要求与步骤跟着做,当我点击播放,电脑里放出我自己的音乐时,我满脸的激动,甚至想要发给我其他朋友们炫耀,哈哈,然后就被泼了一盘冷水,再后面升级音乐播放器的时候,我的进度条显示不出来,搞得我一度怀疑我是不是很笨,后来朋友们对我伸出了援手,原来是主界面的嵌套出了问题。

还记得这学期最开始的时候老师就要求我们下载Android学习的软件AndroidStudio,而光是下载 AndroidStudio就用了不少的时间,我总共大概下载卸载了三、四次以上吧,第一次是下载好了,无法运行模拟器,我就把AndroidStudio都删了,并没有通过专门的卸载过程,而是一键删除,所以第二次一直都卡在下载过程中,最后终于通过都删除完毕了,我的SDK要单独下载有一次下载一半网卡了,最后运行不起,还有一次迷迷糊糊地模拟器明明运行起了,第二天就又报错,再一次卸载再一次下载,再一次打开老师博客第一讲安装集成开发环境一遍又一遍不知道再第几次中完成了,并且能运行还能帮助同学安装AndroidStudio。

这次实训运用到了很多安卓开发的各种知识,如:线性布局、网络布局、相对布局、帧式布局;学习了常用控件,如:标签、按钮、文本框、图像视图、图像按钮、单选按钮组、单选按钮和复选框、下拉列表、菜单;学习了安卓四大核心组件之一的Activity:使用Activity、事件处理、窗口跳转与数据传递共享参数、文件读写、SQLite应用、解析XML与JSON,简单的学习应用了共享参数、文件读写,学习了SQLite中的利用SQLiteDatabase操作数据库与表和利用SQLiteOpenHelper操作数据库与表,使用自定义视图绘制文本、图形与图像、实现补间动画、实现逐帧动画。

此次实训的我的主要过程是这样的,首先创建安卓项目,然后将MP3音频文件放到存储卡指定位置,能访问媒体库音频数据,然后将图片素材拷贝到Drawable目录,然后创建按钮背景图片选择器例如播放暂停上一首下一首等等,然后设置安卓应用图标,创建文件夹,里面存放动画资源,创建自定义边框配置文件,修改主布局,创建音乐模板,准备字符串资源文件,创建ui子包,将MainActivity和SplashScreenActivity拖进ui子包,然后创建entity子包,在entity子包里面创建音乐实体类Music,在创建app子包,在app子包里面创建音乐播放器应用程序类MusicPlayerApplication,在项目清单文件里个音乐播放器应用程序类注册,创建adapter子包,在adapter子包里面创建音乐适配器MusicAdapter,在app子包常见应用程序常量接口 - AppConstants在项目清单文件里授权读外置存储卡,创建service子包,在service子包里面创建音乐播放服务类 - MusicPlayService,在项目清单文件里注册音乐播放服务,最后再修改主界面类 - MainActivity,就可以运行了,虽然功能没有完全实现,但也不错了。

此次实训我还是有很多不足的地方,例如遇到问题不知道如何解决,导致一遇到问题就容易卡住很久,导致实训效率很低下,下课后去写也是断断续续。还有意识到我很多基础知识还不是很扎实,假期应该能全部补回来,希望下学期能更努力一点吧,加油!

二十四、19软件技术1班 - 匡孝俊

本次实训项目选择的是综合性较强,平常经常运用的音乐播放器为项目目标。需要完成(读取储存卡里的歌曲)(播放,下一首,上一首)(进度条可以控制音乐进度)(可以选择需要的播放方式等)。需要运用的知识有(布局方式,按钮事件,触摸事件,单选框,广播和接收等)。开发流程按照先写视图后写方法的方式完成。大概可以分为新建默认项目的类型。选对应的布局方式,线性布局更加适合音乐播放器这种布局,获取虚拟手机的读写权限,将歌曲导入到Music的文件包,将项目所需要的各种图片导入到项目的相应位置。编写主布局文件,和创建上下一首播放暂停的相应选择器,顺序随机单曲的播放形式,配置项目清单,然后编写主方法文件。

此次实训,也遇到了很多困难。

  1. 本次实训中,所学到的知识偏多。较之前所学,此次编写内容,编写文件有所增加,需要掌握的知识也比较的多。但是,只要跟着老师的思路和笔记,还是能慢慢跟着走的。有些地方查阅了相关的资料,但还是看不懂,只好请教已解决问题的同学或者老师。
  2. 本次实训主要完成播放存储卡指定目录里某一首音乐、显示存储卡全部音乐,显示播放进度与音乐时长等基于存储卡的音乐播放的6个版本项目。
  3. 利用老师上课所讲的内容和老师博客的文档进行编写。虽然有很多代码还没完善,格式也不怎么规范,不够简洁。但是各个基本功能还是基本实现。
  4. 此次实训共6个版本,基本完成

刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构,更方便,视觉上也是非常的酷,在前期我通过的大的Android SDK开发范例大全中的例子以及Android提供的APIDEMOS进行学习,尽管例子之间的连接比较零散,不过通过这些例子的学习我可以学习到了很多和以前java上相通的思相。

这是进入大学以来的第二次实训。这次实训的主要内容是安卓应用开发,所选择的平台是android平台。

通过Android的实习,我们又掌握了一项新的前沿的开发技能,也有了更多的发展方向,这在以后的找工作的过程中无疑为我们增加了砝码,也可以成为我们的兴趣爱好,可以根据我们自己的需要设计一些小的程序。

总之,在这次实习中,我获得了很多东西,提高了自己的编程技巧和编程方法,并且认识了Android应用程序的开发,以及加深了对Java的认识。

二十五、19软件技术1班 - 黄忠宇

时间总是过得飞快,随着实训的结束,一学期也迎来了终点,这一学期是安卓陪我度过,由此次总结纪念这学期的安卓时光,本次实训让我了解了安卓开发的大致流程,让我更加熟练的运用各种安卓开发知识,现在大家都有手机,人人都离不开安卓app,这更加促使我想更加努力的学习安卓开发,首先还是要感谢华老师,若不是他极其细心与耐心的教学,我可能就很难学习安卓开发,其次也要感谢我的同学们,帮助我解决了很多问题,希望大家都能取得优秀的期末成绩。

实训第一节课时,老师为我们讲解了我们要做的实训内容是一个音乐播放器,我一听就非常的感兴趣,我一直认为手机上面的音乐播放器很高级,我也是个很喜欢听音乐的人,我便投入进去,认真听老师的讲课,完全按照的华老师的要求与步骤跟着做,当我点击播放,电脑里放出我自己的音乐时,我满脸的激动,甚至想要发给我其他朋友们炫耀,哈哈,然后就被泼了一盘冷水,再后面升级音乐播放器的时候,我的进度条显示不出来,搞得我一度怀疑我是不是很笨,后来朋友们对我伸出了援手,原来是主界面的嵌套出了问题。

还记得这学期最开始的时候老师就要求我们下载Android学习的软件AndroidStudio,而光是下载 AndroidStudio就用了不少的时间,我总共大概下载卸载了三、四次以上吧,第一次是下载好了,无法运行模拟器,我就把AndroidStudio都删了,并没有通过专门的卸载过程,而是一键删除,所以第二次一直都卡在下载过程中,最后终于通过都删除完毕了,我的SDK要单独下载有一次下载一半网卡了,最后运行不起,还有一次迷迷糊糊地模拟器明明运行起了,第二天就又报错,再一次卸载再一次下载,再一次打开老师博客第一讲安装集成开发环境一遍又一遍不知道再第几次中完成了,并且能运行还能帮助同学安装AndroidStudio。

这次实训运用到了很多安卓开发的各种知识,如:线性布局、网络布局、相对布局、帧式布局;学习了常用控件,如:标签、按钮、文本框、图像视图、图像按钮、单选按钮组、单选按钮和复选框、下拉列表、菜单;学习了安卓四大核心组件之一的Activity:使用Activity、事件处理、窗口跳转与数据传递共享参数、文件读写、SQLite应用、解析XML与JSON,简单的学习应用了共享参数、文件读写,学习了SQLite中的利用SQLiteDatabase操作数据库与表和利用SQLiteOpenHelper操作数据库与表,使用自定义视图绘制文本、图形与图像、实现补间动画、实现逐帧动画。

此次实训的我的主要过程是这样的,首先创建安卓项目,然后将MP3音频文件放到存储卡指定位置,能访问媒体库音频数据,然后将图片素材拷贝到Drawable目录,然后创建按钮背景图片选择器例如播放暂停上一首下一首等等,然后设置安卓应用图标,创建文件夹,里面存放动画资源,创建自定义边框配置文件,修改主布局,创建音乐模板,准备字符串资源文件,创建ui子包,将MainActivity和SplashScreenActivity拖进ui子包,然后创建entity子包,在entity子包里面创建音乐实体类Music,在创建app子包,在app子包里面创建音乐播放器应用程序类MusicPlayerApplication,在项目清单文件里个音乐播放器应用程序类注册,创建adapter子包,在adapter子包里面创建音乐适配器MusicAdapter,在app子包常见应用程序常量接口 - AppConstants在项目清单文件里授权读外置存储卡,创建service子包,在service子包里面创建音乐播放服务类 - MusicPlayService,在项目清单文件里注册音乐播放服务,最后再修改主界面类 - MainActivity,就可以运行了,虽然功能没有完全实现,但也不错了。

此次实训我还是有很多不足的地方,例如遇到问题不知道如何解决,导致一遇到问题就容易卡住很久,导致实训效率很低下,下课后去写也是断断续续。还有意识到我很多基础知识还不是很扎实,假期应该能全部补回来,希望下学期能更努力一点吧,加油!

二十六、19软件技术1班 - 胡桂华

我对于本次实训结果很满意,基本完成了老师所给的要求,同时又学会了不少课外的知识,同时也提高了我自己的查找资料的能力和总结资料的能力,让我牢记了写代码的步骤以及理解代码的基本含义,拓宽了我的基础知识,让我收获颇丰。但同时又暴露了我的缺点,不爱与其他人交流,做事喜欢一个人自己弄,弄不出来又到网上找,浪费了很多时间也没有找到想要的答案,相比之下,我今天下午去问同学,发现并没有想象中那么难,只是一些基础的逻辑就行,而网上的大多数冗长且复杂,还没有多少注释来帮助理解,所以在此改变不爱交流的习惯,如果短时间内无法找到答案就与同学交流相关方法。

通过这次实训,我知道了同伴的重要性,也知道了为什么老师总是要求按小组来进行实训,一方面是为了让每个人完成自己擅长的地方,同时学习其他人的长处来完善自己,增加与同伴的交流机会,同时还能巩固自己已经学过的知识,在这次实习过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为熟练的技术却在此次实践环节中往往出问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,这一切都离不开钻研精神与勤学好问的精神.在人与人相处过程中我收获更大,首先要谦虚谨慎,不能自以为是,认为自己懂得很多,而仅仅埋头苦干,而不向他人请教,工作不但是实践与应用的过程,同时也是学习的过程,我们必须加强与他人的沟通学习,以便获得与他人的交流。识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有

  1. 继续学习,不断提升理论涵养、团队精神
    在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更应该把学习作为保持工作积极性的重要途径。走上工作岗位后,我会积极响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升戗力,以广博的社会知识拓展视野。
  2. 努力实践,自觉进行角色转化
    只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能锻炼人的品质,章显人的意志。必须在实际的工作和生活中潜心体会,并自觉的进行这种角色的转换。
  3. 提高工作积极性和主动性
    实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸每的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。

我认为大学生实习难,就业难,除非你有关系,能给你轻松找到工作,否则就难逃市场选择的厄运。我在该公司实习总结了五个攻略,只能智勇双全,才能在这个社会中出人头地。

二十七、19软件技术1班 - 龚正敏

转眼实训已经接近尾声了,经过一学期的安卓移动开发教学以及日常教学中的知识点累计,我学习到了很多关于本专业的知识点,但是我仍旧感觉自己在学习上差很多,比如在线程知识点的教学上,我们=明显感受到了学习上的困难,在通过课后的研究以及学习后,勉强能跟上老师所讲的内容,但也让我懂得知识是要反复稳固的,这些经验让我在做实训时也给了我我莫大的帮助,此次实训前期开发是在机房中进行的,同学之间可以相互请教学习,但是到后期由于机房被占,所以只能自己在寝室和自习室独立完成,但个人知识点较为薄弱,在进行项目编写时遇到了较多困难,向同学请教时也是一知半解。

本次实训,我们的目的是完善并完成基于外存储器音乐播放器V0.1-基于外存储器音乐播放器V0.6,总共有六个版本,每一个版本都比上一个版本多增加一些知识点,并且增加了新的功能。

在本次项目的完成过程中我是一个软件开发者的身份,通过进一步实现和完善,最后做出一个完整的项目—基于外存储器音乐播放器,基于外存储器音乐播放器v01—基于外存储器音乐播放器v05,这五个版本都是老师带我们一起完成的,教我们一步步实现和完成各项功能,而不是一次就实现全部功能,我觉得这样特别好,可以让我们慢慢的一点一点的掌握知识,这种循序渐进的方式可以让我们更高效更准确的完成任务,就像学习不是一蹴而就的。

在完成基于外存储器音乐播放器V01版本的时候,是老师带我们一起完成的,总体来说没有太大的难度,跟上老师的步骤,很快就完成了,不过主要的问题是在我弄权限的时候,因为我自己的电脑不支持安装Android这个软件,所以每次上课的时候我都要弄一次权限,在弄版本一的时候我很懵,因为步骤有点多,有一点记不过来,开始弄的时候步骤搞错了,后面去问同学才弄好,虽然这不是很大的问题,但是通过自己想办法,然后请教他人,这样一来我对于这部分印象也非常深刻了,到下一次做这个步骤的时候,我也很快就能解决了。

基于外存储器音乐播放器V02,这个版块也没有太大的难度,也是跟着老师对第一版增加功能,首先添加了一个进度条,动态显示音乐的播放进度,在进度条的前端添加了一个标签,显示播放音乐的播放的当前位置,在进度条的后端也添加了一个标签,显示音乐的播放时长,在这一小节中也没有遇到太难的问题。

基于外存储器音乐播放器V03这个版块难度上升了一点,它在基于外存储器音乐播放器V02的基础上多增加了一个音乐播放列表,显示歌曲名,在单击某一首音乐时进立刻播放,播放进度清零,显示当前音乐的播放时长。还增添了两个按钮【上一首】和【下一首】按钮。当音乐播放的是第一首时,单击【上一首】按钮,音乐就切换到最后一首,当音乐播放的是最后一首的时候,单击【下一首】按钮,就跳转到第一首音乐,当一首音乐播放完毕时,就会自动切换到下一首音乐。虽然难度在一点一点增加,但是感觉编程变得越来越有趣,慢慢开始我也有一点着迷了。

基于外存储器音乐播放器V04在基于外存储器音乐播放器V03的基础上,做出了一些修改,创建方法能扫描存储卡上所有的MP3音乐文件,采用了递归算法,用自定义应用程序类存放全局数据和方法,利用异步任务来完成耗时的存储卡扫描工作,启动程序就会出现一个扫描存储卡的界面,因为模拟器存储卡上的音乐目录较少,扫描很快就会完成,几乎看不到等待的过程,所以我们就把扫描时间设置得更长一点,这样就可以看到他显示的效果了。

基于外存储器音乐播放器V05在基于外存储器音乐播放器V04的基础上,修改了一些功能,如创建应用程序常量接口保存广播频道常量,在音乐播放器应用程序类里面添加了两个属性,还有访问他们的方法,创建了服务类来完成音乐的播放、暂停以及切换工作,利用广播来实现通信。在老师带着我们一起做的过程中,我们也会遇到共同的问题,然后一起想办法,最后把它解决掉。

基于外存储器音乐播放器V06,这是最后一个也是需要我们独立完成的项目,同时也是整个实训最终的综合起来的版本,总体来说难度较大,老师给了我们一个效果图,其余的让我们自行完成它的功能,对于我学习的程度来说真的太难了,后来我通过结合前面完成的实训项目、百度、还有咨询同学的方法,慢慢把它完成了。

总的来说,这个项目对于我来说确实很难,刚开始是由老师带着我们一步一步的完成前面的项目,到后面老师留了最后面也是最重要的一部分,让我们自行完成,这样不仅带我们练习了,也给了我们自行发挥的空间,让我们能有锻炼自己的机会,学会自行完成项目。在完成整个项目的过程中,也遇到了大大小小的不一样的问题,好在通过自己的一些办法把它圆满解决了,不得不说在你认真完成一件事情的时候,这件事情本身就是闪闪发光的,它会不断吸引你,因此你也会更加想要去了解它,完成它。同样,我在完成项目的同时也为它着迷,越是有问题就越是想要解决它,这样一来时间过得很快,自己也会觉得很充实,完成这次项目后,我终于能够理解为什么那些喜欢编程的同学可以一学就是一整天,甚至可以废寝忘食。这次项目完成后也让我对编程有了不同的理解,同时也让我对它产生了更加浓厚的兴趣。

二十八、19软件技术1班 - 付文静

通过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自己动手做项目的能力。本次实训,是对我能力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是非常有意义的。

在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原来,学的时候感叹学的内容太难懂,现在想来,有些其实并不难,关键在于理解。

在这次实训中还锻炼了我其他方面的能力,提高了我的综合素质。首先,它锻炼了我做项目的能力,提高了独立思考问题、自己动手操作的能力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有团队精神。

我认为大学生实习难,就业难,除非你有关系,能给你轻松找到工作,否则就难逃市场选择的厄运。只能智勇双全,才能在这个社会中出人头地。

实际上,实训只是接触社会的一个过程,大学生实训的目的应该是为了自己日后的发展,而不仅仅是累计工作经验,然后帮助找到一个薪水较高的工作而已。

在实训中,我严格按照实习规程进行操作。做为一名初出茅庐的普通大学生,我不会放松对自己的要求,我希望用自己一开始的学习热情来对待日后的每一项任务工作。在这次毕业实习期间,虽然经常感到很苦,很累,但苦中有乐,累中有趣,也都表现的非常地积极努力认真。

这次实训内容主要就是安卓应用开发,但我获益不浅,感慨良多。我感受最深的,有如下几点:

其一,实训是个人综合能力的检验。要想优秀完成工作,除了办公室基础知识功底深厚外,还需有一定的实践动手能力,操作能力,应付突发故障的能力,还要对办公室中常用软件都能熟练操作。作为一名工作人员,还要求有较强的表达能力,同时还要善于引导自己思考、调节与人相处的氛围等。另外,还必须有较强的应变能力、组织管理能力和坚强的毅力。

此次实训增强了我毕业就业的信心和勇气。这次实习,我觉得我表现得还不错,许多同学都认为,自己以后进入企业都是可以胜任的。由此看来,我们在大学里还是学到了不少东西,只是感觉不到而已。所以,我们有就业危机感是应该的,但不能过于自卑和担忧,否则会妨碍自己的学习。现在,我们能做的就是多吸取知识,提高自身的综合素质。可以说这次实训不仅使我学到了知识,丰富了经验。也帮助我缩小了实践和理论的差距。这次实训将会有利于我更好的适应以后的工作。我会把握和珍惜实训的机会,在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。最后,我要感谢学院组织的这次十分有意义的实训,使我们学到了很多,也领悟了很多。

二十九、19软件技术1班 - 曾源

大二学习安卓基础知识,最初感受是安卓项目与Python、Java、等其他编程语言运行的方式不同,之前学习那些都是可以在网页展示效果,而它是在手机虚拟机上展示效果,更能贴切地感受代码的具体功能,强烈地好奇手机上其他效果的实现是怎样的代码。

实训的开始先搭建项目,再将音乐素材添加monitor.bat中,并实现能简单点击播放按钮有音乐的播放。其中,添加音频文件的步骤没有听清楚,模模糊糊没有添加成功,通过一系列查网络资源,修改虚拟机版本,结合老师的提醒,最终成功添加素材并运行成功,功能实现,得出结论:虚拟机必须使用23x版本并非Google play。

实训起初是跟着老师所定的项目,一步一步按照思路实现功能,大部分都是边听边敲代码,最后留一小部分自行完成。我承认基础的安卓知识学习得迷迷糊糊,其中是自己的原因,如果整个项目让自己完成,我觉得我直接垮在起跑线,完全没就了。

实训中对平时学习程度要求很大,需要融合各个知识点,其中包括我还不是很会用的有:适配器,感觉是个连接的桥梁;线程,像说“开始和结束”的程序等等都是核心的代码,自己完全是个混混小白,没有认真学习。实训中有遇到很多问题:无法添加文件,无法运行项目等,就不放弃通过查找网络资源,排错,对照代码单词拼写错误,最终还是解决了,毕竟安装安卓环境的过程经历了太多次失败,更加有信心一直坚持,总会有回报。

接下来的功能在创建新项目,原本的代码功能基础上添加展示音乐目录列表,实现自动播放上一首、下一首、选定播放的功能。一层一层叠加效果,更加完善和智能。在这过程中,遇到了很多困难,幸好有老师、同学、网络的帮助,都解决妥妥的,自己也在其中得到了成长,对安卓知识也有一定的理解,虽然还有一些模模糊糊,但希望自己能用时间弥补缺陷。

创建项目的流程总结:新建空模型的安卓应用;将图片素材拷贝到项目目录中;给播放、暂停、上一首、下一首按钮设置是否点击呈现的背景图片选择器;在项目清单文件中设置新添加的安卓应用图标;为主布局资源文件编写代码,呈现各种按钮及其他的控件组合的效果;字符串资源文件中编写text的内容文字;创建音乐名列表项模板,在主布局资源文件的页面中展现音乐整体的列表,可供选择;创建entity子包,在里面创建音乐实体类Music;创建app子包,在里面创建音乐播放器应用程序类MusicPlayerApplication,包括三个公共方法:获取格式时间、生成指定目录下某种类型文件的列表、获取存储卡全部mp3音乐,并在项目清单文件里注册音乐播放器应用程序类;创建adapter子包,在里面创建音乐适配器MusicAdapter;在项目清单里授权读外置存储卡;创建ui子包,将主界面类放入,编写代码,最终运行项目展示效果。也许,会出现各种问题,还是需要冷静面对,通过寻找各种方法,解决问题,最终over。目前实训的项目代码容量比较小,实在解决不了,可以从头再来,为了以后编写更大的项目文件,要养成仔仔细细的习惯,认真的态度。

三十、19软件技术1班 - 陈玲

随着大二的上学期结束了,我们现在迎来了我们的实训,这次实训持续的时间好像比我想象中要短一些,好像一眨眼就过了。因为这是一月份,泸州的天气还比较冷,实训的艰苦,对我来说就是早上不太想起床,因为时间原因,我们的实训课程安排的还是比较紧密,我认为学校给我们安排实训的原因之一就是磨练我们的意志.还有一个我认为这个实训很重要的原因就是它给我们带来的收获很多,一来可以巩固我们的基础,平时上课练习可能没有巩固到的点,在这次实训中就很好的掌握了,第二个就是扩展我们的知识是训中用到的一些东西,可能我们上课没有讲,就需要我们自己去搜索,去学习,增强我们学习的积极性,相信我们在实训中都会遇到各种各样的一些问题,比如那不可避免的bug,这时候是比较考验我们心理素质的,刚开始解决一个bug,要解决半天,可能都没发现他的问题,这对我们处理事情的.能力有提升,我当时遇到这问题的时候,心情很糟糕,放置了半天过后,心情平缓后再去处理它,实训中真的就考验我们平时,对基础知识的理解和掌握。大多数出现的问题可能都是因为我们平时没有很好的理解这个知识点学以致用的前提是学到了东西,这里分享一个小趣事,在我知道我们安卓要实训之后,我就去看老师的博客,尝试着自己先做一些,当时用的是ig,结果到我们实训的时候用的是Android studio 当时觉得自己裂开了,看老师的博客,我的收获还是就是时代的进步,科技的发展,就我们写代码的这个软件,它都在不断开发新的版本,我们自己学习不断学习,才能跟上时代的步伐。还有虽然这次实训遇到了困难,也发现了热心的同伴,我现在才明白,每个人都有自己的长处和短处,而我们不会的地方,可能就是跟擅长的地方,我们要善于倾听,善于请教别人,这是实训中,然后同伴就给了不少的建议和帮助,古人有云,出淤泥而不染,濯清涟而不妖,这种毕竟是少数,大多数人还是近朱者赤,近墨者黑的,身边有一个人爱学习,他就可能会影响另一个人,一群人都在学习这样的环境下,就很容易大家都喜欢学习。很庆幸自己认识的朋友们都喜欢学习,努力上进,积极阳光,让自己有了一个很好的学习氛围,我发现这学期同学们有了很大的变化,我们老师上课比较轻松,有趣,班上的学习氛围也活跃了很多,这次实训不仅帮我们巩固了知识,还让我们学到了很多,之前没有学过的东西,也让我们更了解身边的伙伴,也让我们更了解自己,现在的我不够努力,不够优秀,希望明年的我可以更爱学习,更快乐。

总结一下,这次实训的成果,运行,还是有一些问题,但是这次实训我们分了几个板块,几个版本,每个版本都是对上一次的延续优化,这让我知道一个大项目是如何建成的,它是由一小个一小个板块构成的,但是我自己在规划方面做的不是很好,没有按时完成,相应的版块,博客也写得很匆忙,但是我并不灰心,我觉得人每天都得学习,可能今天我们不是很好,但是不影响我们去完善自己,希望寒假自己能够好好提升自己,开学迎来一个新的自己。

三十一、19软件技术1班 - 陈松林

为期一周的实训结束了,我在实训中学到了很多在课堂上根本就学不到的知识,收益非浅.现在我对这周的实训做一个工作小结。

回想自己在这期间的作业情况,不尽如意。对此我思考过,学习经验自然是一个因素,然而 更重要的是心态的转变没有做到位。现在发现了这个不足之处,应该还算是及时吧,因为我明白了何谓学习。在接下来的日子里,我会朝这个方向努力,我相信自己能够把那些不该再存在的“特点”抹掉。感谢老师们在这段时间里对我的指导和教诲,我从中受益非浅。

本次实习使我第一次亲身感受了所学知识与实际的应用,理论与实际的相结合,让我们大开 眼界,也算是对以前所学知识的一个初审吧!这次实训对于我们以后学习、找工作也是受益菲浅。我会在以后的工作学习中不断要求自己,完善自己,让自己做的更好。
透过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的潜力。本次实训,是对我潜力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有好处的。

在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实训中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。务必在实际的工作和生活中潜心体会,并自觉的进行这种主角的转换。不断提升自我,努力创造业绩,继续创造更多的价值。

我认为大学生实习难,就业难,除非你有关系,能给你简单找到工作,否则就难逃市场选取的厄运。只能智勇双全,才能在这个社会中出人头地。

在实训中,我严格按照实训规程进行操作。做为一名初出茅庐的普通大学生,我不会放松对自我的要求,我期望用自我一开始的学习热情来对待日后的每一项任务工作,此次实习,我深深体会到了积累知识的重要性。俗话说:要给学生一碗水,自我就得有一桶水。我对此话深有感触。

能够说这次实训不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。这次实训将会有利于我更好的适应以后的工作。我会把握和珍惜实训的机会,在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力

三十二、19软件技术1班 - 卢冰洁

此次实训进行了差不多两周。虽说中途因为教室原因停了几天,但是这使得时间更加的充足。而实训的每一天都使我收获很大、受益匪浅,它不仅加深了我对一些理论知识的理解,还使我在理论上对安卓有了新的认识,在实践能力上也得到了提高。

这次实训要求是写六个版本的音乐播放器,每一个版本在前一个版本的基础上进行修改添加新的功能。详细描述一下,第一版本的音乐播放器的功能就只显示播放一首音乐,音乐可以播放暂停,并且显示有音乐名;第二版本的音乐播放器在第一个版本的基础上增加了进度天,可以动态显示音乐播放进度,然后还添加了两个标签显示音乐总时长和音乐播放的当前位置;第三个版本在第二版本的基础上添加了一个音乐播放列表用来显示全部的歌名,随便单击一首歌就可以播放,还添加了一个【上一首】和【下一首】按钮,点按钮可以切换当前播放音乐的上一首(下一首);第四个版本没有添加新的功能,但是在第三版本的基础上做了一些修改,创建方法扫描存储卡上所有mp3音乐,用自定义应用程序类存放全局数据和方法,采用异步任务完成耗时的存储卡扫描工作;第五个版本在第四版本的基础上作了修改,创建了应用程序常量接口保存广播频道常量,在音乐播放器应用程序类里添加了两个属性并访问,创建MusicPlayService来完成音乐的播放,暂停以及切换工作,最后就是利用广播接收器实现界面类与服务类之间的通信;最后一个版本在第五版本的基础上添加了许多新的功能,第一添加启动画面:启动界面类SplashScreenActivity
和启动界面布局资源文件activity_splash_screen.xml。第二添加了音乐播放模式:顺序播放,随机播放,单曲循环。第三将进度条改成拖拽条,用户可以通过拖拽可自行设置音乐播放进度值,这就是六个版本之间的不同。实训的这六个版本其中前五个版本是老师带着我们一起完成的,最后一个版本老师要求自己完成,刚开始写的时候就把布局界面先写好了,但是之后就不知道怎么写了,后面我就先放下了第六个版本去写了老师博客中另外两个阶段的音乐播放器,但是写完后都无法显示出音乐列表,在第三阶段的前半段用Web服务端写的时候可以运行到最终的那个样子,但是写完了安卓的客户端就显示不了音乐。然后我就放弃了,之后我就跟着第二阶段的播放器完成了第六版本的音乐播放器。在自行完成第六版的过程中遇到了一些粗心大意的问题:显示不出来页面,原因是忘了修改项目清单文件中的代码。再就是拖拽条没有效果,最后发现在某个页面少写了一句代码。在完成之后运行看到了效果非常的开心,毕竟差点就因为运行不出来放弃了。所以我也悟出来了一个道理,在遇到困难时先不要放弃,尽自己努力寻找解决办法。

经历过这次实习实训,我们不仅对这学期学的一些内容进行了巩固和深化,更重要的是因为有了实战进行项目开发锻炼动手能力的机会,积累了一笔宝贵的经验。实训虽已结束,但我们的不断学习的征途才刚刚迈出。今后的路还很长,还有很多机会去实习提高,我们要以更加积极的姿态去充实自己,学习,不断地迎接挑战。我期待以后有更多类似的实训,使我们可以多掌握一项技能,也可以让我们在以后找工作中可以有更多的实践经验。学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解安卓应用。

实训结束了,而我也在这次实训中看到的许多自己的不足之处,首先就是知识运用的的不够熟练,在就是知道要写什么,但是就是不知道怎么写才能实现。然后我认为实训是非常的重要环节,它有利于我们巩固专业知识还能使我们对知识运用的更加熟练。

最后我想说虽然我对安卓的内容学的不是很好,但我会努力去学习它,更多的去了解,不懂的就问或者查资料,并对以前学过的内容进行更多的运用,熟悉。

三十三、19软件技术1班 - 周月

通过这次实训,我更加清晰的认识到学海无涯,还有很多东西等待我去发掘。这次实训是我对学的不好的安卓有了更深的理解,虽然还不是很熟练,但还是有了进步。今后,我将更加努力的去学习,去实践,去提高代码编程的速率和程序的可扩展性。

这几个月里学到了的专业知识,只是自己感觉不到而已。对于所学专业,我们不能过于自卑和担忧,否则会妨碍自己的学习。实训是学习JAVA的重要环节,有利于我们巩固专业知识,掌握工作技能,提高就业筹码。

这学期马上就要结束了,这就意味着我在学校的时间只剩下一年多了。想了想如果想在大三能够在社会中找到一份实习的工作,那只能靠这一年多的时间了。

而在这一年多的时间中,我希望我能够对自己的专业能力有所提升,能够接触到未来工作中的案例,而不只是老师与书本上的内容。

三十四、19软件技术1班 - 钱贻康

这次的实训大部分的时间都是在跟着老师一起写,通过指导老师的细心讲解去了解基于存储卡的音乐播放器是怎么一步步完善的。

首先由第一个版本的播放存储卡指定目录中的某一首音乐开始学习。在下载好所需的音乐素材和图片以后,先打开tools目录下的monitor.bat,找到music目录但是发现不能打开发现是权限不做刚刚开始一步步去授权的,后来发现只要在cmd中直接给与adb root权限就行,在拷贝了图片素材之后就创建了播放暂停两个按钮背景图片选择器,写完主布局资源文件以后需要在项目清单文件里授权读取外置存储卡,在主界面声明变量、获取控件实例、获取音乐文件存放目录、获取音乐文件之后就可以启动应用了我们就实现了一个极为简单的音乐播放器。

第二个版本增加了播放进度以及音乐时长,第三个版本增加了列表来显示音乐,第四个版本通过异步任务来完成扫描任务,第五个版本用广播实现MainActuvity与MusicPlayService之间的通信,最后的一个版本增加了一个动画以及可以切换在顺序、随机、、单曲循环的播放模式。

虽然这次的实训我只是完成了基础的第一阶段任务但是我还是有许多的收获 为期一学期的手机软件开发已经结束了,在这次软件设计中我学到了很多,在这学期我把课堂上老师讲的知识都用到了实践中, 从中不断学习,遇到不懂的地方可以问同学和老师,有得到时候会翻阅资料,在网上搜索相关资料去解决所遇到的问题。

在这次的实训完成后我还是更深刻的认识到了自己,发现了自己的许多不足之处。第一点缺乏足够的耐心,做事情也不够细心,所导致的问题就是做事起来毛毛躁躁在写的代码出错以后去慢慢的排错之时会更加的难以发现错误。内心越焦急就越难已找到错误,从而变成恶性循环。第二点不足之处在于不愿意花太多的时间去总结复习。复习可以使自己对于最近时间所学习的知识有更加深刻地记忆,只有对于知识熟练起来了以后,才能将他们更好的运用,或许在当时你的确是学会了如何运用,但是再好的记忆力也是会忘记的,只有记录下来才能保存更久的时间。当自己所学习时的知识。所遇到的问题。去解决问题的经过分享出去帮助到别人的时候对自己也是一种莫大的鼓励。在学习的过程中寻找志同道合的伙伴也是非常重要的一起学习能促进学习的效率,几个人一起寻找解决问题的办法总是会比一个人去解决更轻松。

三十五、19软件技术1班 - 秦龙

这次实训华老师算是一步步带着我们做的从第一版到第五版,这次实训前面都是跟着老师的思路做的所以在教室里做的时候很顺手老师的速度也不快,是想让我们每一个人都跟上,老师将本学期学习的所有知识都放在一个项目里,分步骤来慢慢做好一个项目,这对我们的知识综合能力是很有效的。

先做好一些功能,然后再通过之后的工作来将前面写的东西都综合起来,让我们充分感受一个比较大的项目是怎么写出来的,理解了项目的结构,以后再写类似的项目就不至于无处下手。虽然以前也知道大型项目也不过是一些小功能堆起来的,但知道不一定能写出来,因为完全不知道该怎么对功能进行分配,现在自己动手敲出了一个项目,理解了广播进程之类的通讯和管理功能,完全可以自己一点点做出来,虽然可能还会遇到一些问题,不过比起以前肯定是好多了。

虽然第六版对我来说还是有些难度的但是在同学和室友的帮助下还是把最终的效果给实现了在项目运行成功是那满满的成就感让人非常的舒服,这次的实训让我明白了做任何事不能死脑筋要学会变通,还要懂得团队协作要多与同学老师交流要多学多问才能把所学的知识活学活用,通过此次实习,我仿佛自己一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义,时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的,只要勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的重任,看清了自己的人生方向,成长就要勤于实践,将所学的理论知识与实践相结合一起,在实践中继续学习,不断总结,逐步完善,有所创新,并在实践中提高自己由知识、能力、智慧等因素融合成的综合素质和能力,为自己事业的成功打下良好的基础。

这次实训只是做了一个常见的音乐播放器自己都做的那么困难挺让人感觉有点担忧,感觉得好好接触一下这些功能了,好在这次实训之后这些东西都慢慢熟悉了。

通过这次实训,我也收获了很多,一方面是学到了许多以前没有学过的专业知识与知识的应用,另一方面是提高了自己动手做项目的能力。在做项目的过程中复习了以前的知识并掌握了一些应用知识的技巧,在做项目的时候不能自己埋头做遇到问题也不能一直放在要多交流沟通。

三十六、19软件技术1班 - 童严威

本次实训项目我们的内容为实现基于存储卡的音乐播放器,分为6个版本,每一个版本逐步增加功能,直到最后实现功能 。基于自身能力来讲,自己做这个实训项目基本不可能成功,因为自己的电脑问题,自己电脑处理器为AMD,所以在使用Android Studio时候不能正常运行,导致自己只有用机房电脑来完成这个项目 。

第六个版本添加功能为:添加启动画面,添加音乐播放模式功能:顺序播放、随机播放、单首循环,将进度条改成拖拽条,用户通过拖拽可自行设置音乐播放进度值。列表显示存储卡全部音乐,显示播放进度与音乐时长,播放任务交给音乐服务类来完成,利用广播接收器实现界面类与服务类之间的通信。

基于自身情况。我对于自己的能力很清楚,专业能力基本没有,所以我能做的只有跟着老师的步骤一步一步去做,在这过程中涉及到的知识点我也没有了解,实训过程中自己的状态就是老师做什么我就做什么,我的学习能力不强,知识点我也没有掌握,对于自己做的结果果我也知道,基本上没有效果,对于这门课程我入门都算不上,跟着老师的笔记去做,自己却没有收获到知识点,自己在这过程中所遇到的问题很多,基本上都是问题1.自己对于实训中的知识点不了解不掌握2.软件使用的过程中存在问题,解决方法就是百度。
在整个的实训过程中也不是一点收获都没有,我一直的认知都是,可以不会做,宁愿犯错也不愿什么都不做,虽然在这个实训的过程中技术方面我也没有掌握到多少知识,但是对于其他方面的提高还是有的,懂得了和同学之间的交流与合作,不懂的地方可以请教。

  1. 见贤思齐焉,见不贤而内自省也,遇到优秀的人就要向他学习,遇到有缺点的人就要思考自己有没有这些缺点,在我服役期间一个连队的人有很多,同时就会形成一个比较,各个方面能力素质的对比,自己就会思考自己该如何去减小这个差距,先天的天赋不足,可以用后天的努力去弥补,适用于学习和生活。
  2. 正确看待差距,自己与别人的差距,目标和现实的差距。
  3. 寻找自身的不足.在退伍回来过后自己的性格也变了很多,新的学习内容,陌生的老师和同学,学习能力的差距,我不喜欢和别人交流,遇到的问题也就是自己去解决,不止在这一门课上存在问题,在其他学科上面我也同样存在问题,以前学的东西都忘记了,只有在课余的时候,在网上找网课看看,先把以前的知识点补充起来,也算是有所提高,但是还远远不够,出现了严重的断链,自己的计划就是利用这个寒假,把以前和现在的知识点大致掌握,在下学期的学习上不脱节,把状态调整好,任何事情从不同的角度看都会有不同的效果,大家熟知的龟兔赛跑,兔子因为小看乌龟而输掉了比赛,但是古希腊的学者芝诺曾经提出一个著名的龟兔赛跑悖论,认为乌龟只要先出发,兔子就永远追不上他,他们之间永远存在一个距离,即使这个距离会无限接近于零,但是兔子永远追不上,换个思路思考问题,或许你会获得不同的理解。

三十七、19软件技术1班 - 王春林

安卓开发我算是比较早就接触到了,还记得初中的时候在葫芦侠社区与一众人物研究破解、美化,当时还不知道正经的安卓开发,只会使用文本编辑器,根据大佬的指导一步步更改文件参数,最终实现自己想要的效果,当然无非就是破解简单的软件,或者是去广告。那时的我现在看来还十分的幼稚,专业术语一概不懂,完全是依葫芦画瓢,更别说是真正的Android开发了。今年的Android开发课程弥补了我的无知,至少系统的学习了Android开发。可惜我现在转到了游戏开发,所以对Android开发的热情不如当年。这次实训其实也是浑水摸鱼,自己其实规划的很好,只是把时间浪费了,真正开做了,很多功能都没法实现。

这次实训其实用到的知识还是挺多的,一个音乐播放器听起来还是很简单的项目,但是真正上手就会知道这个还是十分的复杂,做完了其实觉得也还是不复杂。一个播放器无非就是播放暂停,这就是播放器的核心。功能性的就是切换曲目,播放模式,处于美观也加上了进度条,处于功能进度条也就有了拖动功能,至于像歌词之类的,老师不做要求,那也就免了吧,毕竟只是一个基本的音乐播放器。

制作一款软件首要的就是规划项目,我们上面说到了要实现的功能,那么我们就把这些功能放到一个界面,好不好看无所谓了,实现功能是主要。大致做好分区,我们先写好各个功能对应的方法,然后再把大概布局写出来。写完就是整个项目的框架了,我们所说的大框架嘛,这样我们可以更好的去实现对应的功能。

框架搭好了,就可以去网上找些图片素材,无非就是软件图标啊,播放器按钮之类的图片。再一一修改成我们想要的样子,这样就可以放上去。放上去就实现了一个没有功能的软件外壳,只是长的好看,连播放音乐都不能实现。之后就是功能的一一实现了。

当然功能实现也不是说的那么简单,说实现就实现的。前面的播放可以找老师之前给过的资料来对应实现,没有太多难点,可以说很轻松。但是后面老师没有将的部分就很难了,因为网上的音乐播放器开发的资料比想象中的要少很多,像那个播放模式,我翻阅了很多开发资料,他们的开发都没涉及到这个方面,只是做了播放、下一首、上一首的简单播放器。当然也看了不少优质的成品展示,可惜都没有提供源码,但是少不代表没有,尚硅谷的学习质料很齐全,所有功能都可以实现,甚至到后面还有歌词之类的。有了尚硅谷的开发质料这些实现就变得简单起来,毕竟这也算是站在巨人的肩膀上,踩着前人走过的路。其实想想也算是回到了当年搞软件破解的时候,也是如此。

写完之后其实没有那么多成就感,更多的是觉得一种任务完成的轻松感,不如我在网上自学游戏开发,还记得当时控制着角色走出第一步的时候,那时的成就感才是实在的,因为我知道这一步里面包含多少东西,从建模到动画,再到场景的搭建,最后是一行行的代码实现前进后退等等的功能。但是想想其实这些都是一样的,都是在一个简单的按钮下面蕴藏着无数代码逻辑。只是可能做的多了,没有了当年的那种感动。

播放器是很好的实现了,也完成了老师要求的大部分功能,完成这个项目让我明白,一个项目框架很重要,前期的规划更重要,不能直接就上,那样很乱,做出来的东西也不美观,功能可能都不完善。这还只是一个小项目一个人就可以完成的那种,若是遇到了大项目,多人协作,没有一个好的规划和框架,那这个项目也做不好。

做这个项目时,查资料的时候,听到最多的就是命名的严谨性,其实我就很喜欢用拼音命名,因为简单快捷,有时候还会取一些输入简单的名字,但是都是不妥的,做多了就会忘,拼音就算打的是全拼有的时候都要想半天,同时你给别人看,别人根本不知道你个什么意思。英语很重要,这也让我下定决心等下一学期争取考过四级。因为英语命名真的很方便,除非支持汉语命名……

猜你喜欢

转载自blog.csdn.net/howard2005/article/details/112699196