首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
吧
订阅
大白不想说话103724
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
iOS App启动优化(一)—— 了解App的启动流程
首先,我们先来区分两个启动的概念。 App点击启动前,此时App的进程还不在系统里。 需要系统新创建一个进程分配给App。(这是一次完整的App启动过程) App在冷启动后用户将App退回后台,此时App的进程还在系统里。 用户重新返回App的过程。(热启动做的事较少) 加载可…
关于iOS内存的深入排查和优化
虚拟内存机制在这里就不多说了,主要包括内存管理单元MMU、内存映射、分段、分页。在iOS中,一页通常有16KB的内存空间。 分配内存的时候,先分配虚拟内存,然后使用的时候再映射到实际的物理内存。 一个VM Region指的是一段连续的虚拟内存页,这些页的属性都相同。 VM分为C…
iOS 性能优化(内存布局&内存管理策略)
栈区:创建临时变量时由编译器自动分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆区:那些由 new alloc…
iOS进阶-细数iOS中的锁
互斥锁:保证在任何时候,都只有一个线程访问对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒; 调用者在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时间内获得锁,会使CPU效率降低。所以自旋锁就主要用在临界区持锁时间非常短且CPU资源不紧张的…
iOS开发老司机的神兵利器-效率工具
前言Mac常用的工具集iTerm2ssh工具shuttleuToolsPostmanMacDowntypora推荐的网页在线工具tinypngprocessoniOS开发工具集JSONConverte
iOS 设置代理(Proxy)方案总结
最近因为项目需要,需要在打开某个网址时设置 HTTP 代理。所以做了相关的技术方案调研,并总结下来。 在 WebView 设置 Proxy 的方式,就是对请求进行拦截并重新处理。还有一种全局的实现方案,使用 iOS 9 以后才有的 NetworkExtension,但是这种方案…
深入iOS系统底层之crash解决方法
一个应用程序并不总会一直运行的很好,它总会有出现crash崩溃的情况。如果在应用程序中接入了一些第三方的crash收集工具或者自建crash收集报告平台的话将会很好的帮助开发者去分析和解决应用程序在线上运行的问题,当出现的崩溃问题能得到及时的解决和快速的修复时必将会大大的提升应…
运行时Hook所有Block方法调用的技术实现
本技术实现在YSBlockHook中。 iOS系统中一共有:C函数、Block、OC类方法三种形式的方法调用。Hook一个方法调用的目的一般是为了监控拦截或者统计一些系统的行为。Hook的机制有很多种,通常良好的Hook方法都是以AOP的形式来实现的。 当我们想Hook一个OC…
深入iOS系统底层系列文章目录
一直想写一些关于系统底层方面的知识点,并且酝酿了很久,后来也跟其他人交流,你为何不出一个系列呢? 不必要一次性把所有的东西都写完后才发表,我听说后觉得非常的有道理,虽然自己的水平也很一般,但是想想自己还是有一些积累的。这虽然是一系列介绍iOS底层相关方面的知识的文章,但又不是介…
滴滴DoKit2.0 - 泛前端开发者的百宝箱
9月17日,滴滴开源项目DoraemonKit 在 GitHub上的star数突破10000,成为滴滴首个star数破万的开源项目。 DoKit 是一个功能集合面板,能够让每一个App快速接入一些常用的或者你没有实现的一些辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在…