分类:技术笔记

net::ERR_HTTP2_PROTOCOL_ERROR
Ajax请求出现错误net::ERR_HTTP2_PROTOCOL_ERROR,定位为CDN配置不合理造成。
2022-12-01
iOS Background Task使用陷阱
发现线上用户有在后台状态被杀死的情况,最终定位到是不合理使用Background Task造成的,这篇文章简要介绍下使用Background Task需要注意的事项。
2022-03-10
Linux线程局部存储 Thread Local Storage
在C/C++程序中,全局变量默认是所有线程共享的,开发者需要处理多线程竞争问题。有些情况下我们需要保证一个线程独享一份数据,其它线程无法访问。典型的就是errno全局变量,它总是会保存当前线程最后一个调用的错误码,不会存在线程冲突。这个时候需要使用线程局部存储(TLS)来解决。
2022-01-15
如何正确地获取线程ID?
如何正确的获取线程ID?这个问题看似简单实则暗藏陷阱。由于存在用户态和内核态两层线程模型,就有两种获取线程ID的方式。
2022-01-09
优雅地使用#include
#include并不只是用来引用头文件的,合理的使用#include可以让代码更优雅。
2022-01-05
LLDB命令速查手册
LLDB是Xcode上默认的调试器,支持C/C++、Objective-C 和 Swift 程序的调试,也是LLVM项目的一个可重用的高性能调试器。在LLVM项目的lldb子目录可以查看LLDB的源码。
2021-09-29
iOS安全:Tweak开发环境及入门
Tweak原指微调以增强电子系统功能的实用工具;在iOS中,Tweak是广泛使用的越狱插件开发工具,通过创建dylib注入到宿主进程,完成各种HOOK操作。阅读本文将快速入门Tweak开发。
2021-08-26
Using a Custom Toolchain in Xcode
特殊情况下需要使用自定义的Toolchain,Xcode便捷支持选择不同的Toolchain。自定义的Toolchain在macOS和Xcode升级时可能需要做维护。
2021-06-17
iOS WKWebView详解及JS Bridge同步调用问题
WKWebView是 iOS 8.0以后用于替代UIWebView的浏览器组件。和UIWebView相比,WKWebView性能更高,支持更多的HTML5特性,控制更加细致。本文简要介绍了UIWebView的使用以及JS和native APP同步交互的问题。
2021-06-12
SQLite开发文档:PRAGMA配置、性能优化
本文是easeapi.com整理的关于SQLite的第三篇文章,主要介绍SQLite的PRAGMA配置参数及性能优化的一般方法。
2021-05-29
xcodebuild:code signature invalid
MH_EXECUTE、LC_LOAD_DYLIB等类型二进制文件必须签名才能使用。重签名操作涉及两个命令行工具:codesign和security。
2021-05-26
SQLite开发文档:数据类型、文件锁状态、多线程
本文是easeapi.com整理的关于SQLite的第二篇文章,主要介绍SQLite的数据类型、重要的数据结构、文件锁状态、线程模式相关的内容。
2021-05-20
SQLite开发文档:SQLCipher加密
SQLite是广泛使用的开源嵌入式数据库,具有占用资源低、跨平台、使用简单、支持多程序语言等特点。本文是easeapi.com整理的关于SQLite的第一篇文章,介绍SQLCipher加密相关的内容。
2021-05-14
使用Filebeat和Elasticsearch分析Nginx日志
本文实战记录使用Filebeat、Kibana、Elasticsearch等软件搭建搜集分析Nginx日志的系统。Filebeat主要负责将Nginx日志数据作为数据源输送至Elasticsearch。
2021-04-05
iOS CoreMotion 传感器开发
CoreMotion.framework集中了iOS设备大多数传感器的API接口,这些传感器包括陀螺仪、加速度计、磁力计等。这些传感器的值可以反映手机设备的空间姿态及运动状态。
2021-03-18
iOS启动优化之二进制重排
很早之前就阅读过那篇关于抖音基于二进制文件重排解决方案的文章,那应该是我首次了解「二进制重排」的相关技术。最近,我系统地梳理了这部分知识点,做下笔记。
2021-02-27
iOS CLLocationManager的弹窗问题
iOS系统在请求定位权限时会弹窗提示。某些情况下,APP中的一些模块可能不需要主动引发弹窗但又需要获取定位数据。
2021-01-22
iOS NSURLProtocol详解及使用陷阱
如果想对网络请求进行干预,使用NSURLProtocol是一个不错的选择。NSURLProtocol是iOS URL Loading System的一个功能,它提供了便捷的接口以允许开发者重新定义网络请求的行为,包括修改请求的发起和响应动作。
2021-01-05
使用WP-CLI管理WordPress
WP-CLI是用于管理WordPress的控制台命令行工具,可以方便的执行WordPress站点升级,管理插件/主题/翻译等,使用WP-CLI运维WordPress站点可以极大提升效率。本文整理了WP-CLI的常见命令。
2020-12-29
iOS URLSession Authentication Challenge及SSL Pinning
APP即使开启HTTPS请求,也无法阻止中间人攻击。更安全的做法是,启用SSL Pinning。本文主要介绍SSL Pinning、Authentication Challenge相关的内容。
2020-12-26
网站流量都去哪了
网站开启CDN后,在CDN的后台有详细的访问日志。从这些日志中,可以直观的展示网站不同时段的访问情况。
2020-12-20
使用CDN提升网站访问速度
使用CDN能显著提升网站访问速度,目前国内CDN厂商众多,价格也不是很贵,还有一些提供一定额度的免费流量。对于中小型网站来说,开启CDN的成本还是可以接受的。
2020-12-12
linux后台任务执行
近日迁移服务时,需要执行后台任务。linux执行后台任务的相关命令包括&、nohup、bg等。简单记录,方便速查。
2020-11-28
iOS performSelector使用int等基本数据类型的问题
NSObject performSelecor方法允许动态方法调用,它支持的参数只能是id类型,不能是基本数据类型。需要传递基本数据类型时,要使用NSInvocation。
2020-11-08
iOS Method Swizzling使用陷阱
在阅读团队一项目源码时,发现Method Swizzling的写法有些瑕疵。这篇文章主要就介绍iOS Method Swizzling的正确写法应该是什么样的。
2020-11-04
iOS 14 适配:更严格的用户隐私保护
今年的iOS 14系统更新了不少内容,本文重点介绍和用户隐私保护相关的部分。iOS 14在iOS 13基础上进一步深化了对用户隐私的保护,新增的几项措施对于广告行业影响较大。
2020-10-17
WordPress安装及基本配置
WordPress是最流行的内容管理系统,有着丰富的主题和插件,方便我们构建风格不同的网站。本文讲解了它的部署及基本使用。
2020-10-11
iOS文件系统目录结构
iOS是属于类UNIX的操作系统,基本遵守了UNIX文件系统层级标准(Filesystem Hierarchy Standard)。但由于iOS的封闭性,它还是有一些特有的目录。下面以iOS 12.4.8系统为例说明,方便后续查阅。
2020-09-17
CocoaPods Podfile and podspec configurations
本文讲解了Cocoapods对不同configurations的支持能力,configurations配置可以让APP在Debug、Release等模式下引入不同的代码或framework,便捷支持不同场景的配置需求。
2020-09-12
git config配置
git config是git提供用于编辑配置文件的便捷工具,git config操作的是gitconfig文件,有三个地方存储了gitconfig文件。
2020-08-29