App Store 规定了安装包大小超过 150MB 的 App 不能使用 OTA(over-the-air)环境下载,也就是只能在 WiFi 环境下下载。所以,150MB ...
fishhook 实现的大致思路是,通过重新绑定符号,可以实现对 c 方法的 hook。dyld 是通过更新 Mach-O 二进制的 __DATA segment 特定的部分...
Flutter是基于Dart开发的语言,而且是强类型,静态语言。所以类型检查可以通过编译器完成。而且Dart是一门面向对象的语言。 JIT&AOT: JIT:即时编译,开发期...
在macOS上搭建Flutter开发环境[https://flutterchina.club/setup-macos/] 开发环境的搭建可以参考上面链接Flutter中文网,...
为了方便讲解,以下列出isMemberOfClass和isKindOfClass的实例方法和类方法底层实现 由上图可知: isMemberOfClass: 此处YYPerso...
考虑到公司目前的项目的业务越来越庞杂,模块也越来越多。模块之间 免不了要进行通信,相互调用。例如生意圈模块、聊天模块、商城模块、赠礼模块、商机模块、订单模块等等都需要调用用户...
什么是离屏渲染? 离屏渲染(Off-Screen Rendering)顾名思义,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。如果要在显示屏上显示内容,我们至...
app冷启动概括为3大阶段: 1、动态链接库, 启动app时,dyld会装载app的可执行文件,同时会递归加载所有依赖的动态库,进行 rebase 指针调整和 bind 符号...
block本质: 每个OC对象内部都有isa指针,block也不例外;block其实就是封装函数调用,以及函数调用环境的OC对象。 block底层结构: block的类型: ...
OC对象分为3种: instance对象(实例对象) class对象(类对象) meta-class对象(元类对象) OC对象的本质是结构体,每一个对象内部有一个isa指针(...
runtime怎么实现方法的调用 :消息机制,runtime系统会把方法调用转化为消息发送。即objc-msgSend。并把方法的调用者和方法选择器当做参数传递过去,这也是我...
启动分为:热启动和冷启动 1热启动:就是按下home键的时候,app还存在一段时间,这时点击app马上就能恢复到原状态,这种启动我们称为热启动。 2.冷启动:app被kill...
应用中的图像经过图像渲染[https://www.jianshu.com/p/5bf1f9bbe233]流程后,GPU 将像素信息,存在帧缓冲器(Framebuffer)中,...
图像渲染流程粗粒度地大概分为下面这些步骤: 渲染流程图如下: Application 应用处理阶段:得到图元 CPU 负责处理应用中的图像,在这个阶段应用可能会对图像进行一系...
项目中遇到需要自定义通知声音的需求,以前没做过,就查了下官方文档,就像文档上说的,实现起来确实挺简单,就整理下当做备忘吧。 关于推送,官方文档、各种第三方推送文档都很全,就跳...
前言:最近看了篇关于iOS签名机制的文章,不熟悉iOS签名 或者只知道一些简单的签名操作的话可以看一看,有什么错误请批评指正。 1.首先要了解下一些基础知识:对称密码,非对称...