真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter關(guān)注粉絲的簡(jiǎn)單介紹

為什么Flutter開發(fā)APP性能最接近原生,前端程序員請(qǐng)關(guān)注

Flutter是谷歌公司推出的跨終端的開發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開發(fā)語言是Dart,Dart也是谷歌開發(fā)的計(jì)算機(jī)編程語言,語法類似C,是編譯型語言:

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、北屯網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為北屯等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

hello world例子,打印字符串“Hello World!”:

1、沒有橋接層

React Native、Weex等技術(shù)都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:

React Native、Weex等技術(shù)多了一個(gè)橋接層,所以界面渲染會(huì)慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗(yàn)跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢(shì)所在:

Dart可以被編譯成不同平臺(tái)的本地代碼,讓Flutter不通過橋接層直接跟平臺(tái)通信,自然性能會(huì)快一些。

2、編譯執(zhí)行

JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰好一目了然。

3、Flutter Engine虛擬機(jī)

Flutter是依靠Flutter Engine虛擬機(jī)在iOS和Android上運(yùn)行的,F(xiàn)lutter Engine使用C/C++編寫,開發(fā)人員通過Flutter框架直接和API在內(nèi)部進(jìn)行交互,所以具有輸入低延遲和UI渲染高幀速率的特點(diǎn)。除了這特點(diǎn)之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構(gòu)建的。 中心思想是您使用小部件構(gòu)建UI。

窗口小部件根據(jù)其當(dāng)前配置和狀態(tài)描述了它們的視圖。 當(dāng)窗口小部件的狀態(tài)發(fā)生更改時(shí),窗口小部件會(huì)重建其描述,框架將根據(jù)前面的描述進(jìn)行區(qū)分,以確定底層呈現(xiàn)樹從一個(gè)狀態(tài)轉(zhuǎn)換到下一個(gè)狀態(tài)所需的最小更改??梢灾苯釉贠S平臺(tái)提供的畫布上進(jìn)行描繪,也就是一些核心類庫直接放到虛擬機(jī)里面,調(diào)用起來更快。

從它的系統(tǒng)結(jié)構(gòu)可以看出,類似安卓的ART(Android Run Time)虛擬機(jī),同樣采用AOT(Ahead of TIme)技術(shù),會(huì)在APP安裝時(shí)就編譯成機(jī)器語言,不再解釋執(zhí)行,從而優(yōu)化了APP運(yùn)行的性能。

4、自帶渲染引擎

Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺(tái)上Flutter也會(huì)把Skia引擎打包到APP中,從而實(shí)現(xiàn)了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。

綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開發(fā)框架,未來也會(huì)是構(gòu)建谷歌Fuchsia應(yīng)用的主要方式,前途不可限量,唯一的問題就是需要學(xué)習(xí)一門新的語言:Dart,而有Java或者C#語言基礎(chǔ)的程序員會(huì)比較容易學(xué)習(xí)。

泰戈?duì)柋容^短的詩

1、《我一無所求》

我一無所求,只站在林邊樹后。倦意還逗留在黎明的眼上,露潤(rùn)在空氣里。

濕草的懶味懸垂在地面的薄霧中。在榕樹下你用乳油般柔嫩的手?jǐn)D著牛奶。

我沉靜地站立著。我沒有走近你。

天空和廟里的鑼聲一同醒起。街塵在驅(qū)走的牛蹄下飛揚(yáng)。

把汩汩發(fā)響的水瓶摟在腰上,女人們從河邊走來。

你的釧鐲丁當(dāng),乳沫溢出罐沿。晨光漸逝而我沒有步近你。

2、《當(dāng)時(shí)光已逝》

假如時(shí)光已逝,鳥兒不再歌唱,風(fēng)兒也吹倦了,那就用黑暗的厚幕把我蓋上,如同黃昏時(shí)節(jié)你用睡眠的衾被裹住大地,又輕輕合上睡蓮的花瓣。

路途未完,行囊已空,衣裳破裂污損,人已精疲力竭。你驅(qū)散了旅客的羞愧和困窘,使他在你仁慈的夜幕下,如花朵般煥發(fā)生機(jī)。在你慈愛的夜幕下蘇醒。

