iOS程序類型分為3類:Application, Dynamic Library,後台Daemon。
在越獄的設備上才會遇到需要開發後面兩種類型程序的情況。
平時我們開發提交到App Store的應用即是Application,設備沒有越獄的情況下,應用只能訪問沙盒內存文件和數據。
Dynamic Library(動態鏈接庫),在其他平台很常見,比如Windows平台的DLL。蘋果官方做了限制,所以在非越獄的情況下,需要提交到App Store的應用是不能包含動態鏈接庫的,否則無法通過審核(Review)
後面要介紹的越獄程序(Tweak)開發,就是動態鏈接庫。我們開發的大部分越獄程序,都是編譯成動態鏈接庫,然後通過越獄平台的MobileSubstrate(iOS7上叫CydiaSubstrate)來加載進入目標程序(Target),通過對目標程序的掛鉤(Hook),來實現相應的功能。
後面會詳細介紹越獄程序開發的原理,會對這個細節做進一步的介紹。
後台Daemon類似於Windows的Service。對於Application來說,切換到Home就會暫停運行,而Daemon會在後台運行。在越獄設備上,之前用來攔截垃圾短信和電話的工具都是運行在後台的Daemon。