移动开发

MacOS上Homebrew 安装、配置、更改国内镜像源及使用教程

Homebrew笔记 1. 介绍 官网: 对于习惯了使用命令来完成一切的程序员来说,安装软件这种小事,自然是能够用命令解决,就不用图形界面选择。但是在 Linux 中,我们有 yum、apt、dnf、pkg等命令来完成软件的安装,macOS 却并未为我们提供一个好用的包管理器

dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib

随着16.0系统正式发布,最近升级xcode14以调试16.0的真机。升级成功后,发现调试11.x和12.x固件的iphone,运行app直接崩溃了,启动不了。 崩溃日志如下: dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib Referenced from: /var/containers/Bundle/App

聊聊libffi的调用流程

背景 花了点时间分析了下libffi的调用流程,做个总结。 什么是libffi libffi是ffi的主流实现方式,其主要是用C和汇编来实现的。 原理和用法市面上已经很多,下面这两篇是我觉得讲得较为通俗易懂的,这里就不做过多的解释了。 外部函数接口 FFI —— 虚拟机中重要但不起眼的组件 使用 libffi 实现 AOP libffi的调用流程 PS:最近换了M1,所以以下的代码都是ARM64架

Block原理(一)

Block究竟是什么,我们先从c++代码开始 从一个最简单的block结构开始 image.png clang -rewrite-objc main.m -o main.cpp && open main.cpp image.png image.png 为了方便阅读 我们简化一下代码 image.png 为了方便进一步阅读,这里对其中的

List并发线程安全问题

一、发现并发问题 1.1 测试代码 public class Client { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); new Thread(() -> { for (int i =

Elasticsearch基本操作与 RESTful API(基于 Elasticsearch 8.x)

基本操作与 RESTful API(基于 Elasticsearch 8.x) 学习目标 掌握 Elasticsearch 8.x 的 RESTful API 规范和最新特性 熟练进行文档的 CRUD 操作和高级用法 理解批量操作的最佳实践和性能优化 掌握索引管理的所有操作和生命周期管理 了解 ES 8.x 的安全特性和认证机制 掌握常用的集群管理和监控 API 知

Dio网络封装以及数据转模型

一、为什么需要封装Dio 1、迁移代码 当组件库中的方法发生改变,需要迁移的时候,如果有多处地方用到,那么需要对使用到的每个文件都进行修改,非常的繁琐而且很容易出问题。 2、请求库切换 当不需要Dio库的时候,我们可以试随时方便切换到别的网络库。 3、统一配置 因为一个应用程序基本都是统一的配置方式,所以我们可以针对拦截器 、转换器 、 缓存 、统一处理错误 、代理配置、证书校验 等多个配置进行统

05. 四种权限修饰符

权限修饰符 (1)public : 公共权限 修饰对象: 修饰类、方法、属性 继承: 被public所修饰的成员能被该类的所有子类继承下来。 作用域: 可以被任意类访问 public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点

iOS 分析dyld工作过程 dyld-941.5源码

dyld源码 苹果官方资源opensource objc4-838可编译联调源码 一、了解相关概念 1.静态库、动态库 通常程序都会依赖系统一些库, 库是什么呢? 其实库就是一些可执行的二进制文件, 能被操作系统加载到内存里面中。库分为两种:静态库 / 动态库 静态库:是一堆.o文件的集合。格式.a, .lib等。链接阶段时静态库会被完整地复制, 一起打包在可执行文件中,被多次使用就有多份冗余