Previous “Preliminary Exploration of LaunchScreen” used IDA and lldb to explore part of SpringBoard. This article uses AppleTrace to preliminarily explore SpringBoard. AppleTrace currently uses HookZz to inline hook objc_msgSend. Can be used to analyze each Objective C method’s time consumption, and call relationships.
...
USB Keyboard originally named QVKeyboard, renamed perhaps to make easier to record and search
USB Keyboard is an input method app, after connecting iPhone to Mac via USB, can type on Mac end, input on iPhone.
...
LRU (Least recently used) is a cache update strategy, that is when cache count reaches maximum capacity, or some condition, remove least recently used elements. WeChat recently open-sourced a client Key-Value storage library MMKV https://github.com/Tencent/MMKV , which implements such a very streamlined LRU cache (LRUCache class).
...
tl;dr
After clicking App icon, iOS system’s desktop SpringBoard will first create LaunchScreen, then create App’s corresponding process. Then can think: LaunchScreen’s loading doesn’t occupy App process’s own perceived startup time. LaunchScreen is SpringBoard showing to users in advance before process startup for user experience.
Of course strictly speaking, LaunchScreen’s loading occupies system CPU and other resources, also has certain impact on App’s startup time.
...
FastImageCache is a library that uses space for time to accelerate image loading/rendering. Official (https://github.com/path/FastImageCache) README explains principles in detail. This article combines source code to review most core parts again.
...
Apps in iOS also have multi-process architecture, and started from iOS6, just Apple has been using it themselves.
Need Source
Day after iBooksLookUpCloser published to bigboss, a foreign friend sent email, asked me to look at this reddit question from a month ago https://www.reddit.com/r/jailbreak/comments/95vjgd/request_please_some_one_fulfill_this_request_pull/?st=JLMLKHHM&sh=093359ff .
About iBooksLookUpCloser reference previous article https://everettjf.github.io/2018/09/03/ibooks-dictionary-close-tweak/ .
...
Subway time always use iBooks to read e-books, too many unknown words, also like using iBooks’ built-in long press word click Look Up (query) button to look up words. Also because used to holding phone with left hand, right hand holding subway handle… After looking up word, close button is at top right. This article simply explains how to add a “Done” button at bottom left. As below:
So I look up words more frequently.
...
Reverse engineering can let us understand system principles more deeply, can also let us peek at interesting Apps, very fun, may also be very evil.
Currently (August 30, 2018) latest jailbreakable iOS version ordinary people can access is iOS11.3.1, can see at https://canijailbreak.com/, this article simply explains iOS11.3.1 jailbreak steps, pave way for future reverse engineering work for performance optimization purposes.
...
An “old” App, work to do during startup continuously accumulates, code in didFinishLaunchingWithOptions gets longer and longer, AppDelegate.m file’s line count also increases. Then it’s time to classify and store.
...