混合開發技術是目前移動開發領域的焦點技術,也是apicloud企業網際網路化生態平台的程式設計客棧核心技術,本文在介紹跨平台技術分類同時將進一步深度揭示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原生技術-j**a、object-c、c/c++等進行開發,而rn的開發過程則要求開發者使用js進行編碼輸出app,但在app執行過程中,js又對映回到安卓和ios原生層面執行。借助js快速實現編碼,翻譯為原生**執行,這就是中間語言編譯方向。
xamarin則要求使用微軟自己的語言c#,對於大部分開發者而言,c#的學習成本比較高且xamarin需要付費使用,因此它目前在國內應用比較少。flutter的開發語言為dart,它是谷歌發明的程式語言,這個語言很有趣,它的語法類似於c語言,又將js和j**a的一些設計思想以及語法規則融合了進去。dart語言在此前應用比較少,可參考的資料不多,開發者上手需要乙個過程。
html5 到跨平台app應用
每一項新興技術的出現和流行,都是為了規模化的去統一解決一系列複雜問題,apicloud選擇混合開發方向,目的是希望借助html5 降低app開發複雜度,提高app開發效率。
通過工程化的實踐手段,我們首先設計了乙個app開發引擎。簡單的向大家介紹一下這個引擎的架構:
整個引擎基於android和ios系統的原生技術架構
最上層為app應用層,涉及到業務以及功能相關的部分,要求開發者使用html + css進行ui布局和渲染,功能和業務邏輯則通過js實現,這是app開發者直接參與的地方。
第二層則是api層,api層核心的功能是橋接和管理,負責js與j**a,js與object-c之間的通訊,管理api的分發,以及一些js-framework的載入和執行。
引擎與模組的api通過這裡向開發者開放
接下來是引擎,引擎主要負責應用的訊息命令管理、事件管理、模組管理、以及ui渲染。
我們通過將android和ios系統的原生視窗機制抽象出來,再模擬原生的方式實現了乙個新的視窗系統,由widget/window/frame/ui model構成,形成混合渲染能力,使得app效能和體驗接近原生。
引擎通過開放模組機制,支援動態載入模組,豐富和增強app功能,滿足各式各樣的需求。
最底下則是os層,os層中主要涉及android和ios系統之間一些不同的特性,是我們要花大量時間精力進行適配和抽象的地方。
除此之外ahcgmbh,乙個app還應當具備符合android和ios原生app的生命週期特性,例如:如何啟動,啟動流程以及生命週期事件分發等。
以下是app開發引擎對app生命週期管理的主要處理流程。
引擎觸發app的生命週期同原生app一致,觸發點來自使用者
使用者點選桌面的某個圖示,或者點選手機狀態列的某個通知,系統會將這個事件分發到對應的app,引擎在收到這個事件後開始初始化。
初始化的過程為:原生視窗系統初始化,展示啟動頁->html5 執行環境初始化->載入模組執行環境->事件及訊息佇列管理初始化->根視窗開始渲染,之後開始載入html5 頁面,這個html5 頁面是整個appahcgmbh的入口。
app啟動完畢後進入等待狀態,由使用者的點選等事件驅動開啟新的視窗,載入新的模組,ui更新等。
通過app開發引擎,初步達到了使用html5 + native混合開發,提高開發效率的目的,然而實踐過程遠比想象的要複雜,為此apicloud在專產品層面付出了非凡的努力。
在浩瀚的人類文明中,得益於計算機的迅速發展和技術的廣泛應用,拉開了第三次工業革命的新篇章,與此同時資訊科技成為拉動經濟的重要增長點。
在移動網際網路時代,app開發技術無疑是行業發展的重要驅動力,企業對於產品快速落地與靈活迭代的迫切需求,則使跨平台開發技術廣泛應用;而apicloud通過擁有核心智財權的混合app開發技術,進一步幫助企業快速實現移動網際網路布局,並以生態之力為開發者提供全面的技術服務。
www.cppcns.com
免責宣告:本文為使用者投稿的文章,程式設計驛站發布此文僅為傳遞資訊,不代表程式設計驛站贊同其觀點,不對對內容真實性負責,僅供使用者參考之用,不構成任何投資、使用等行為的建議。請讀者使用之前核實真實性,以及可能存在的風險,任何後果均由讀者自行承擔。如有發現
本文標題: apicloud深度解析app跨平台開發技術分類
本文位址: /news/media/78847.html
APIcloud真機預覽app專案
你修改了專案之後,要先git提交或者svn提交,在官方都有說明,然後開啟ide,管理 同步到雲端 在做雲端同步前,開發者需要將變更的檔案,做一次本地提交 右鍵檔案或目錄或專案根目錄 git git add commit 雲端同步,指的是將已提交到本地 git 倉庫的變更,同步到雲端svn git伺服...
APICloud建立APP實現語音轉指令的功能
apicloud建立app實現語音轉指令的功能。這兩天有些語音指令上的功能上的需求,然後回到apicloud建立了個app,載入了幾個語音模組,簡單模擬一遍app上語音轉指令的操作。1.登陸apicloud賬號,建立app,使用studio ide 工具,從雲端匯入基本的app 然後找ui簡單設計了...
Const 深度解析
物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安...