混合開發(fā)技術(shù)是目前移動開發(fā)領(lǐng)域的焦點(diǎn)技術(shù),也是APICloud企業(yè)互聯(lián)網(wǎng)化生態(tài)平臺的核心技術(shù),本文在介紹跨平臺技術(shù)分類同時將進(jìn)一步深度揭示APICloud混合開發(fā)技術(shù)的技術(shù)原理。
跨平臺技術(shù)的分類
目前跨平臺技術(shù)領(lǐng)域分為兩個發(fā)展方向:
第一個是HTML5 + Native混合方向;
第二個是中間語言編譯方向,其中APICloud和小程序都屬于前者。
HTML5 + Native混合,也就是我們通常所說的混合開發(fā)。
這種模式的開發(fā)主體是HTML5,但整個app的架構(gòu)是Native架構(gòu):通過HTML5快速實(shí)現(xiàn)app的UI布局、產(chǎn)品業(yè)務(wù)邏輯,在開發(fā)過程中涉及HTML5無法實(shí)現(xiàn)或者體驗不好的功能,則借助Native模塊來實(shí)現(xiàn)。
混合開發(fā)在保證app渲染效率和用戶體驗的同時,能夠降低app開發(fā)成本和復(fù)雜度,提高app開發(fā)效率。
中間語言編譯方向,代表產(chǎn)品為React Native(RN),Xamarin以及Google剛剛發(fā)布的Flutter。
如何理解中間語言編譯?
以RN為例,傳統(tǒng)的app開發(fā),要求開發(fā)者使用Android和iOS原生技術(shù)-Java、Object-C、C/C++等進(jìn)行開發(fā),而RN的開發(fā)過程則要求開發(fā)者使用JS進(jìn)行編碼輸出app,但在app執(zhí)行過程中,JS又映射回到安卓和iOS原生層面執(zhí)行。借助JS快速實(shí)現(xiàn)編碼,翻譯為原生代碼執(zhí)行,這就是中間語言編譯方向。
Xamarin則要求使用微軟自己的語言C#,對于大部分開發(fā)者而言,C#的學(xué)習(xí)成本比較高且Xamarin需要付費(fèi)使用,因此它目前在國內(nèi)應(yīng)用比較少。Flutter的開發(fā)語言為Dart,它是谷歌發(fā)明的編程語言,這個語言很有趣,它的語法類似于C語言,又將JS和Java的一些設(shè)計思想以及語法規(guī)則融合了進(jìn)去。Dart語言在此前應(yīng)用比較少,可參考的資料不多,開發(fā)者上手需要一個過程。
Html5到跨平臺APP應(yīng)用
每一項新興技術(shù)的出現(xiàn)和流行,都是為了規(guī)模化的去統(tǒng)一解決一系列復(fù)雜問題,APICloud選擇混合開發(fā)方向,目的是希望借助HTML5降低app開發(fā)復(fù)雜度,提高app開發(fā)效率。
通過工程化的實(shí)踐手段,我們首先設(shè)計了一個app開發(fā)引擎。簡單的向大家介紹一下這個引擎的架構(gòu):
整個引擎基于Android和iOS系統(tǒng)的原生技術(shù)架構(gòu)
最上層為app應(yīng)用層,涉及到業(yè)務(wù)以及功能相關(guān)的部分,要求開發(fā)者使用HTML + CSS進(jìn)行UI布局和渲染,功能和業(yè)務(wù)邏輯則通過JS實(shí)現(xiàn),這是app開發(fā)者直接參與的地方。
第二層則是API層,API層核心的功能是橋接和管理,負(fù)責(zé)JS與Java,JS與Object-C之間的通訊,管理API的分發(fā),以及一些JS-Framework的加載和執(zhí)行。
引擎與模塊的API通過這里向開發(fā)者開放
接下來是引擎,引擎主要負(fù)責(zé)應(yīng)用的消息命令管理、事件管理、模塊管理、以及UI渲染。
我們通過將Android和iOS系統(tǒng)的原生窗口機(jī)制抽象出來,再模擬原生的方式實(shí)現(xiàn)了一個新的窗口系統(tǒng),由Widget/Window/Frame/UI Model構(gòu)成,形成混合渲染能力,使得app性能和體驗接近原生。
引擎通過開放模塊機(jī)制,支持動態(tài)載入模塊,豐富和增強(qiáng)app功能,滿足各式各樣的需求。
最底下則是OS層,OS層中主要涉及Android和iOS系統(tǒng)之間一些不同的特性,是我們要花大量時間精力進(jìn)行適配和抽象的地方。
除此之外,一個app還應(yīng)當(dāng)具備符合Android和iOS原生app的生命周期特性,例如:如何啟動,啟動流程以及生命周期事件分發(fā)等。
以下是app開發(fā)引擎對app生命周期管理的主要處理流程。
引擎觸發(fā)app的生命周期同原生app一致,觸發(fā)點(diǎn)來自用戶
用戶點(diǎn)擊桌面的某個圖標(biāo),或者點(diǎn)擊手機(jī)狀態(tài)欄的某個通知,系統(tǒng)會將這個事件分發(fā)到對應(yīng)的app,引擎在收到這個事件后開始初始化。
初始化的過程為:原生窗口系統(tǒng)初始化,展示啟動頁->HTML5運(yùn)行環(huán)境初始化->加載模塊運(yùn)行環(huán)境->事件及消息隊列管理初始化->根窗口開始渲染,之后開始加載HTML5頁面,這個HTML5頁面是整個app的入口。
App啟動完畢后進(jìn)入等待狀態(tài),由用戶的點(diǎn)擊等事件驅(qū)動打開新的窗口,加載新的模塊,UI更新等。
通過app開發(fā)引擎,初步達(dá)到了使用HTML5 + Native混合開發(fā),提高開發(fā)效率的目的,然而實(shí)踐過程遠(yuǎn)比想象的要復(fù)雜,為此APICloud在專產(chǎn)品層面付出了非凡的努力。
在浩瀚的人類文明中,得益于計算機(jī)的迅速發(fā)展和技術(shù)的廣泛應(yīng)用,拉開了第三次工業(yè)革命的新篇章,與此同時信息技術(shù)成為拉動經(jīng)濟(jì)的重要增長點(diǎn)。
在移動互聯(lián)網(wǎng)時代,app開發(fā)技術(shù)無疑是行業(yè)發(fā)展的重要驅(qū)動力,企業(yè)對于產(chǎn)品快速落地與靈活迭代的迫切需求,則使跨平臺開發(fā)技術(shù)廣泛應(yīng)用;而APICloud通過擁有核心知識產(chǎn)權(quán)的混合app開發(fā)技術(shù),進(jìn)一步幫助企業(yè)快速實(shí)現(xiàn)移動互聯(lián)網(wǎng)布局,并以生態(tài)之力為開發(fā)者提供全面的技術(shù)服務(wù)。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 為什么年輕人不愛換手機(jī)了
- 柔宇科技未履行金額近億元被曝已6個月發(fā)不出工資
- 柔宇科技被曝已6個月發(fā)不出工資 公司回應(yīng)欠薪有補(bǔ)償方案
- 第六座“綠動未來”環(huán)保公益圖書館落地貴州山區(qū)小學(xué)
- 窺見“新紀(jì)元”,2021元宇宙產(chǎn)業(yè)發(fā)展高峰論壇“廣州啟幕”
- 以人為本,景悅科技解讀智慧城市發(fā)展新理念
- 紐迪瑞科技/NDT賦能黑鯊4 Pro游戲手機(jī)打造全新一代屏幕壓感
- 清潔家電新老玩家市場定位清晰,攜手共進(jìn),核心技術(shù)決定未來
- 新思科技與芯耀輝在IP產(chǎn)品領(lǐng)域達(dá)成戰(zhàn)略合作伙伴關(guān)系
- 芯耀輝加速全球化部署,任命原Intel高管出任全球總裁
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。