3、《假如你一定要傾心于我》

假如你一定要傾心于我,你的生活就會(huì)充滿憂慮我的家在十字路口,房門洞開著,我心不在焉--因?yàn)槲以俪琛?/p>

假如你一定要傾心于我 ,我決不會(huì)用我的心來回報(bào)。倘若我的歌兒是愛的海誓山盟,請(qǐng)你原諒,當(dāng)樂曲平息時(shí)我的信證也不復(fù)存在,因?yàn)槁《竟?jié),誰會(huì)恪守五月的誓約。

假如你一定要傾心于我,請(qǐng)不要把它時(shí)刻記在心頭當(dāng)你笑語盈盈,一雙明眸閃著愛的歡樂,我的回答必然是狂熱而草率的,一點(diǎn)兒也不切合實(shí)際--你應(yīng)把它銘記在心,然后再把它永遠(yuǎn)忘卻。

4、《不要不辭而別,我愛》

不要不辭而別,我愛。我看望了一夜,現(xiàn)在我臉上睡意重重。

只恐我在睡中把你丟失了。不要不辭而別,我愛。

我驚起伸出雙手去摸觸你, 我問自己說:“這是一個(gè)夢(mèng)么?”

但愿我能用我的心系住你的雙足,緊抱在胸前!不要不辭而別,我愛。

5、《生如夏花》

我聽見回聲,來自山谷和心間。以寂寞的鐮刀收割空曠的靈魂。

不斷地重復(fù)決絕,又重復(fù)幸福。終有綠洲搖曳在沙漠。

我相信自己。生來如同璀璨的夏日之花。不凋不敗,妖治如火。承受心跳的負(fù)荷和呼吸的累贅。樂此不疲。

我聽見音樂,來自月光和胴體。輔極端的誘餌捕獲飄渺的唯美。一生充盈著激烈,又充盈著純?nèi)?。總有回憶貫穿于世間。

我相信自己。死時(shí)如同靜美的秋日落葉。不盛不亂,姿態(tài)如煙。即便枯萎也保留豐肌清骨的傲然。玄之又玄

我聽見愛情,我相信愛情。愛情是一潭掙扎的藍(lán)藻。如同一陣凄微的風(fēng)。穿過我失血的靜脈。駐守歲月的信念。

我相信一切能夠聽見。甚至預(yù)見離散,遇見另一個(gè)自己。而有些瞬間無法把握

任憑東走西顧,逝去的必然不返。請(qǐng)看我頭置簪花,一路走來一路盛開。頻頻遺漏一些,。又深陷風(fēng)霜雨雪的感動(dòng)

般若波羅蜜,一聲一聲。生如夏花,死如秋葉。還在乎擁有什么。

Flutter開發(fā)環(huán)境配置(MAC版)

(該路徑會(huì)有變化,可以關(guān)注Flutter社區(qū),隨時(shí)更新)

Documents為目錄,fluttersdk為sdk文件夾

cd 到對(duì)應(yīng)的項(xiàng)目工程中執(zhí)行命令:

在終端中執(zhí)行 flutter doctor 查看Android和iOS的開發(fā)環(huán)境,監(jiān)測(cè)到依賴若有缺失,會(huì)給出缺失的依賴的安裝結(jié)果,依照提示進(jìn)行安裝即可。

在命令終端執(zhí)行相關(guān)命令:

打開Android Studio應(yīng)用,打開菜單項(xiàng)Preferences Plugins中搜索Flutter插件并點(diǎn)擊install進(jìn)行安裝

打開 VS Code,可點(diǎn)擊 View - Command Palette,搜索flutter并點(diǎn)擊install進(jìn)行安裝

Flutter了解之手勢(shì)

描述了屏幕上指針(觸摸、鼠標(biāo)、觸控筆)的位置和移動(dòng)。

Flutter中可以使用Listener(功能性組件)來監(jiān)聽原始觸摸事件

例1

例2

例3

忽略PointerEvent

手勢(shì): 描述由一個(gè)或多個(gè)指針移動(dòng)組成的語義動(dòng)作,如拖動(dòng)、縮放、雙擊等。

