谷歌推安卓應(yīng)用開(kāi)發(fā)語(yǔ)言Sky
5月4日,碼農(nóng)易友們可能會(huì)知道,現(xiàn)在我們?cè)谑忻嫔纤吹降拇蟛糠址怯螒虬沧繎?yīng)用都是由Java語(yǔ)言來(lái)編寫(xiě)的。日前,Google內(nèi)部一個(gè)團(tuán)隊(duì)正在測(cè)試一種全新安卓應(yīng)用編程方式和編程語(yǔ)言,那就是Google的網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言Dart。
Dart的目標(biāo)是實(shí)現(xiàn)完全獨(dú)立、高效地開(kāi)發(fā)安卓應(yīng)用,并能實(shí)現(xiàn)與網(wǎng)頁(yè)瀏覽很好的契合,整個(gè)過(guò)程都將不需要借助Java語(yǔ)言的協(xié)助。
Dart語(yǔ)言起初是因?yàn)镚oogle Chrome V8 Javascript引擎團(tuán)隊(duì)的工程師們無(wú)法忍受那款用了20多年的舊版編程語(yǔ)言所帶給人的糟糕體驗(yàn),于是他們親自動(dòng)手,開(kāi)發(fā)出了Dart語(yǔ)言。
而在日前,這個(gè)團(tuán)隊(duì)也順利召開(kāi)了Dart Developer Summit(Dart開(kāi)發(fā)者峰會(huì)),并在會(huì)上向所有人展示了Dart語(yǔ)言是如何服務(wù)于開(kāi)發(fā)安卓應(yīng)用的。
其實(shí),為安卓而生的Dart語(yǔ)言還有一個(gè)更高上大的名字——“Sky”。就目前看來(lái),Sky語(yǔ)言還處于開(kāi)源測(cè)試階段,但是同傳統(tǒng)的應(yīng)用開(kāi)發(fā)語(yǔ)言相比,Sky承諾,將為開(kāi)發(fā)者們提供更多便利。
對(duì)Sky來(lái)說(shuō),高效性和及時(shí)性是它在安卓應(yīng)用開(kāi)發(fā)過(guò)程中最希望達(dá)到的效果。對(duì)大多數(shù)設(shè)備和應(yīng)用開(kāi)發(fā)者來(lái)說(shuō),60幀(Hz)是能實(shí)現(xiàn)畫(huà)面清晰和流程的最理想標(biāo)準(zhǔn),而Dart語(yǔ)言開(kāi)發(fā)團(tuán)隊(duì)希望能將這個(gè)標(biāo)準(zhǔn)突破性地提升到120幀。這對(duì)于現(xiàn)在標(biāo)準(zhǔn)智能手機(jī)60幀的顯示屏來(lái)說(shuō),還顯得有些可望而不可及。
讀者朋友們乍聽(tīng)之下可能會(huì)覺(jué)得有些天方夜譚。就安卓手機(jī)?它連60幀都無(wú)法保證吧,還敢做120幀?我們?cè)诖艘残枰獙?duì)那些不太了解這些數(shù)據(jù)的易友們科普一下,如果要讓一款軟件以60幀的畫(huà)面運(yùn)行,這就意味著它需要支持每16毫秒繪完一幀的速度。如果一款應(yīng)用無(wú)法達(dá)到每16毫秒一幀這一底線的話,它就不可避免地會(huì)出現(xiàn)屏閃或卡頓的現(xiàn)象。
Sky語(yǔ)言開(kāi)發(fā)團(tuán)隊(duì)也在此前的演示中,向我們展示了一款測(cè)試用的App,它的整套系統(tǒng)支持高達(dá)1.2毫秒一幀的驚人繪制速度。雖然這還只是一個(gè)簡(jiǎn)單的例子,但是卻也向我們展示了Sky確實(shí)能帶給開(kāi)發(fā)者們帶來(lái)無(wú)窮的想象空間:能在更大型復(fù)雜的游戲中,體驗(yàn)到如絲般順滑的操作體驗(yàn)。這也讓我們對(duì)120幀(8毫秒一幀)的美好愿景成為了可能。
Sky語(yǔ)言開(kāi)發(fā)團(tuán)隊(duì)還表示:“Sky的獨(dú)特設(shè)計(jì)能讓它編寫(xiě)出的應(yīng)用永遠(yuǎn)也不會(huì)出現(xiàn)閃屏現(xiàn)象,它的APIs不會(huì)影響UI主線程”。通俗地講,這意味著即便應(yīng)用運(yùn)行緩慢了,它的UI界面仍將保持流暢和靈敏。
Sky語(yǔ)言的網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言背景也將很好地兼容移動(dòng)領(lǐng)域。只要你裝載了Dart語(yǔ)言虛擬機(jī),Dart就可以支持在任何平臺(tái)上進(jìn)行編程,而這其中也包括Android和iOS。
這些由Sky語(yǔ)言開(kāi)發(fā)出來(lái)的應(yīng)用運(yùn)行起來(lái)會(huì)有些像網(wǎng)頁(yè)應(yīng)用。雖然Sky內(nèi)置了極簡(jiǎn)的安卓APK,但它的最大部分應(yīng)用是基于HTTP協(xié)議的,這可以讓?xiě)?yīng)用實(shí)現(xiàn)網(wǎng)頁(yè)的兼容性部署,讓任何人都能在上面運(yùn)行最新版本的應(yīng)用。而URLs也是Sky的基礎(chǔ)層,所以你只要懂網(wǎng)頁(yè)編程,就差不多能玩Sky了。
但這樣說(shuō)來(lái),我們也可以看到一個(gè)顯而易見(jiàn)的短處:一旦你下線了,這些應(yīng)用也將停止運(yùn)行,并且在每次重啟時(shí),你都需要等上一兩秒的時(shí)間來(lái)加載數(shù)據(jù)。但是,這些問(wèn)題實(shí)際上都可以靠緩存來(lái)輕松解決。
基于HTTP協(xié)議,讓整個(gè)應(yīng)用的開(kāi)發(fā)流程都變得更容易上手。不像傳統(tǒng)編寫(xiě)應(yīng)用那樣,開(kāi)發(fā)者們?cè)诟聭?yīng)用時(shí),不需要再編寫(xiě)代碼,編譯程序,或是安裝新應(yīng)用了。所有的代碼編寫(xiě)都是在HTTP服務(wù)器上完成的。程序升級(jí)只需要簡(jiǎn)單地關(guān)閉程序,然后重啟就可以實(shí)現(xiàn)了。
這樣編寫(xiě)出的應(yīng)用就像一款瀏覽器那樣方便。對(duì)于那些開(kāi)發(fā)安卓應(yīng)用的開(kāi)發(fā)者們來(lái)說(shuō),Sky還為他們提供了滿滿一籃子的編程小工具,可以讓開(kāi)發(fā)者們?cè)趹?yīng)用中輕松添加指令欄,觸屏效果,操作盤(pán)等等這些你在應(yīng)用開(kāi)發(fā)過(guò)程中,所能想到的一切。
基于Sky開(kāi)發(fā)出來(lái)的應(yīng)用,將具備安卓應(yīng)用的一切特點(diǎn)。它就像普通的安卓應(yīng)用那樣,但考慮到這些應(yīng)用會(huì)自動(dòng)從網(wǎng)頁(yè)服務(wù)器那兒更新數(shù)據(jù),所以,如何解決好安全問(wèn)題,是Sky團(tuán)隊(duì)現(xiàn)在所需面對(duì)的最大問(wèn)題。
雖然,我們已經(jīng)在前面提過(guò),Sky語(yǔ)言目前還處于測(cè)試階段,但在它正真成為一個(gè)不可忽視的編程語(yǔ)言前,我們必須要充分考慮到像安全和隱私這一類與我們息息相關(guān)的重要問(wèn)題。
Sky語(yǔ)言開(kāi)發(fā)團(tuán)隊(duì)也在它們的GitHub主頁(yè)上留言道:“我們還在忙著測(cè)試升級(jí)Sky語(yǔ)言,它的框架和底層引擎都還常出現(xiàn)兼容性問(wèn)題。”
但是,Sky語(yǔ)言關(guān)注的是開(kāi)發(fā)安卓應(yīng)用的高效性和顛覆性的開(kāi)發(fā)過(guò)程,這讓它的前景看起來(lái)一片光明,而我們也還需要更多時(shí)間來(lái)繼續(xù)觀察。





