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