2019Android面试总结(二)

网络

1. 网络5层模型

  1. 物理层
    可以用光缆、电缆、双绞线、无线电波等方式
  2. 数据链路层
    网络层和物理层的通信,主要功能是如何在不可靠的物理线路上进行数据的可靠的传递.
  3. 网络层
    ip协议
  4. 传输层
    tcp协议
  5. 应用层
    http协议
TCP/IP五层模型

2. TCP/UDP区别

  • TCP传输控制协议:面向连接;使用全双工的可靠信道;提供可靠的服务,即无差错、不丢失、不重复且按序到达;拥塞控制、流量控制、超时重发、丢弃重复数据等等可靠性检测手段;面向字节流;每条TCP连接只能是点到点的;用于传输可靠性要求高的数据
  • UDP用户数据报协议:无连接;使用不可靠信道;尽最大努力交付,即不保证可靠交付;无拥塞控制等;面向报文;支持一对一、一对多、多对一和多对多的交互通信;用于传输可靠性要求不高的数据

3. 谈谈TCP为什么要三次握手?为什么要四次挥手?

TCP三次握手及四次挥手详解及常见面试题

4. 响应状态码

状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类:

  • 1xx:表示服务器已接收了客户端请求,客户端可继续发送请求
  • 2xx:表示服务器已成功接收到请求并进行处理
    200 OK:表示客户端请求成功
  • 3xx:表示服务器要求客户端重定向
  • 4xx:表示客户端的请求有非法内容
    400 Bad Request:表示客户端请求有语法错误,不能被服务器所理解
    401 Unauthonzed:表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头域一起使用
    403 Forbidden:表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因
    404 Not Found:请求的资源不存在,例如,输入了错误的URL
  • 5xx:表示服务器未能正常处理客户端的请求而出现意外错误
    500 Internal Server Error:表示服务器发生不可预期的错误,导致无法完成客户端的请求
    503 Service Unavailable:表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常

5. HTTP和TCP的区别

  • TCP是传输层协议,定义数据传输和连接方式的规范。通过三次握手建立连接、四次挥手释放连接。
  • HTTP是应用层协议,定义的是传输数据的内容的规范。HTTP的连接使用"请求-响应"方式。基于TCP协议传输,默认端口号是80。

Fragment

1. Fragment生命周期的变化:

add(): onAttach()->…->onResume()。
remove(): onPause()->…->onDetach()。
replace(): 相当于旧Fragment调用remove(),新Fragment调用add()。
show(): 不调用任何生命周期方法,调用该方法的前提是要显示的 Fragment已经被添加到容器,只是纯粹把Fragment UI的setVisibility为true。
hide(): 不调用任何生命周期方法,调用该方法的前提是要显示的Fragment已经被添加到容器,只是纯粹把Fragment UI的setVisibility为false。
detach(): onPause()->onStop()->onDestroyView()。UI从布局中移除,但是仍然被FragmentManager管理。
attach(): onCreateView()->onStart()->onResume()。

Fragment回退栈

fragment的出栈操作是以事务的提交为单位的,而不是add或replace的次数

屏幕适配

  1. 使用dp不直接使用px 代码设置需要dp到px的一个转换
  2. Drawable适配,不同dpi放置对应的图片,尽量使用矢量图,节省空间不失真
  3. 多使用带权重的布局,不使用absolutelayout
  4. 布局适配
    land

View相关

属性动画

1. ObjectAnimator,ValuesAnimator

ObjectAnimator会自动将TypeEvaluaror根据Interpolator产生的值设置到某个对象的属性上
ValuesAnimator只会提供TypeEvaluator根据Interpolator产生的值,不会自动设置,需要我们在回调方法中进行设置

2. TypeEvaluator,Interpolator

  1. TypeEvaluator时估值器,其会根据interpolator和起始终止值来产生值
    常用的TypeEvaluator有IntEvaluator,FloatEvaluator,ArgbEvaluator
  2. Interpolator时插值器,其会反应时间因子的变化,
    常用的有
AccelerateDecelerateInterpolator 先加速最后减速
AccelerateInterpolator 一直加速
DecelerateInterpolator 一直减速
AnticipateInterpolator 类似弹弓上的石子,先反向少许,再正向
OvershootInterpolator 类似压气球的手,先运动至目标处并超过一些距离,然后反弹到目标位置
AnticipateOvershootInterpolator 上两种的结合
LinearInterpolator 匀速运动
BounceInterpolator 类似自由落体

你可能感兴趣的:(2019Android面试总结(二))