前言
最近零零散散看了很多的书籍和文章,但是感觉有点混乱,有好比一直低着头走路,你走了很久睁开眼才发现自己走了一圈又回来了!有些东西你总以为你懂了但是细问之下你还是不懂,有时候我们都太容易陷入我感觉我懂了的情况,认真思考了下,觉得很有必要把一些过往记录下来,一边是为了稳固自己(或者在将来的某一天我有些遗忘,我可以倒回来看看),另外一边是可以给其他人一些启发或者说你懂这些但是我也想把我懂的一起给你,让你更富足。
其实一直的想法是写完一个自定义Android学习计划的进阶系列,但是总觉得欠点火候,总感觉少了些什么,听了一些大佬的建议还是决定从基础上进行深入、稳固,由点带面的形式,把每步的根基都打得牢牢的,这么做的目的是你会发现你的天花板比别人要高好多,而所谓的瓶颈也比别人来得更迟。意味着我可以跳得更高,而不至于被天花板限制而止步不前。
于是开始有了这个【Java基础系列】,后面还有【Android基础系列】、【Android进阶系列】,在某个点上持续的攻破,深入,把这些我们迫切想要知道的东西变成我们深入骨髓的东西那样成为身体本能的一部分,比方说我们写代码的时候会不自觉的往“程序设计六大原则”上靠近,让自己的产出如丝般顺滑,让别人看你的代码也如沐春风,视若艺术品般。
这个计划是持久、漫长且痛苦的,但是我知道在未来的某一天当我回头看的时候,会感谢今天自己做的这个决定。
「计划总纲」
『Java基础』
- 从面向对象的三大特性说起
- 程序设计6大原则
- 各类设计模式解析
- 关于String字符串我们要了解的一些区别
- Java线程池(ThreadPoolExecutor)
- Java集合(关于容器、扩容方式、容器选择)
- Java内存模型(堆、栈、垃圾回收机制)
『Android基础』
- 开始聊聊Android四大组件
- Activity的几种启动方式(各自区别)
- Activity间如何传递数据?
- 横竖屏切换生命周期经历了什么?
- 显式Intent和隐式Intent的详细区别
- Service的启动方式(startSercive和bindService)及其生命周期
- Service和IntentService详细区别
- BroadcastReceiver的注册方式及“反注册”
- LocalBroadcastReceiver 和 BroadcastReceiver
- ContentProvider的基本用法
- Android中常用的几种布局详解(包括约束布局ConstraintLayout)
- Android Studio工具的各类使用方法详解(Mac、Windows上的快捷键)
- 关于Fragment(生命周期、通讯方式、懒加载、和tablayout的组合)
- 数据库相关(增删改查及升级、第三方的数据库)
- 常用的基础控件详解(RecyclerView、ListView、ViewPager…)
『Android进阶』
- 自定义View
- *View事件分发机制
- App的几种架构(MVC 、MVP、MVVM、CLEAN…)
- Android动画(基础动画 — 平移、缩放、旋转、Alpha、帧动画)
- Android动画(属性动画 — 补间动画、*搭配贝塞尔曲线的各种效果、矢量动画)
- Material Design
- *初涉Android多媒体(单独领域可能不会深挖)
- *初涉Android逆向(单独领域可能不会深挖)
- 关于Git
- Android中的权限适配 (Android6.0+)
- Gradle(自定义Gradle插件、多渠道打包)
『Android开源库+源码学习』
- 图片加载框架
- 网络相关框架
- RxJava、RxAndroid
- 数据库(GreenDao、OrmLite、Realm…)
- 学会造轮子,开源到GitHub
- 各类工具类库的收集(极大提升开发效率)
- 谈谈思考总结,如何形成自己的知识体系
备注:带*为难点
以上是目前定义的路线,执行过程中可能会更改,看情况吧。
2019/5/10 Frag 加油!