HTML5到跨平臺App應用深度解析

本文將進一步介紹跨平臺技術的分類,並深度揭示APICloud混合開發技術的技術原理。編程

跨平臺技術的分類小程序

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

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

第二個是中間語言編譯方向,其中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在專產品層面付出了非凡的努力。

在浩瀚的人類文明中,得益於計算機的迅速發展和技術的普遍應用,拉開了第三次工業革命的新篇章,與此同時信息技術成爲拉動經濟的重要增加點。

在移動互聯網時代,app開發技術無疑是行業發展的重要驅動力,企業對於產品快速落地與靈活迭代的迫切需求,則使跨平臺開發技術普遍應用;而APICloud經過擁有核心知識產權的混合app開發技術,進一步幫助企業快速實現移動互聯網布局,並以生態之力爲開發者提供全面的技術服務。

相關文章
相關標籤/搜索