首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
橡皮泥飞机
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
42
文章 42
沸点 0
赞
42
返回
|
搜索文章
赞
文章( 42 )
沸点( 0 )
高效的序列化/反序列化数据方式 Protobuf
一. protocol buffers 序列化 上篇文章中其实已经讲过了 encode 的过程,这篇文章以 golang 为例,从代码实现的层面讲讲序列化和反序列化的过程。 举个 go 使用 protobuf 进行数据序列化和反序列化的例子,本篇文章从这个例子开始。 利用 pr…
高效的数据压缩编码方式 Protobuf
一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。 Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol …
让CoreData更简单些
本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍如何让CoreData的使用变得更加简单明了, 方便亲民. 全文约六千字, 预计花费阅读时间15分钟. 一. 这是什么以及如何使用 大概是去年夏天, 因为要做数据缓存开始使用Magic…
iOS Memory 内存详解 (长文)
iOS 是基于 BSD 发展而来,所以先理解一般的桌面操作系统的内存机制是非常有必要的。在此基础之上,本文会进一步在 iOS 系统层面进行分析,包括 iOS 整体的内存机制,以及 iOS 系统运行时的内存占用的情况。最后会将粒度缩小到 iOS 中的单个 app,讲到单个 app…
iOS Rendering 渲染全解析(长文干货)
1. 计算机渲染原理 对于现代计算机系统,简单来说可以大概视作三层架构:硬件、操作系统与进程。对于移动端来说,进程就是 app,而 CPU 与 GPU 是硬件层面的重要组成部分。CPU 与 GPU 提供了计算能力,通过操作系统被 app 调用。 CPU(Central Proc…
iOS 如何抓取线程的“方法调用栈”?
本文将通过一个具体的 demo ,阐述如何进行抓栈操作。 在我们程序运行中,通常存在一个函数调用另一个函数的情况。 例如,在某个线程中,调用了 func A。在 func A 执行过程中,调用了 func B。 转移控制 :暂停 func A ,并开始执行 func B,并在 …
一步一步构建你的网络层-TCP篇
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义. 在因特网协议族中,TCP属于传输层, 位于网络层之上,应用层之下. 需要注意的是, TCP只是协议声明, 仅对外声明协议提供的功能, 但本身并不进行任何实现. 因此, 在介绍通信协议时,…
轻松过面:一文全解iOS通知机制(经典收藏)
本文主要是针对iOS通知机制的全面解析,从接口到原理面面俱到。同时也解决了之前写的文章阿里、字节:一套高效的iOS面试题中关于通知的问题,相信看完此文再也不怕面试官问我任何通知相关问题了 这是个单例类,负责管理通知的创建和发送,属于最核心的类了。而NSNotificationC…
iOS探索 浅尝辄止dyld加载流程
链接:将目标文件链接成可执行文件。这一过程中,链接器将不同的目标文件链接起来,因为不同的目标文件之间可能有相互引用的变量或调用的函数,如我们经常调用Foundation框架和UIKit 框架中的方法和变量,但是这些框架跟我们的代码并不在一个目标文件中,这就需要链接器将它们与我们…
iOS 底层探索 - 应用加载
App 从被用户在主屏幕上点击之后就开启了它的生命周期,那么在这之中,究竟发生了什么呢?让我们从 App 启动开始探索。在探索之前,我们需要熟悉一些前导知识点。 如上图箭头所示,App加载流程 就是我们 App 的二进制主文件。 对于接触 iOS 开发比较早的同学,可能知道我们…
下一页
关注了
17
关注者
0
收藏集
5
关注标签
19
加入于
2017-12-13