工作四年多了,一直在做手机厂商ROM中的Android开发,一直想转互联网开发,这次一定要记点什么,不然过几天又忘了
一、网络分层
应用层 (HTTP、FTP、DNS、SMTP等等)
运输层 (TCP、UDP)
网络层 (IP等)
数据链路层(ARP等)
物理层
https://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650826134&idx=1&sn=925595daaad2b3447f30dbbec3873ee2&chksm=80b7b108b7c0381e51f6b824edf632e11b713f04af69485d0d3e8111bd4715b8bd6014455d57&scene=38#wechat_redirect
二、应用层:
1、HTTP协议原理:http的请求报文,响应报文,消息报头,抓包,get post
2、两个类库:HttpClient(弃用)、HttpURLConnection
3、网络通讯框架:
3.1、Volley:可以访问网络取得数据,也可以加载图片。
3.2、OkHttp:异步GET请求,异步POST请求,异步上传文件,异步下载文件,异步上传Multipart文件,设置超时时间和缓存,取消请求,关于封装(OkHttpFinal)
3.3、Retrofit:Android网络请求框架,底层是基于OkHttp实现的,更多的使用运行时注解的方式提供功能,分三大类注解
三、运输层:
tcp的三次握手,四次挥手
四、事件总线:EventBus和Otto
EventBus是一款针对Android优化的发布-订阅事件总线。能高质量的解决程序内各组件间,组件与后台线程间的通信。(广播,序列化,intent,bunder也是通信相关的)
五、函数响应式编程:
函数式编程是一种编程规范,响应式编程是一种面向数据流和变化传播的编程规范。Android开发中使用函数响应式编程的主要有两大框架RxJava和Agera
1、RxJava:RxJava是ReactiveX(Rx)的一种Java实现。RxAndroid是RxJava在Android平台的扩展。
2、RxJava+OkHttp访问网络
3、RxJava+Retrofit访问网络,是比较好的搭配
4、用RxJava可以实现事件总线RxBus,以代替EventBus和Otto
六、注解与依赖注入框架:
在许多程序设计语言中,比如java、C#,依赖注入是一种比较流行的设计模式。在Android开也有很多实用的依赖注入框架,可以帮助我们少写一些样板代码,达到各个类之间解耦的目的。常用的依赖注入框架ButterKnife和Dagger2.这两个框架都是编译时注解
七、MVP,MVVM
https://www.jianshu.com/p/51805c122d01