日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一文帶你弄懂Flutter的熱部署

關(guān)于Dart中的運(yùn)行方式

  • JIT:Just In Time . 動(dòng)態(tài)解釋,一邊翻譯一邊執(zhí)行,也稱為即時(shí)編譯,如JavaScript,Python等,在開發(fā)周期中使用,可以動(dòng)態(tài)下發(fā)和執(zhí)行代碼,開發(fā)測試效率高,但是運(yùn)行速度和性能則會(huì)受到影響,F(xiàn)lutter中的熱重載正是基于此特性
  • AOT: Ahead of Time. 靜態(tài)編譯,是指程序在執(zhí)行前全部被翻譯為機(jī)器碼,提前編譯,如 C ,C++ ,OC等,發(fā)布時(shí)期使用AOT,就不需要像RN那樣在跨平臺(tái)JavaScript代碼和原生Android、iOS代碼間建立低效的方法調(diào)用映射關(guān)系。

程序的運(yùn)行方式和具體的語言沒有強(qiáng)制關(guān)系,比如python,既可以是JIT 也可以是AOT,Dart是少數(shù)同時(shí)支持JIT和AOT的語言之一。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)陽高,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

Dart在開發(fā)過程中使用JIT,每次更改都不需要在編譯成字節(jié)碼,節(jié)省了大量時(shí)間,在部署中使用AOT生成高效的ARM代碼保證高效的性能,所以說Dart具有運(yùn)行速度快,執(zhí)行性能好的特點(diǎn)。

Hot Reload

在Dart代碼文件中修改字符串“Hello, World”,添加一個(gè)驚嘆號(hào),點(diǎn)擊保存或者熱刷新按鈕就可以立即更新到界面上,僅需幾百毫秒:

Flutter通過將新的代碼注入到正在運(yùn)行的DartVM中,來實(shí)現(xiàn)Hot Reload這種神奇的效果,在DartVM將程序中的類結(jié)構(gòu)更新完成后,F(xiàn)lutter會(huì)立即重建整個(gè)控件樹,從而更新界面。但是熱刷新也有一些限制,并不是所有的代碼改動(dòng)都可以通過熱刷新來更新:

  1. 編譯錯(cuò)誤,如果修改后的Dart代碼無法通過編譯,F(xiàn)lutter會(huì)在控制臺(tái)報(bào)錯(cuò),這時(shí)需要修改對應(yīng)的代碼。
  2. 控件類型從StatelessWidget到StatefulWidget的轉(zhuǎn)換,因?yàn)镕lutter在執(zhí)行熱刷新時(shí)會(huì)保留程序原來的state,而某個(gè)控件從stageless→stateful后會(huì)導(dǎo)致Flutter重新創(chuàng)建控件時(shí)報(bào)錯(cuò)“myWidget is not a subtype of StatelessWidget”,而從stateful→stateless會(huì)報(bào)錯(cuò)“type ‘myWidget’ is not a subtype of type ‘StatefulWidget’ of ‘newWidget’”。
  3. 全局變量和靜態(tài)成員變量,這些變量不會(huì)在熱刷新時(shí)更新。
  4. 修改了main函數(shù)中創(chuàng)建的根控件節(jié)點(diǎn),F(xiàn)lutter在熱刷新后只會(huì)根據(jù)原來的根節(jié)點(diǎn)重新創(chuàng)建控件樹,不會(huì)修改根節(jié)點(diǎn)。
  5. 某個(gè)類從普通類型轉(zhuǎn)換成枚舉類型,或者類型的泛型參數(shù)列表變化,都會(huì)使熱刷新失敗。

熱刷新無法實(shí)現(xiàn)更新時(shí),執(zhí)行一次熱重啟(Hot Restart)就可以全量更新所有代碼,同樣不需要重啟App,區(qū)別是restart會(huì)將所有Dart代碼打包同步到設(shè)備上,并且所有狀態(tài)都會(huì)重置。


當(dāng)前題目:一文帶你弄懂Flutter的熱部署
網(wǎng)站地址:http://m.5511xx.com/article/dpjdped.html