首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS底层原理分析
Study_Min
创建于2021-07-30
订阅专栏
iOS底层原理分析
等 7 人订阅
共41篇文章
创建于2021-07-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
内存优化(一) 野指针探测
本文主要讲解两种野指针检测的原理及实现 技术点:野指针探测 本文的主要目的是理解野指针的形成过程以及如何去检测野指针 引子 在介绍野指针之前,首先说下目前的异常处理类型,附上苹果官网链接) 异常类型
组件化(二)组件间通讯方式
本文主要讲组件化之间是如何通讯的 组件化通讯方案 目前主流的主要有以下三种方式: 1、URL路由 2、target-action 3、protocol匹配 URL路由 目前iOS上大部分路由工具都是基
组件化(一)方案
本文主要讲解组件化的两种方案 组件化 组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一种方式,主要运用与团队开发 为什么需要组件化? 主要有以下四个原因 1、模块间解耦 2
界面优化方案
本文主要介绍界面卡顿的原理以及优化 界面卡顿 通常来说,计算机中的显示过程是下面这样的,通过CPU、GPU、显示器协同工作来将图片显示到屏幕上 1、CPU计算好显示内容,提交至GPU 2、GPU经过渲
内存管理(三)AutoReleasePool & NSRunLoop 底层分析
本文主要分析 AutoReleasePool 以及 NSRunLoop 的底层实现 AutoReleasePool 自动释放池 自动释放池是OC中的一种内存自动回收机制,它可以将加入Autorelea
内存管理(二)强引用分析
本文主要是通过定时器来梳理强引用的几种解决方案 强应用(强持有) 假设此时有两个界面A、B,从A push 到B界面,在B界面中有如下定时器代码。当从B pop回到A界面时,发现定时器没有停止,其方法
内存管理(一)TaggedPointer/retain/release/dealloc/retainCount 底层分析
本文主要是分析内存管理中的内存管理方案,以及retain、retainCount、release、dealloc的底层源码分析
启动优化(三)二进制重排
前提,在之前的两篇文章中,大致介绍了一些基本概念以及启动优化的思路,下面来着重介绍一个pre-main阶段的优化方案,即二进制重排,这个方案最开始是由于抖音的这篇文章抖音研发实践:基于二进制文件重排的
启动优化(二)优化建议
启动 启动的过程一般是指从用户点击app图标开始到AppDelegate 的didFinishLaunching方法执行完成为止,其中,启动也分为冷启动和热启动 冷启动:内存中不包含app相关数据的启
启动优化(一)基本概念
虚拟内存 & 物理内存 早期的数据访问是直接通过物理地址访问的,这种方式有以下两个问题: 1、内存不够用 2、内存数据的安全问题 针对问题1,我们在进程和物理内存之间增加一个中间层,这个中间层就是所谓
LLVM编译流程 & Clang插件开发
本文主要是理解LLVM的编译流程以及clang插件的开发 LLVM LLVM是架构编译器的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(l
Block底层原理
本文主要介绍block的类型、循环引用的解决方法以及block底层的分析 block 类型 block主要有三种类型 __NSGlobalBlock__:全局block,存储在全局区 __NSMall
锁的原理
本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析 锁 借鉴一张锁的性能数据对比图,如下所示 可以看出,图中锁的性能从高到底依次是:OSSpinLock(自旋锁
GCD 之 底层原理分析
本文是队列创建、同步/异步函数、单例、信号量以及调度组的底层原理分析 队列创建 在上一篇文章GCD 之 函数与队列中,我们理解了队列与函数,知道队列的创建时通过GCD中的dispatch_queue_
GCD 之 NSThread & GCD & NSOperation
本文的主要目的是介绍 NSThread、GCD、NSOperation常见的使用方式 NSthread NSthread是苹果官方提供面向对象的线程操作技术,是对thread的上层封装,比较偏向于底层
GCD 之 函数与队列
GCD全称Grand Central Dispatch,基于C语言的函数,会自动利用更多的CPU内核,自动管理线程生命周期 总结: GCD就是将任务添加到队列,并指定任务执行的函数 函数 GCD中有两
多线程原理
本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程的基本执行单元,一个进程的所有任务都在线程中执行 进程要想执行任务,必须的有线程,进程
内存五大区
在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域。如下图所示 下面分别介绍这五大区 栈区(Stack) 定义 栈是系统数据结构,其对应的进程或者线程是唯一的 栈是向低地址扩展的数据结
KVO 底层原理
观察者中的context上下文参数可以防止重名(多个对象观察的同名属性区分),性能,代码可读性,安全 观察者在dealloc方法中要移除,若不移除,程序将会奔溃。 单例对象的属性观察者,在两个Cont
KVC 底层原理
KVC的全称是Key-Value Coding,翻译成中文是 键值编码,键值编码是由NSKeyValueCoding非正式协议启用的一种机制,对象采用该协议来间接访问其属性。既可以通过一个字符串key
下一页