APICloud深度解析App跨平臺開發技術分類

2022-11-09    分類: 網站建設

介紹跨平臺技術分類同時將進一步深度揭示APICloud混合開發技術的技術原理。

跨平臺技術的分類

目前跨平臺技術領域分為兩個發展方向:

第一個是HTML5 + Native混合方向;

第二個是中間語言編譯方向,其中APICloud和小程序都屬于前者。

HTML5 + Native混合,也就是我們通常所說的混合開發。

這種模式的開發主體是HTML5,但整個app的架構是Native架構:通過HTML5 快速實現app的UI布局、產品業務邏輯,在開發過程中涉及HTML5 無法實現或者體驗不好的功能,則借助Native模塊來實現。

混合開發在保證app渲染效率和用戶體驗的同時,能夠降低app開發成本和復雜度,提高app開發效率。

中間語言編譯方向,代表產品為React Native(RN),Xamarin以及Google剛剛發布的Flutter。

如何理解中間語言編譯?

以RN為例,傳統的app開發,要求開發者使用Android和iOS原生技術-Java、Object-C、C/C++等進行開發,而RN的開發過程則要求開發者使用JS進行編碼輸出app,但在app執行過程中,JS又映射回到安卓和iOS原生層面執行。借助JS快速實現編碼,翻譯為原生代碼執行,這就是中間語言編譯方向。

Xamarin則要求使用微軟自己的語言C#,對于大部分開發者而言,C#的學習成本比較高且Xamarin需要付費使用,因此它目前在國內應用比較少。Flutter的開發語言為Dart,它是谷歌發明的編程語言,這個語言很有趣,它的語法類似于C語言,又將JS和Java的一些設計思想以及語法規則融合了進去。Dart語言在此前應用比較少,可參考的資料不多,開發者上手需要一個過程。

Html5 到跨平臺APP應用

每一項新興技術的出現和流行,都是為了規模化的去統一解決一系列復雜問題,APICloud選擇混合開發方向,目的是希望借助HTML5 降低app開發復雜度,提高app開發效率。

通過工程化的實踐手段,我們首先設計了一個app開發引擎。簡單的向大家介紹一下這個引擎的架構:

整個引擎基于Android和iOS系統的原生技術架構

最上層為app應用層,涉及到業務以及功能相關的部分,要求開發者使用HTML + CSS進行UI布局和渲染,功能和業務邏輯則通過JS實現,這是app開發者直接參與的地方。

第二層則是API層,API層核心的功能是橋接和管理,負責JS與Java,JS與Object-C之間的通訊,管理API的分發,以及一些JS-Framework的加載和執行。

引擎與模塊的API通過這里向開發者開放

接下來是引擎,引擎主要負責應用的消息命令管理、事件管理、模塊管理、以及UI渲染。

我們通過將Android和iOS系統的原生窗口機制抽象出來,再模擬原生的方式實現了一個新的窗口系統,由Widget/Window/Frame/UI Model構成,形成混合渲染能力,使得app性能和體驗接近原生。

引擎通過開放模塊機制,支持動態載入模塊,豐富和增強app功能,滿足各式各樣的需求。

最底下則是OS層,OS層中主要涉及Android和iOS系統之間一些不同的特性,是我們要花大量時間精力進行適配和抽象的地方。

除此之外,一個app還應當具備符合Android和iOS原生app的生命周期特性,例如:如何啟動,啟動流程以及生命周期事件分發等。

以下是app開發引擎對app生命周期管理的主要處理流程。

引擎觸發app的生命周期同原生app一致,觸發點來自用戶

用戶點擊桌面的某個圖標,或者點擊手機狀態欄的某個通知,系統會將這個事件分發到對應的app,引擎在收到這個事件后開始初始化。

初始化的過程為:原生窗口系統初始化,展示啟動頁->HTML5 運行環境初始化->加載模塊運行環境->事件及消息隊列管理初始化->根窗口開始渲染,之后開始加載HTML5 頁面,這個HTML5 頁面是整個app的入口。

App啟動完畢后進入等待狀態,由用戶的點擊等事件驅動打開新的窗口,加載新的模塊,UI更新等。

通過app開發引擎,初步達到了使用HTML5 + Native混合開發,提高開發效率的目的,然而實踐過程遠比想象的要復雜,為此APICloud在專產品層面付出了非凡的努力。

名稱欄目:APICloud深度解析App跨平臺開發技術分類
文章位置:http://m.kartarina.com/news/211953.html

成都網站建設公司_創新互聯,為您提供網站改版網站策劃ChatGPT用戶體驗微信公眾號搜索引擎優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化
主站蜘蛛池模板: 国产精品热久久无码av| 亚洲高清无码综合性爱视频| 久久人妻少妇嫩草AV无码蜜桃| 无码熟妇人妻AV在线影院| 国产成人无码a区在线观看视频免费| 中文字幕乱码人妻无码久久| 无码不卡av东京热毛片| 潮喷失禁大喷水aⅴ无码| 中文无码不卡的岛国片| 伊人久久精品无码二区麻豆| 久久亚洲中文无码咪咪爱| 人妻少妇乱子伦无码视频专区| 无码视频免费一区二三区| 人妻少妇乱子伦无码视频专区 | 中文字幕精品无码一区二区 | 久久久无码中文字幕久...| 免费无码又爽又刺激高潮| 亚洲AV无码一区二区三区人| 久久人妻内射无码一区三区| 精品久久久久久无码人妻热| 国产在线拍揄自揄拍无码视频| 亚洲韩国精品无码一区二区三区| 亚洲国产超清无码专区| 人妻精品无码一区二区三区| 中文字幕丰满乱孑伦无码专区| 免费a级毛片无码a∨蜜芽试看| 无码播放一区二区三区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲另类无码专区丝袜| 无码国产精品一区二区免费vr | 中文国产成人精品久久亚洲精品AⅤ无码精品 | 东京热加勒比无码视频| 一本天堂ⅴ无码亚洲道久久 | 亚洲精品无码永久在线观看你懂的| 成人免费无码视频在线网站| 亚洲av无码片vr一区二区三区| 久久精品无码专区免费青青| 亚洲综合无码一区二区痴汉| 亚洲日韩精品无码专区加勒比 | 人妻系列无码专区无码中出| 亚洲动漫精品无码av天堂|