开始写博客啦!!!
从事Android开发两年多以来,一直在忙着业务上的问题,很多知识慢慢淡出了我的视野。但是偶尔在和其他项目参与者进行沟通的时候,还是能感觉到自己在很多方面的不足。所以我希望给自己列一个知识结构,或者说是一些需要学习到或者需要了解到的内容。一方面可以让自己随时翻阅,回顾,同时也可以给需要的朋友们一点参考。
作为一个安卓开发者,我在工作中接触的大多都是Android的知识,又因为项目中可能使用了大量的第三方框架,导致我对基础知识掌握的不够深入。比如我使用retrofit+okhttp进行项目中网络请求的操作,确实很方便,后果也是很明显的,网络五层结构,Http,Socket,TCP/IP,这些内容我都知道,但是你要让我深入,要我直接使用socket进行通讯,对不起我真的不会。这就会大大限制我的可能性,我不想只是做一个API Player。
下面的知识是都需要的,重要性会有点区别,还是要立身于本。
重建自身知识体系:
- 操作系统
- 计算机网络
- 了解大概的OSI七层结构。
- 熟悉TCP/IP的四层结构,了解每一层的工作原理。
- 熟悉HTTP协议,了解TCP协议的基本内容,以及TCP连接的建立和释放过程,知道原因。
- 会使用Android提供的URLConnection进行常规的网络请求,如GET,POST(包括文件的上传)请求等。
- 了解Socket通讯,知道如何使用Socket进行通讯,如使用socket进行HTTP通讯。
- 数据结构与算法
- 数据库
- 设计模式
- java基础
- Android基础:下面的每一块儿都包含有深层次的知识,可以根据需要和自己的能力步步为营,深入学习
- 了解四大组件,如Activity的生命周期、状态的保存、启动模式等等。Activity基础
- 了解常用布局,常用控件的使用。
- 了解网络基础,了解图片加载技术。
- 能进行简单的自定义View。
- 了解drawable,可以进行常用drawable的开发。
- 了解消息机制。
- 了解Android中的线程和线程池。
- 了解Android中的动画,能进行简单动画的开发。
- 了解数据存储,文件,SharedPreference,SQLite以及基本的数据库知识。
- 简单常用的性能优化知识
- 熟练使用第三方SDK进行开发,如Retrofit+okHttp,Glide,GreenDao,Gson,EventBus,RX系列,分享,支付,地图等等的使用
- 其他开发常用的可能比较零碎的知识或者特定领域的知识,如相机开发,传感器开发,手势控制等等。
- Android进阶
- 四大组件的细节知识
- IPC机制
- View的原理,动画的原理
- WIndow,WindowManager,WindowManagerService等等
- JNI,NDK开发
- Android性能优化
- 学习源码,等等等等