Android做好项目,再去面试(磨砺营马剑威Android)

做~自己de王妃 提交于 2019-11-29 10:12:41

【威哥说】磨砺营靠什么比别人优秀?不仅仅是教学靠谱,老师靠谱,更重要的是咱们在磨砺营做的都是真实的商业项目,由磨砺营自主研发的项目,今天我们就来了解一下咱们磨砺营IT教育的实训项目《磨砺音乐》。

【目标】首先我们要先定一个小目标,来磨砺营学一批磨砺营自主研发的实战商业项目。动动小手收藏转发,让更多人看到。

【正文】1605期的第二个项目实战已完结了,《磨砺音乐》APP正式与大家见面了,本项目中大量运用了经典的Fragment嵌套技术,界面风格走朴素简约风,扁平化产品级设计,我们在乎每一个细节的设计,我们不随便,因为我们只想打造更好的产品。以下小编整理了一截图,注意!睁大你的双眼,不是开玩笑的: 磨砺营 下面整理一下本项目使用到的:

1、jsoup组件

用于抓取网络音乐,分析网络页面返回的数据,你可以理解一个网络爬虫工具,谁说没有服务器就不能实现在线音乐功能,有了它,太赞了。

2、androidannotations组件

本项目全面支持UI组件及事件处理的注解方式实现,你会发现确实节省了好多代码哇,也许你会有疑问,用注解不会影响性能吗?NO,那是你太不了解androidannotations组件的强大功能了,它使用apt组件为我们的注解代码自动生成了原生的代码,性能?决对不是问题。

3、eventbus3.0组件

自从使用了eventbus组件实现事件传递,太TM的方便了,代码简洁不说,让整个逻辑更加清晰可读,当然,我们也在项目中使用了传统的接口回调,俗话说,不懂接口回调的程序员不是老司机,这个必须要用的,即使没有eventbus,我们一样可以完成,只不过有这么好的组件,我们为啥不用勒,一个字,用!

4、design包

design包是android5.0 Lollipop 发布的最具意义的一个版本,重要的原是Material Design的引入,我们在项目中使用design包的TabLayout实现tab功能和侧滑菜单,与Toolbar,DrawerLayout联合使用,界面效率超棒的。

5、xutils3框架

国人写的一个框架,共分为4大模块,网络请求、数据库、图片缓存、组件注解,功能还是很强大的,本项目利用这个组件来实现本地数据库的功能,由于其它功能模块有更好的选择,所以没有使用到,按作者的介绍,数据库功能可以和著名的GreenDao相媲美,研究其源码发现,数据缓存查询功能确实强大,我能说是模仿GreenDao么,希望xutils3的作者不要介意哈,向优秀者学习并靠近,本身就是一种优秀。

6、okhttp组件

本项目使用okhttp组件实现网络数据请求功能,okhttp是当前最主流的网络请求框架,在大多数项目中都在使用,其高度的可定制性是胜出的法宝,只是对于初学者来说okhttp需要自己来封装貌似有点难度,但丝毫不影响我们使用它,要知道磨砺营出来的学员,封装个组件的能力,我说家常便饭的事,你可千万不要觉得我在说大话,因为事实我们就是这样做的。

7、fresco图片缓存组件

在上一个项目中我们同样使用到了fresco组件,当今Android世界最好用的图片缓存组件,我们可以毫不吝啬的这样说,上次也给大家提到fresco是使用真正的三级缓存来实现的,两级内存一级磁盘,下面我们来解释一下这个牛B的三级缓存:

(1)Bitmap缓存

Bitmap缓存存储Bitmap对象,这些Bitmap对象可以立刻用来显示或者用于后处理,在5.0以下系统,Bitmap缓存位于ashmem,这样Bitmap对象的创建和释放将不会引发GC,更少的GC会使你的APP运行得更加流畅。

5.0及其以上系统,相比之下,内存管理有了很大改进,所以Bitmap缓存直接位于Java的heap上。当应用在后台运行时,该内存会被清空。

(2)未解码图片的内存缓存

这个缓存存储的是原始压缩格式的图片。从该缓存取到的图片在使用之前,需要先进行解码。如果有调整大小,旋转,或者WebP编码转换工作需要完成,这些工作会在解码之前进行。APP在后台时,这个缓存同样会被清空。

(3)和未解码的内存缓存相似,文件缓存存储的是未解码的原始压缩格式的图片,在使用之前同样需要经过解码等处理。

8、banner组件

一个还不错的实现图片轮播的组件,一个小组件而已,用用更健康,就不多说了哈。

9、LrcView

用于实现歌词加载的组件,我们使用Jsoup从网络上分析出歌词,再用okhttp下载后交给LrcView组件就可以了,用法也很简单,其实我想说的话,前面如何弄到歌词更是难题,说多了都是泪啊,有兴趣的童鞋可以单独跟我交流交流吧,这里就不细说了。

10、Vitamio组件

一个可以实现大多数音频视频播放、流媒体播放的框架,国人企业的产品,当然我们使用的是免费版的,用法和Android自带的MediaPlayer大同小异。

其它小组件就一一介绍了。

项目总结:

本项目的特点是尽可能的少用Activity组件,大量使用Fragment及其嵌套实现UI界面,原因是播放器项目特殊性,在大多数界面上都要保留播放控制条,Fragment之间的嵌套也会出现各种问题,但都给我们一一化解了,项目中成长了不少,最经典的一句话是:我们把Fragment及其接口回调运用的淋漓尽致。还有就是各个界面的状态同步问题,当然有了eventbus组件,一切的问题都不是问题了,在项目中我们使用了Service实现了后台播放功能,开启服务与绑定服务结合使用的技巧,通知栏功能实现,下载,收藏,播放模式切换等,还有很多小功能实现。最后的感受是:一个完整的项目开发,不仅让你懂得了怎么运用知识,技巧和经验的收获才是更大的。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!