2018总结

一前言      前端

         时光如梭,熬了无数的夜,也未感受时间变慢。学习的过程当中感受有很大进步,突破了瓶颈。如今看来也仅仅是上了一个小台阶,亦或是一场错觉。固然也存在从入门到放弃的败笔,学过忘记的败笔。后知后觉并不可怕,可怕的是不知不觉。vue

二回顾java

2.1失败的播放器android

      2018年是缺乏学习计划的一年,全部的学习计划所有是临时起意。年初对视频播放作了研究,基于ijkplay开源库仿照qq浏览器UI作了一个视频播放器的封装实现。仿照程度还算是能够。适配工做没有作。如今看来,这个计划并未让我从中获取心里真实渴望的知识,从效率上来说,花费一个月休息时间,学了一些不知道何时就会忘记的API,时间算是浪费掉。这个项目对我有帮助也就是巩固类的设计,封装和解耦。面试

2.2算是入门的kotlin语言小程序

    以后又受大环境的影响,入门了kotlin语言。为了更好的入门,更深入的记住kotlin的特性,找到了别人的开源接口和UI,使用kotlin语言写了一个开源项目,同时看了《Kotlin Action》这本书。记录了十篇笔记文章。 进步点有:1优化了mvp写法,2.UI进行了基类抽取。3.熟悉大量kotlin语法糖的用法。微信小程序

2.3android的自定义控件浏览器

     自定义控件学习过程当中感受是突破,如今看来也仅仅是一个入门。关于自定义控件笔者已经从入门到放弃二次了。如今看来前两次的放弃并非由于难,而是不得其法门。微信

以自定义属性动画为基础:app

(属性动画原理:在必定时间间隔内,经过不断对值进行改变,并不断将该值赋给对象的属性,不断的调用onDrow从新绘制视图,从而实现该对象在该属性上的动画效果。

以分析源码测量控件流程为突破口:

DecorView对象调用View#measure 参数为本身生成的MeasureSpec------>View#measure中又调用了onMeasure(widthMeasureSpec, heightMeasureSpec)方法------>不一样的子类重写了不一样的onMeasure逻辑,可是最基本的都干了两件事:1,父容器的MeasureSpec+本身的LayoutParams(使用者写的布局宽高)转换成本身的MeasureSpec,而后递归调用View的measure方法,2设置本身的真实大小

以自定义的View的左上角为坐标原点,安排内部元素的位置和大小,以及总体的大小。

以hencoder为API文档 :API文档不须要记,浪费脑细胞。用的时候查看一下就行。

按照自定义步骤:肯定view大小---->在onMeasure中告诉父布局--->onSizeChanged方法中去矫正能够绘制的宽高---->以View左上角为原点算出内部元素的坐标绘制一个静态的效果----->添加属性动画实现动态绘制。

2.4学会已经忘记的Databinding和Dagger2

    从目前个人知识储备来看Databinging彻底是仿照前端vue框架的思路在android生拉硬套出来一个数据驱动UI框架,牺牲布局文件的独立性去拟补数据驱动UI,这样增长了耦合性,有点得不偿失,可是不少人都说mvvm比较好用,因而就入门了Databinding库。

Dagger2是一个依赖注入框架,把被依赖的对象的建立所有放到一个地方,让代码好维护。学习成本有点高,学会了也就那么回事,对于他的学习目的彻底是防止别人写的项目使用了Dagger2,致使看不懂尴尬才入手。

2.5解开的心结自动刷新token无感请求

为何说他是一个心结,由于一次面试被问到这个问题,一直没有解决方案,直到找到解决方案:retryWhen+onErrorResumeNext实现动态无感刷新token。一个很是精致的需求实现。

2.6从入门到放弃的RxCamera

相机库没有封装出来,rx技术却是有所精进。年初以放弃多媒体开发开始,年尾以放弃多媒体开发结束。

2.7入门了uni-app

 年末最后的4个月没有更文,并非由于懒惰了,公司安排使用uni-app去写一个微信小程序。稀里糊涂的写完了,可是仅仅是一个入门水准,可是却给我2019年增长了一个安排,系统学习一下前端语言。

三总结

既然是总结,就要说点感悟:经过kotlin语言和js语言的学习,对比java语言,得出一个感受,语言思想都是互通的,因此再以后的学习中,尽可能不要记哪些无聊的API,API只是手段,打扎实基础语法。以后就是多学思想(大量看别人的或者系统的源码,体会代码的思路,转化为本身的思路),多去了解最新技术,每一种新技术就意味着一种新思想。

四2019计划

1.全面系统的学一下前端基础和前端比较火的框架。

2.阅读《图解http》一书。

3.小程序系统学习。

4.android入手jetpack和多看一些android的开源项目。

5.入门一下后台。

相关文章
相关标签/搜索