アンドロイド-12 okhttpインタビュー

一つの文にまとめました:

リクエストインターセプタがハンドルに5分割されるようOKHttp3は、チェーンを設計することによって傍受、その職務ブロッカーは、スケーラビリティが非常に高いです。インターセプタチェーンはカスタムインターセプタから始まり、その後、5つのインターセプタのデフォルトにされます。あなたはヘッダーを追加するためのすべての要求を与える場合は、我々はあなたがログインターセプタをカスタマイズすることができるように、ネットワーク要求のログを印刷する通常の状況下では、ヘッダーもインターセプタをカスタマイズすることができます。

5つのデフォルトインターセプタの意味:

1.障害のリトライ、リダイレクタインターセプタ。
2.ブリッジインターセプター:メインヘッダのいくつかの追加および削除
3.キャッシュインターセプタを:キャッシュが使用可能な場合戦略をキャッシュよれば、単純にキャッシュされたデータを返します。
4.接続プーリングインターセプタます:httpリンク接続プールキャッシュ、接続プールの利点は、接続、少数の3ウェイハンドシェイクを多重化され、要求が速くなり
、ネットワークへの5インターセプタ本当のアクセス:リクエストを送信するために内部使用のokio

OKIO :(タイムアウト、キャッシュ・メカニズム)

  • シンク:同様のJava出力ストリームのOutputStream
  • 出典:類似したJavaの入力ストリーム入力ストリーム
  • バッファ:名前はバッファがあるとき、我々は通常、IOストリームがバッファとしてバイトを[]作成され、書き込み時に、ストリーム、読み取りに書き込まれ、このバッファにデータを書き込み、バッファが記憶されません見ます撮影時のデータストリームをバッファに読み込みます。バッファは、実際にバイト配列である知っている内部見下ろします。
  • バイト文字列:名前が示すように、このクラスは、バイトと文字列の関連で。
  • セグメント別の実装では、あるサイクルレーンリストセグメントがいっぱいになると、チェーンの終わりが上の新しいセグメントを追加し、より多くのデータを保存することができ、。**バッファは、データが連続セグメントで消費され、読み取り操作の成長過程セグメント、実際には、書き込みを行います。**データの転送を容易にすることです。データのソースは、シンクで読まれるべき場合には、実際には、データがバッファにバッファでソースからシンクへ転送します。達成するために] [バッファがバイトである場合は、この時点で、我々は確かに仕事のバイト配列をコピーする必要がありますが、リンクリストの実装の場合と、我々は、セグメントにシンクノードポインタのセグメントを指示することができますソースを指し、 OK、より効率的にコピーを行うことなく、アレイ上のリストの末尾。
  • キャッシュ機構は、主にSegmentPoolによって管理されています
公開された57元の記事 ウォンの賞賛3 ビュー6208

おすすめ

転載: blog.csdn.net/qq_39830579/article/details/101760702