程序猿口中的Hook是什么意思?

iOS里有一個(gè)非常的好用切面編程的框架<Aspect>,功能我簡要概括下,基于runtime 中的黑魔法實(shí)現(xiàn),一共提供了兩個(gè)AOP方法,可以對(duì)某一個(gè)類或者實(shí)例的方法進(jìn)行攔截然后各種xxoo。

/// Adds a block of code before/instead/after the current `selector` for a specific class.
+ (id<AspectToken>)aspect_hookSelector:(SEL)selector
                      withOptions:(AspectOptions)options
                       usingBlock:(id)block
                            error:(NSError **)error;

/// Adds a block of code before/instead/after the current `selector` for a specific instance.
- (id<AspectToken>)aspect_hookSelector:(SEL)selector
                      withOptions:(AspectOptions)options
                       usingBlock:(id)block
                            error:(NSError **)error;

然而在閱讀他的源碼從網(wǎng)上查閱資料時(shí)經(jīng)常會(huì)遇到hook這個(gè)詞,感覺挺有意思,百度翻譯了一下是鉤子的意思,當(dāng)你如果還是一名學(xué)生的時(shí)候,word天吶,對(duì)說了這個(gè)詞語的人真是崇拜至極,心里默念著牛逼,其實(shí)這是一名程序員應(yīng)該懂的基本功.
其實(shí)鉤子來源于英文詞Hook,在windows系統(tǒng)中,一切皆消息,比如按了一下鍵盤,也是一個(gè)消息,Hook的意思是勾住,也就是在消息過去之前,可以先把消息勾住,不讓其傳遞,你可以優(yōu)先處理,也即這項(xiàng)技術(shù)就是提供了一個(gè)入口,能夠針對(duì)不同的消息或者API在執(zhí)行前,先執(zhí)行你的操作,你的操作也稱為「鉤子函數(shù)」,所以,有的時(shí)候程序員在討論的時(shí)候,也經(jīng)常會(huì)說,可以先hook住,在處理,也即在執(zhí)行某某操作之前,優(yōu)先處理一下
好啦,這就是Hook的思想和原理,希望以后在和猿交流的過程中,聽到這個(gè)詞的時(shí)候,你能夠自信的對(duì)程序員點(diǎn)點(diǎn)頭,祝裝逼成功哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,536評(píng)論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,922評(píng)論 25 709
  • Hooks 本文翻譯自 MSDN。 Hook 是系統(tǒng)消息處理機(jī)制中的一個(gè)點(diǎn),在這個(gè)點(diǎn)上,程序可以裝載一個(gè)子程序。利...
    董噠噠閱讀 1,362評(píng)論 0 0
  • 1 丟棄你最愛用的詞語top6 做一個(gè)游戲。寫一段話表達(dá)自己感受的話,但是不能出現(xiàn)“覺得、知道、明白、記得、想想”...
    兩根筷子閱讀 372評(píng)論 1 1
  • VOL.1 應(yīng)屆畢業(yè)生職場最煩問到的7個(gè)問題! 畢業(yè)一年,我換了四份工作。 遇到過形形色色的人和事,在這里想和大家...
    2dfa63a6a17c閱讀 755評(píng)論 1 0

友情鏈接更多精彩內(nèi)容