Material大多數(shù)widget已經(jīng)對(duì)tap或手勢(shì)做出了響應(yīng)。 例如 IconButton和 FlatButton 響應(yīng)單擊,ListView響應(yīng)滑動(dòng)事件觸發(fā)滾動(dòng)。

用于手勢(shì)識(shí)別的功能性組件,通過它可以來識(shí)別各種手勢(shì)。

例(單擊)

例(添加Material觸摸水波效果 InkWell組件)

例(滑動(dòng)關(guān)閉 Dismissable組件)

例(單擊、雙擊、長(zhǎng)按)

例(滑動(dòng))

例(掃動(dòng)---單一方向)

例(縮放)

GestureRecognizer是一個(gè)抽象類。

一種手勢(shì)的識(shí)別器對(duì)應(yīng)一個(gè)GestureRecognizer的子類。

由于手勢(shì)競(jìng)爭(zhēng)最終只有一個(gè)勝出者,所以,當(dāng)有多個(gè)手勢(shì)識(shí)別器時(shí),可能會(huì)產(chǎn)生沖突。

在APP中經(jīng)常會(huì)需要一個(gè)廣播機(jī)制,用以跨頁面通知。比如一個(gè)需要登錄的APP中,頁面會(huì)關(guān)注用戶登錄或注銷事件,來進(jìn)行一些狀態(tài)更新。

這時(shí)候,一個(gè)事件總線便會(huì)非常有用,事件總線通常實(shí)現(xiàn)了訂閱者模式,訂閱者模式包含發(fā)布者和訂閱者兩種角色,可以通過事件總線來觸發(fā)事件和監(jiān)聽事件。

對(duì)于一些簡(jiǎn)單的應(yīng)用,事件總線是足以滿足業(yè)務(wù)需求的,如果決定使用狀態(tài)管理包的話,一定要想清楚APP是否真的有必要使用它,防止“化簡(jiǎn)為繁”、過度設(shè)計(jì)。

在widget樹中,每一個(gè)節(jié)點(diǎn)都可以分發(fā)通知,通知會(huì)沿著當(dāng)前節(jié)點(diǎn)向上傳遞,所有父節(jié)點(diǎn)都可以通過NotificationListener來監(jiān)聽通知。

Flutter中將這種由子向父的傳遞通知的機(jī)制稱為通知冒泡(Notification Bubbling)。

通知冒泡和用戶觸摸事件冒泡是相似的,但有一點(diǎn)不同:通知冒泡可以中止,但用戶觸摸事件不行。

通知冒泡和Web開發(fā)中瀏覽器事件冒泡原理是相似的,都是事件從出發(fā)源逐層向上傳遞,可以在上層節(jié)點(diǎn)任意位置來監(jiān)聽通知/事件,也可以終止冒泡過程,終止冒泡后,通知將不會(huì)再向上傳遞。

Flutter的UI框架實(shí)現(xiàn)中,除了在可滾動(dòng)組件在滾動(dòng)過程中會(huì)發(fā)出ScrollNotification之外,還有一些其它的通知,如SizeChangedLayoutNotification、KeepAliveNotification 、LayoutChangedNotification等,F(xiàn)lutter正是通過這種通知機(jī)制來使父元素可以在一些特定時(shí)機(jī)來做一些事情。

阻止冒泡

通知冒泡原理

Flutter上線項(xiàng)目實(shí)戰(zhàn)——Vap視頻動(dòng)畫

透明視頻動(dòng)畫是目前比較流行的實(shí)現(xiàn)動(dòng)畫的一種, 大廠也相繼開源自己的框架,最終我們選中 騰訊vap ,它支持了Android、IOS、Web,為我們封裝flutter_vap提供了天然的便利,并且它提供了將幀圖片生成帶alpha通道視頻的工具,這簡(jiǎn)直太贊了。

VAP(Video Animation Player)是企鵝電競(jìng)開發(fā),用于播放酷炫動(dòng)畫的實(shí)現(xiàn)方案。

video for youtube

video for qiniu

apk download

github


網(wǎng)站名稱:flutter關(guān)注粉絲的簡(jiǎn)單介紹
鏈接分享:http://weahome.cn/article/dsspsph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部