首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
呦呦君
掘友等级
iOS开发
|
字节跳动
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
118
文章 117
沸点 1
赞
118
返回
|
搜索文章
赞
文章( 117 )
沸点( 1 )
静态拦截iOS对象方法调用的简易实现
最近出现了几篇关于二进制重排启动优化的文章。所有方案中都需要事先统计所有的函数调用情况,并根据函数调用的频次来进行代码的重排。 这些函数调用中,OC对象的方法调用最多。统计OC对象的方法调用可以在运行时通过第三方库比如fishhook来Hook所有objc_msgSend调用来…
静态插桩的方式来实现Hook Method
我之前写了一个开源库TimeProfiler,监控所有的OC方法耗时。可以在开发App阶段,很方便的看到主线程所有OC方法的耗时。但是由于TimeProfiler是通过fishhook基于运行时hook,所以从原理上,它就有局限性:不能选择hook部分类的OC方法。这造成2个很…
笔记-iOS设置圆角方法以及指定位置设圆角
iOS 9.0 之前UIimageView跟UIButton设置圆角都会触发离屏渲染。 iOS 9.0 之后UIButton设置圆角会触发离屏渲染,而UIImageView里png图片设置圆角不会触发离屏渲染了,如果设置其他阴影效果之类的还是会触发离屏渲染的。 这个方法里mas…
iOS 优化篇 - 启动优化之Clang插桩实现二进制重排
( 本篇文章由于会从原理角度讲解 , 有些已经比较熟悉的同学可能会觉得节奏偏啰嗦 , 为了照顾大部分同学 , 大家自行根据目录跳过即可 . ) 了解二进制重排之前 , 我们需要了解一些前导知识 , 以及二进制重排是为了解决什么问题 . 在本篇文章里 , 笔者就不通过教科书或者大…
深入理解iOS签名原理
1. 名词介绍 在网络中,我们通过对信息进行数字签名,来验证信息的真实性、完整性。如果将数字签名运用到代码中,即对可执行文件(Mach-O)或脚本(代码)进行数字签名,便可保证app在签名后不被修改或损坏,保护app代码的完整性和安全性,这就是 代码签名。基于代码签名的这个特点…
iOS 原理探究-互斥锁
在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。 互斥锁又分为递归锁和非递归锁。 递归锁是一种可以多次…
抖音品质建设 - iOS启动优化《原理篇》
启动是 App 给用户的第一印象,启动越慢用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实践。 本文从基础知识出发,先回顾一些核心概念,为后续章节做铺垫;接下来介绍 IPA 构建…
dyld背后的故事&源码分析
dyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统的一个重要组成部分,当系统内核做好启动程序的准备工作之后,余下的工作会交给dyld来负责处理。那它存在的意义是什么?它又具体都负责做些什么呢?这一篇我们一起来一探究竟。前方长篇预警~ 存…
Mach-O 可执行文件
我们用 Xcode 构建一个程序的过程中,会把源文件 (.m 和 .h) 文件转换为一个可执行文件。这个可执行文件中包含的字节码会将被 CPU (iOS 设备中的 ARM 处理器或 Mac 上的 Intel 处理器) 执行。 本文将介绍一下上面的过程中编译器都做了些什么,同时深…
iOS super 关键字帮我们做了什么?
本篇文章讲的是 super 的实际运作原理,如有同学对 super 与 self 的区分还有疑惑的,请参考 ChenYilong 大神的《招聘一个靠谱的 iOS》面试题参考答案(上)。 super 究竟在干什么? 官方提到的 super 关键字? 打开苹果 API 文档,搜索 objc_msgSendSup…
下一页
个人成就
文章被点赞
114
文章被阅读
56,927
掘力值
1,465
关注了
47
关注者
87
收藏集
1
关注标签
29
加入于
2019-05-21