Decorative image frame

寒流‘s Blog

编程与生活

寒流‘s Blog

HTTP和HTTPS详解

计算机通信原理

互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议:

  • TCP: Transmission Control Protocol 传输控制协议
  • IP: Internet Protocol 网际协议。

引自维基百科TCP/IP协议族是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。这个协议族由互联网工程任务组负责维护。

Read More...

RunLoop的应用场景(一)- 保证线程长久存活

在iOS开发过程中,有时候我们不希望一些花费时间比较长的操作阻塞主线程,导致界面卡顿,那么我们就会创建一个子线程,然后把这些花费时间比较长的操作放在子线程中来处理。可是当子线程中的任务执行完毕后,子线程就会被销毁掉。

当子线程中的任务执行完毕后,线程就被立刻销毁了。如果程序中,需要经常在子线程中执行任务,频繁的创建和销毁线程,会造成资源的浪费。这时候我们就可以使用RunLoop来让该线程长时间存活而不被销毁。

Read More...

iOS-APP-运行时防Crash工具XXShield练就

前言

正在运行的 APP 突然 Crash,是一件令人不爽的事,会流失用户,影响公司发展,所以 APP 运行时拥有防 Crash 功能能有效降低 Crash 率,提升 APP 稳定性。但是有时候 APP Crash 是应有的表现,我们不让 APPCrash 可能会导致别的逻辑错误,不过我们可以抓取到应用当前的堆栈信息并上传至相关的服务器,分析并修复这些 BUG。

所以本文介绍的 XXShield 库有两个重要的功能:

  1. 防止Crash
  2. 捕获异常状态下的崩溃信息

类似的相关技术分析也有 网易iOS App运行时Crash自动防护实践
Read More...

SDWebImage4.0源码阅读

参拜一下SDWebImage的源码。

并不是说一定要读如何如何、只是觉得源码的阅读是一种很好的学习方式。无论从架构还是技术点方面。

目录

  • 常见疑问(面试大全?)
    • 磁盘目录位于哪里?
    • 最大并发数、超时时长?
    • 图片如何命名?
    • 如何识别图片类型?
    • 所查找到的图片的来源?
    • 所有下载的图片都将被写入缓存?磁盘呢?何时缓存的?
    • 磁盘缓存的时长?清理操作的时间点?
    • 磁盘清理的原则?
    • 下载图片时、会使用缓存协议么?
    • 下载图片的URL必须是NSURL么?
    • 读取缓存以及读取磁盘的时候如何保证线程安全?
  • 相关知识点
    • NS_OPTIONS枚举与位运算
    • 内联函数
  • 准备工作
  • 工作原理
  • 业务层级
  • 核心代码(正常读取下载图片)
    • 最上层:UIView+WebCache
    • 逻辑层:SDWebImageManager
    • 业务层:
      • 缓存&&磁盘操作(SDImageCache)
      • 下载操作(SDWebImageDownloader)
  • 一些启发
    • 分层的接口API设计
    • 线程安全
    • 内联函数
    • 精细的缓存管理原则
    • 回调设计
Read More...

深入理解iOS Rendering Process

前言
iOS 最早名为 iPhone OS,是Apple公司专门为其硬件设备开发的操作系统,最初于 2007 年随第一代 iPhone 推出,后扩展为支持 Apple 公司旗下的其他硬件设备,如 iPod、iPad 等。
作为一名 iOS Developer,相信大多数人都有写出过造成 iOS 设备卡顿的代码经历,相应的也有过想方设法优化卡顿代码的经验。
本文将从 OpenGL 的角度结合 Apple 官方给出的部分资料,介绍 iOS Rendering Process 的概念及其整个底层渲染管道的各个流程。
相信在理解了 iOS Rendering Process 的底层各个阶段之后,我们可以在平日的开发工作之中写出性能更高的代码,在解决帧率不足的显示卡顿问题时也可以多一些思路~

Read More...

老司机 iOS 周报 #15

老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

Read More...