技术沉思录

技术沉思录

(Unity) -- [Android] -- [Performance] -- [Interview]

Android Camera-基础知识篇

现在随着音视频的应用越来越多,直接使用系统原生相机进行拍照裁剪和拍视频,已经不能满足需求了。
需要通过Camera API进行自定义相机开发,满足一些复杂的业务场景,开篇先介绍Camera的基础知识,为后面Camera开发提供支持。

Android网络编程-Retrofit源码角度分析Http

上一篇讲解了OKHttp,本篇来介绍下它的黄金搭档Retrofit,OKHttp+Retrofit是网络框架的不二之选。同是Square出品,和OKHttp融合起来非常简单。
Retofit是一个RESTful的HTTP网络请求框架,有以下特点:

  • 基于OKHttp
  • 通过注解配置网络请求参数
  • 支持同步、异步请求
  • 支持多种序列化、反序列化格式
  • 解耦彻底、模块高度封装,使用很多设计模式来实现
Android网络编程-OKHttp源码角度分析Http

前面介绍了网络的基础知识,这篇主要从OKHttp源码角度来分析Http。
OKHttp是一个优秀的网络请求框架,有以下特点:

  • 支持HTTP2/SPDY
  • Socket自动选择最好路线,并支持自动重连
  • 拥有自动维护的Socket连接池,减少握手次数
  • 拥有队列线程池,轻松写并发
  • 拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩)
  • 实现基于Headers的缓存策略
Android网络编程-Cookie,Session,Token

HTTP协议是无状态的,每次HTTP请求响应后,就会断开这次连接。如果客户端再次发送请求,服务端也不能识别出这个客户端是不是上次请求过的客户端,HTTP协议不能进行会话跟踪。而Cookie,Session,Token正是为了解决HTTP协议无状态问题。

Android网络编程-HTTP/HTTPS

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,在TCP/IP体系中属于最高层(应用层)是用于从万维网服务器传输超文本到本地浏览器的传送协议。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

Android网络编程-Socket

Socket在Android网络编程中,有着非常重要的作用。

Socket基本概念

即套接字,是应用层 与 TCP/IP 协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)。
从设计模式的角度看来,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

Android网络编程-TCP/IP协议

Android网络编程-计算机网络基础一文中得知,IP协议属于网络层,TCP、UDP协议属于传输层。
IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。
TCP协议是面向连接的传输层协议,提供一种面向连接的、可靠的字节流服务。
UDP协议是面向无连接的传输层协议,提供面向事务的简单不可靠信息传输服务。

Android网络编程-计算机网络基础

从本篇开始,真正进入我们的Android网络编程学习之旅。

概念

计算机网络是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。简单的说即连接两台或多台计算机进行通信的系统。

Android网络编程-系列文章

在Android开发过程中,网络编程是必不可少的。
大家接触的Volley,Retrofit,OKHttp等网络框架,很好地封装了底层实现的细节,在使用过程中非常的方便。但是掌握其中的细节,对我们来说真的非常重要,只有掌握了网络编程的原理,才能真正理解这些网络框架的源码实现。