Android阶段性学习总结

前言

最近一直忙着在学习,却忽视了写博客。最近确实是有学到蛮多东西的,而且之前个人觉得每天学习的时间都不够用,哪有时间写博客,现在想想之前这种想法其实挺不对的,怎么说呢,总之我感觉:就算之前学到的东西再多,总会有遗忘,平时学习到的知识要及时的分类梳理,写博客其实是一个很好的方式,正所谓磨刀不误砍柴工嘛。

知识梳理

没写博客这段时间确实是在埋头苦学,知识点和项目在这里我大体罗列一下吧,以后这些代码都会一一的补上。

1.Android四大组件的运用:

这里我感觉不得不提的是,刚开始学的时候,各种博客看了不少,然而要真正熟练掌握这四大组件,还是要自己多动手去做,要从项目中去体会,而不是不动手去做看概念就会明白的,因为这篇博客主要是对学到的大体知识的一个罗列,具体的概念和使用场景我就不谢了,等之后的详细知识点分析再来解释。我个人目前感觉对四大组件的理解和运用场景还是蛮深刻的。

2.android基本界面组件的使用:

这里不得不说,随着Android版本的快速迭代,界面也是越来越酷炫了,目前已经更新到7.0版本了。这里不仅仅是看书,更快的汲取方式便是去google官网和一些开源社区去获取了,这里值得一提的是ListView,实际的开发中也经常用到这个组件,一般ListView是通过adapter来实现界面和数据的绑定,一些简单的ListView用系统自带的就可以实现了,复杂的则要用到自定义的adapter继承BaseAdapter或者其他的供特定场景使用的adapter,不仅仅是ListView,很多的组件例如PageView等都要利用的adapter适配器进行数据与ui的适配,实现界面与逻辑数据的分离。

3.Fragment和PageView的结合使用:

当然这里也是属于界面的部分,很多应用例如:网易云音乐,天猫的详情页等都用到了这种搭配Fragment和PageView的方式来实现界面跳转和交互。因为这样有很好的人机交互效果,所以很多项目中很常见。实现代码不难,主要也是在理解。

4.Android网络操作:

Android提供了HttpUrlConnetcion和HttpClient类用来与服务器进行网络连接并获取数据,这边传输数据有两种方式:get和post,当然相应的,Servelt也有两种获取数据的方式:doGet和doPost,用来处理接受到的数据和返回数据等操作,后者HttpClient在Android6.0以后好像又被废除了,google官方目前推荐的是HttpUrlConnetcion的方式去连接服务器。当然除此之外,还有很多优秀的网络开源框架,例如AsyncHttpClient等,这正是Android开源的优势。

5.Android的线程异步及Handler的使用:

由于在Android中,主线程只用于更新ui,不做其他耗时操作,如果主线程中耗时操作超过5s,则会报anr异常,所以基本上一些耗时任务都是放在子线程中操作,而且子线程不能直接操纵ui,所以这里一般是借助handler来传递数据用来更新ui,handler有几个参数:what一般用来标明数据的有无等,可以在线程中设置,handler中判断,然后arg1,arg2,这两个int的参数用来传递一些int类型的参数,比如时间等。最后还有一个就是obj,这个参数可以直接传递对象,也只需要在线程中给它赋值handler中取到在做强转。当然,Android本身也提供了一个异步的线程框架AsyncTask用来更新ui,调用的时候复写其中的doInBackGround方法,根据不同的使用场景决定是否复写其他的两个方法。

项目梳理

1.基于本地的音乐播放器:

这里综合的运用了四大组件,具体实现的功能:查询本机自带的音乐并以列表的形式罗列出来、点击对应的歌曲播放相应的歌曲、进度条和播放时间按照实际播放的时间显示、支持音乐播放,暂停,上一曲下一曲功能,支持后台播放,多次退出界面再次进入所有组件仍然正常运行。支持拖拉进度条控制歌曲播放进度。
后来其实每学到一点东西都可以进一步完善,虽然知道一口也吃不掉一个胖子,但是我还是希望基本知识点学完以后可以参照网易云音乐的界面,自己写后台模拟一款类似网易云音乐的在线音乐播放器。

2.基于新闻客户端的一个小demo

这里通过网络连接实现了加载图片与文本等信息的一个新闻客户端demo,上下滑动等均无问题,数据均从服务器获取,以ListView的形式展示。用到adapetr适配器用来适配数据,因为是小demo,多以学到的知识点为基础用来加深可巩固,这里只以这个demo为例,类似的小demo练习还有很多,以后看情况是否有必要一一贴出来吧

3.基于cocos2d的植物大战僵尸游戏:

这应该算是这段时间自己做的一个最大的项目了,用到了cocos2d游戏引擎,综合来说看视频来说也蛮好理解的,由CCDirector,CCScene,CCLayer和CCSprite组成,导演负责绑定和切换场景,layer和sprite分别作为对应的下层child添加到相应的节点上,剩下的植物僵尸等包括图标的切换都是用到CCSprite,或者说对应的场景下都是精灵,游戏主要对应的是很多种动作,基于物理引擎有很多动作库,基本可以满足游戏开发的大部分动作。我做的这个实现了几个主要场景的切换功能、选择植物并添加到容器的功能、开始游戏对战僵尸会按时间随机位置出现,行战场可以种植3类植物:向日葵,坚果和豌豆。植物和僵尸都会在对应的行战场检测彼此的存在并判定是否攻击对方,植物可以发射子弹,僵尸碰到植物在面前也可以执行攻击的动作,死亡的话僵尸会执行死亡的序列帧播放,平时行走也会执行行走的序列帧播放。

后续学习

我现在参照Android的书籍,基本的知识点已经学完了,接下来就是多去开源社区例如GitHub等多阅读优秀源码,并且我自己这段时间想和同学一起做一个综合所有知识点的大型的电子商城的项目,对前面所学到的知识点和项目总结和巩固,总之,路漫漫,其修远兮,吾将上下而求索。这一行学习的路真的是永无止境的,不管什么时候都要好好的学习来提升自己。今天是我的22岁生日,我希望自己能一直这样努力下去,也希望我和女朋友在一起能永远开心

你可能感兴趣的:(android学习)