熱更新-----為何使用lua進行熱更


  事實上我們在安卓端是可以使用c#jit的,但是我們在ios上的代碼是AOT(預先編譯,靜態編譯)的,不能用c# jit(實時編譯,即時編譯)。

  ios不能用c#熱更是因為啟動了CPU的No eXecute bit,簡單說就是ios不允許更改代碼,更新代碼必須重新提安裝包進行審核,AppStore審核過的代碼才能執行。而lua解釋器(通常來說就是lua.c中的代碼)是審核過的,這才是為何lua可以運行在ios上的根本原因。

  lua在unity中作為一個文本資源來使用,當我們通過tolua或者xlua調用lua代碼中某個函數時,解釋器會去對lua進行解釋,因為lua解釋器代碼允許執行,因此它會執行lua解釋后的代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM