FastImageCache 原理

FastImageCache 是一个使用空间换时间的加速图片加载/渲染的库。官方(https://github.com/path/FastImageCache)的README比较详细的解释了原理。这篇文章就结合源码再次温习一遍最核心的部分。 ...
性能优化

iOS中的多进程,下拉关闭系统的词典界面

iOS中的App也存在多进程架构,而且是从iOS6就开始了,只是苹果一直自己在用。 需求来源 iBooksLookUpCloser 发布到bigboss后的第二天,一位老外朋友就发来邮件,让我看看这个一个月前reddit的提问 https://www.reddit.com/r/jailbreak/comments/95vjgd/request_please_some_one_fulfill_this_request_pull/?st=JLMLKHHM&sh=093359ff 。 关于iBooksLookUpCloser参考上篇文章 https://everettjf.github.io/2018/09/03/ibooks-dictionary-close-tweak/ 。 ...
逆向工程

iBooks 查单词界面增加关闭按钮

地铁时间一直使用iBooks看电子书,不认识的单词太多,也就很喜欢使用iBooks自带的长按单词点击Look Up(查询)按钮来查单词。又由于习惯了左手拿手机,右手扶地铁把手……查完单词后,关闭按钮在右上角。这篇文章就简单讲下怎么在左下角加上个“Done”按钮。如下图: 于是我查单词更勤快了。 ...
逆向

瞜一眼 mmap

mmap是性能优化的必备神器,这篇文章简单罗列下相关信息。 ...
性能优化

iOS 11.3.1 越狱步骤笔记

逆向工程可以让我们对系统的原理理解的更深刻,也可以让我们去窥视感兴趣的App,很好玩,也可能很邪恶。 目前(2018年8月30日)普通人能接触到的最新的可越狱的iOS版本是iOS11.3.1,可以在 https://canijailbreak.com/ 上看到,这篇文章就简单讲下iOS11.3.1的越狱步骤,为未来我们以性能优化为目的的逆向工作做铺垫。 ...
越狱

最简单的启动任务分类

一个“有年头”的App,启动中要做的工作不断的累加,didFinishLaunchingWithOptions中的代码越来越长,AppDelegate.m文件的行数也越来越多。那么是时候分类存放了。 ...
性能优化

Hook所有+load方法(包括Category)

大概两年前刚开始做性能优化工作,为了Hook所有+load方法,是用Hopper先列出所有+load,然后使用CaptainHook在动态库中逐个指定类名来Hook每一个+load方法。写了一篇文章,先后发表到了内网(ATA)和博客,博客文章地址是: https://everettjf.github.io/2017/01/06/a-method-of-hook-objective-c-load/ 。 这个方法有两个缺点: 需要先静态分析(使用Hopper)来看到所有+load方法,或者使用objc runtime的方法获取所有包含+load方法的类名。很麻烦。 对Category中的+load方法,没有办法Hook。 当时也意识到了这两个缺点,但迫于时间也凑合够用了。 时隔两年,想来了结这个心愿。这篇文章就把这两个缺点弥补上,实现:Hook所有的+load方法,包括Category中实现的+load方法。 ...
性能优化

os_signpost API 尝鲜

os_signpost API 是 iOS12 新增的轻量级代码性能分析工具,可以采集数据并可视化。官方原话是 The os_signpost APIs let clients add lightweight instrumentation to code for collection and visualization by performance analysis tooling. ...
性能

C++实现简单的线程池

启动优化中,尽量能不在主线程就不在主线程。放到子线程又尽量不要密集并发,挨个来,给主线程多一些执行机会。那么一种方法是使用线程池。 ...
guide

iOS时间获取方法

整理一些和获取时间有关的方法 ...
guide