你可能知道一些非官方的iOS應(yīng)用提供了某種模擬工作方式,這些應(yīng)用基于黑客手段和漏洞運行,這大大降低了性能--但這種情況即將改變。蘋果已經(jīng)在iOS14.2上悄然引入了對Just-In-Time(JIT)編譯的支持,這將允許仿真應(yīng)用在iPhone和iPad上全速運行。
AltStore背后的開發(fā)者Riley Testut分享了更多關(guān)于這一變化將如何影響這些提供虛擬機仿真的非官方應(yīng)用的細節(jié)。但首先,我們簡單解釋一下什么是JIT以及它在iOS上的工作方式。
JIT,即Just-In-Time編譯,是一種運行軟件的方式,軟件在執(zhí)行過程中會被編譯,而傳統(tǒng)的軟件在執(zhí)行前會被完全編譯。使用JIT,源碼會實時翻譯成機器的原生代碼。
蘋果從未在iOS上提供過對JIT編譯的官方支持,但一些開發(fā)者已經(jīng)找到了用黑客運行JIT的方法,其代價是存在一些BUG和性能低下,而且這些漏洞在iOS14上已經(jīng)被徹底刪除。至少到現(xiàn)在為止是這樣。
暗示,蘋果在iOS14.2Beta2中增加了對JIT編譯的支持,另一方面卻從未公開提到過這一點。JIT支持在整個測試版中都得到了持續(xù)維護,并在最終版本中得到了保留。開發(fā)者認為這是官方的實現(xiàn),而不是蘋果的疏忽,但目前還無法證實這一點。
在iOS14.2上支持JIT編譯后,仿真應(yīng)用現(xiàn)在可以在沒有黑客手段、越獄等妥協(xié)的情況下全速運行。
例如,有了JIT,Delta理論上可以模擬PS2、GameCube和Wii等更強大的系統(tǒng);如果沒有JIT,我們還需要再等幾年,硬件才有這個能力。
然而,這并不意味著我們會在App Store中看到仿真應(yīng)用,甚至是任何其他使用JIT的應(yīng)用。目前的實現(xiàn)只適用于側(cè)裝(side-load)應(yīng)用,這些應(yīng)用通常是通過Xcode和其他開發(fā)者工具而不是App Store安裝的。換句話說,這是為以調(diào)試為目的的開發(fā)者準備的功能,我們也想知道這種限制是否會長期存在。