iOS Background Task使用陷阱

发现线上用户有在后台状态被杀死的情况,最终定位到是不合理使用Background Task造成的,这篇文章简要介绍下使用Background Task需要注意的事项。

Linux线程局部存储 Thread Local Storage

在C/C++程序中,全局变量默认是所有线程共享的,开发者需要处理多线程竞争问题。有些情况下我们需要保证一个线程独享一份数据,其它线程无法访问。典型的就是errno全局变量,它总是会保存当前线程最后一个调用的错误码,不会存在线程冲突。这个时候需要使用线程局部存储(TLS)来解决。

如何正确地获取线程ID?

如何正确的获取线程ID?这个问题看似简单实则暗藏陷阱。由于存在用户态和内核态两层线程模型,就有两种获取线程ID的方式。

LLDB命令速查手册

LLDB是Xcode上默认的调试器,支持C/C++、Objective-C 和 Swift 程序的调试,也是LLVM项目的一个可重用的高性能调试器。在LLVM项目的lldb子目录可以查看LLDB的源码:llvm-project

iOS安全:Tweak开发环境及入门

Tweak原指微调以增强电子系统功能的实用工具;在iOS中,Tweak是广泛使用的越狱插件开发工具,通过创建dylib注入到宿主进程,完成各种HOOK操作。阅读本文将快速入门Tweak开发。

张大哥的假期

大半辈子守店创业,几十年如一日没有一天缺勤的张大哥,因为一件小事算是被放了一个难忘的长假。

Using a Custom Toolchain in Xcode

特殊情况下需要使用自定义的Toolchain,Xcode便捷支持选择不同的Toolchain。自定义的Toolchain在macOS和Xcode升级时可能需要做维护。

SQLite开发文档:SQLCipher加密

SQLite是广泛使用的开源嵌入式数据库,具有占用资源低、跨平台、使用简单、支持多程序语言等特点。本文是easeapi.com整理的关于SQLite的第一篇文章,介绍SQLCipher加密相关的内容。