精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

面向萬物智聯的應用框架的思考和探索(中)

HarmonyOS開發者 ? 來源:HarmonyOS開發者 ? 2023-05-06 15:43 ? 次閱讀

作者:yuzhiqiang

應用框架,是操作系統連接開發者生態,實現用戶體驗的關鍵基礎設施。其中,開發效率和運行體驗是永恒的訴求,業界也在持續不斷的發展和演進。

本文重點圍繞移動應用框架,梳理其關鍵發展脈絡,并分析其背后的技術演進思路以及目前的局限;同時,進一步結合萬物智聯的新場景和新生態,圍繞相應的應用框架的設計和演進,分享個人在這個領域的思考,實踐,以及下一步探索。

“預見未來的最好方式,就是創造未來”–亞伯拉罕 · 林肯

1、面向萬物智聯的應用框架的架構設計思考

1.1萬物智聯下的新場景,新需求

隨著越來越多設備的智能化,新的場景以及新的需求也逐步呈現,主要包括:

a.更多的不同形態的設備支持。包括各類屏幕(不同分辨率,尺寸,縱橫比,折疊屏的折疊/展開切換,“劉海屏”等),以及各種交互模式(觸控、鍵盤、鼠標、遙控器,表冠,語音,3D手勢等)。

b.更多的不同能力的設備支持。包括各種芯片規格,各種RAM(Random Access Memo-ry)/ROM(Read Only Memory)規格(百KB級別,MB級別到GB級別),各種系統能力規格等。

c.設備之間的交互。包括應用在設備之間流轉,協同等。

除此之外,對應用開發者而言,還有兩類非常重要的需求:

Ⅰ、跨OS(Operating System)平臺能力

由于事實上多個主流OS的存在,如何有效的提升可同時支持不同OS(比如iOSAndroid等)的應用開發效率是個重要的需求。目前開發者主要還是依賴三方跨平臺框架。有些應用開發者在某些場景下,因為原生框架所帶來的效果體驗不一致帶來較大的適配成本,甚至在一些關鍵模塊不使用原生應用框架的能力,而是重新設計一套具備跨平臺一致性的方案。

Ⅱ、動態化內容部署能力

如何將業務的內容在不違反相關規則的情況下迅速部署到客戶端,以便業務快速觸達客戶,也是大多數應用比較通用的需求。目前主要是應用開發者通過設計相關框架能力來支撐,不用應用采用方案各不相同。

這些對應用框架的設計都提出了新的要求,包括自適應能力、模塊化能力,分布式能力,跨平臺能力,動態內容更新能力等。當然,有些場景需要OS底層本身也要做相應的演進,比如可部署到更輕量的設備,分布式基礎設施構建等。

1.2 目前應用框架的局限:

縱觀現有的各類方案,在新興的場景和應用需求下,逐漸呈現出一定的局限性。

1.2.1原生應用框架

先說Apple。以Apple的iOS上的應用框架為例,它在面向開發者的簡潔高效,面向消費者的自然流暢,語言、框架、工具的以及軟硬件的緊密結合,生態的管控等方面都是第一流的。Apple的生態是自閉環的,也是有明確邊界的,這樣的策略在Apple生態是一家獨大時問題不大,但當事實上是多個主流OS生態并存,尤其隨著萬物智聯的生態進一步擴展時,Apple的方式呈現出了一定的局限性:

1)Apple的應用框架僅限于自身OS系列,比如SwiftUI只會關注iOS, iPadOS,macOS等,并沒有考慮如何在其它OS上實現一定的復用能力。

另外,對應用常見的應用內容動態更新的需求,Apple則是嚴格的限制,并沒有在框架層面考慮怎么在一個合適范圍內提供一定的支持。

2)Apple的應用框架對系統設備有較高的要求,無法支撐輕量化的智能設備(比如M級內存的設備等)。當然,這個也和Apple目前自身的定位相關。

再說Google。以Android為例,目前主推的Kotlin和以及Jetpack Compose基本是Google為了逐步擺脫Java,并對標Apple的Swift以及SwiftUI而研發的產物。Google的整體策略相對開放,在架構上, Jetpack Compose做了分層解耦的設計,提供不同層次的API的開發能力供開發者靈活接入。另外,在跨OS平臺維度,Jetpack Compose也做了一定的考慮,除了Android之外,通過JetBrains的推進, 也可支持PC平臺(Windows/macOS)等。不過,目前Jetpack Compose在成熟度,以及多設備以及相關配套工具層面能力和Apple的SwfitUI相比還有不少差距。另外,前面所說的輕量化設備的支持,以及動態化內容更新的能力,也未涉及。

1.2.2三方跨平臺應用框架

三方跨平臺框架也在不斷演進。下圖總結了典型的三方框架的關鍵特征:

e73a0b66-e6ff-11ed-ab56-dac502259ad0.png

Figure 1對比原生框架,典型三方跨平臺框架的關鍵特征

另外,從語言角度,盡管JS/TS具備較強的生態能力,業界也在不斷的演進相應的引擎、工具鏈,但從對標原生語言的性能體驗維度,還是有關鍵的不足,如下圖所示:

e75e825c-e6ff-11ed-ab56-dac502259ad0.png

Figure 2對比原生語言,JS/TS的現狀以及不足

上圖簡要描述了JS/TS從編譯到運行的大致過程。盡管業界在JS引擎方面持續在做優化提升,比如注重高性能JIT能力的Google的V8以及Apple的JavaScriptCore, 注重輕量化、高效解析能力的Facebook的Hermes, 個人開發者Fabrice Bellard的QuickJS等,但如果要對標原生語言的運行體驗,還有幾個重點的維度有待進一步突破:

1)結合類型信息的優化,和更精細化類型的引入;

2)結合PGO(Profiling Guide Optimiza-tion)的AOT能力;

3)更高效的并行化機制等。

1.3如何設計應用框架,實現系統性跨越

如上所述,現有的原生應用框架以及三方跨平臺框架都有自身定位/設計上的局限。那在萬物智聯的場景下,應該如何設計應用框架,才能較好的滿足相關要求,并實現系統性跨越

讓我們先回歸本源,審視一下應用框架要解決的核心問題。按遞進關系,個人總結了三個維度的關鍵需求,如下所示:

e776b084-e6ff-11ed-ab56-dac502259ad0.png

Figure 3 應用框架要解決的核心問題

對同一OS平臺而言,應用框架要解決的核心問題主要有三類:1.開發效率;2.性能體驗;3.跨設備能力。

而當事實上有多個主流OS平臺長期并存時,跨平臺的需求,或者更準確的說,如何進一步降低主流平臺上應用適配的成本,就變的非常重要。它包括不同平臺上的開發效率,性能體驗,以及SDK包大小等要素。

除此之外,隨著業務演進,動態化內容更新機制也演變為了非常關鍵的需求。

要構建可對標主流操作系統(e.g. iOS,Android)原生應用框架,并能夠在面向萬物智聯的場景實現進一步跨越的新一代應用框架,個人認為,至少需圍繞以下幾個方面進行系統性的布局和設計:語言生態以及性能體驗;聲明式開發框架能力;跨設備自適應以及彈性部署能力;跨平臺能力。

1.2.3.1語言生態以及性能體驗

iOS平臺的Swift以及Android平臺的Kotlin已經各自形成了相應的平臺的主導語言,并有相應的公司來主導。對于新的OS平臺而言,創造全新的語言是一種方式,不過語言以及相關生態的發展需要比較長的周期(從正式發布到一定規模的應用一般至少需要5年以上的時間)。還有另外一種方式,則是選取現有的相對中立的并有廣泛應用基礎的語言,并在此基礎上演進。JS/TS即是這樣的語言,它應用生態廣泛,也有相應的業界標準-ECMAScript來持續演進。

以下圖片來源于RedMonk官網:

https://redmonk.com/rstephens/2022/03/28/top-20-jan-2022/)

它顯示了2012-2022這十年來的編程語言的熱度排名情況(綜合考慮Github熱度以及StackOverflow熱度)。如下所示,JS/TS語言持續領先。

e7a307e2-e6ff-11ed-ab56-dac502259ad0.png

Figure 4編程語言排行榜- RedMonk

如之前分析,要讓JS/TS具備可對標主流平臺原生語言的性能以及開發體驗,需要在語言、編譯器以及運行時實現關鍵的跨越:

1)基于類型信息的編譯以及運行時優化

2)AOT能力,并可根據關鍵執行路徑信息的反饋實現進一步優化

3)高效的并行化機制

4)聲明式語法擴展,實現簡潔自然的開發體驗

以這些為基礎,配合相應的優化的語言標準庫,更細粒度的類型擴展,比如64位/128位等數值類型進一步結合硬件實現SIMD(Single Instruction Multiple Data)的加速等,就具備了能達成高效的語言執行性能的關鍵能力。另外,在高效開發方面,除了語言層面的聲明式語法擴展,還可以進一步針對分布式場景對數據類型做相應擴展,提升跨設備場景下應用開發體驗。

1.2.3.2聲明式開發框架

聲明式開發框架的核心就是以簡潔自然的方式來描述UI,并通過數據的變化來驅動UI的自動變更。

從UI描述維度,它的關鍵組成如下(簡潔自然是關鍵需求):

a. 一套UI描述機制,包括基礎結構語法,基礎布局/組件/動效/事件處理/生命周期,以及組件化機制實現UI的積木式組合等

b.一套狀態管理描述機制,包括數據和UI的關聯,數據的共享和傳遞機制等

c.一套自定義擴展以及定制化機制,包括可自定義布局/繪制/動效,可對現有組件根據需要做定制/動態擴展等

從運行時維度,它的關鍵要素如下(性能體驗是關鍵需求):

a.高效的UI渲染管線,并可實現組件/屬性按需組合降低內存開銷

b.高效的狀態管理/UI更新機制,根據數據變化精準定位刷新范圍

c.自適應UI能力,以及多態組件能力(同一UI描述在不同設備可自動實現不同UI效果,自動適配不同的用戶交互模式等)

d.平臺無關的一致性渲染能力

另外,在配套的工具層面,比如IDE,需具備實時預覽能力(包括雙向預覽,多設備預覽,預覽和調試融合等)。

1.2.3.3跨設備自適應以及彈性部署能力

這里主要包括針對不同形態的設備的自適應(包括布局,控件形態等),不同能力的設備彈性部署(包括設備的提供API差異,系統所需的資源差異等)。從架構設計而言,則需具備組件解耦,按需加載,以及輕量化等能力。

1.2.3.4跨平臺

這里主要包括平臺抽象層設計以及各個主流OS相應的適配實現,相關的工具鏈支持等。這樣就可以基于一套主代碼,部署到不同的OS平臺上。其中的關鍵要素包括通用的API設計和實現(提升應用代碼的復用度),組件化機制(降低SDK大小),以及上述提到的平臺一致化渲染能力等。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    453

    文章

    50387

    瀏覽量

    421782
  • Android
    +關注

    關注

    12

    文章

    3923

    瀏覽量

    127128
  • Apple
    +關注

    關注

    1

    文章

    925

    瀏覽量

    52752
  • 操作系統
    +關注

    關注

    37

    文章

    6737

    瀏覽量

    123190
  • iOS
    iOS
    +關注

    關注

    8

    文章

    3393

    瀏覽量

    150435

原文標題:面向萬物智聯的應用框架的思考和探索(中)

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    萬物互聯時代引領者—微聯網云服務平臺

    ,博大光通站在“萬物互聯,智領未來”的高度上,攜手華為云為具有互聯網+產業需求的企業提供“微企業級云平臺”。  微云平臺是
    發表于 05-21 16:52

    萬物的LoRaWAN協議詳解

    當今信息化社會,萬物互聯成為可能,工程師們的營養資料來了。
    發表于 09-15 14:45

    HarmonyOS IoT首著,走進萬物互聯的世界!

    —— 一生萬物萬物歸一(One as All, All as One)。HarmonyOS(鴻蒙操作系統)是一款“面向未來”的操作系統,是萬物互聯的基礎,會給人們的生活帶來巨大的變化
    發表于 06-16 16:45

    HarmonyOS IoT首著,走進萬物互聯的世界!

    —— 一生萬物萬物歸一(One as All, All as One)。HarmonyOS(鴻蒙操作系統)是一款“面向未來”的操作系統,是萬物互聯的基礎,會給人們的生活帶來巨大的變化
    發表于 06-16 17:08

    技術構筑萬物,第一屆OpenHarmony技術峰會圓滿舉行

    高校和科研機構參與到OpenHarmony來,培養更多操作系統人才。讓我們一起攻堅克難,攜手打造業界領先的操作系統,共筑萬物的數字底座,使能千行百業數字化轉型!華為常務董事、終端BG CEO、智能汽車
    發表于 02-27 17:07

    TSC峰會回顧03 | 面向萬物的應用框架思考探索

    用戶體驗的關鍵基礎設施。業務的飛速發展促進了應用框架不斷演進和變化。在萬物的新場景下,應用框架應該如何設計呢?華為終端開發框架首席架構師
    發表于 04-19 15:15

    # 面向萬物的應用框架思考探索(上)

    演進思路以及目前的局限;同時,進一步結合萬物的新場景和新生態,圍繞相應的應用框架的設計和演進,分享個人在這個領域的思考,實踐,以及下一步探索
    發表于 05-04 10:48

    面向萬物的應用框架思考探索

    演進思路以及目前的局限;同時,進一步結合萬物的新場景和新生態,圍繞相應的應用框架的設計和演進,分享個人在這個領域的思考,實踐,以及下一步探索
    發表于 05-05 14:41

    面向萬物的應用框架思考探索(下)

    態,圍繞相應的應用框架的設計和演進,分享個人在這個領域的思考,實踐,以及下一步探索。 “萬物皆有裂縫,那是光照進來的地方”– 萊昂納德 · 科恩 1、具體案例分析:ArkUI開發
    發表于 05-06 10:17

    面向萬物的應用框架思考探索

    本文轉載自 OpenHarmony TSC 《峰會回顧第3期 | 面向萬物的應用框架思考探索
    發表于 08-08 17:04

    中國電信加快數字化轉型,為萬物互聯注智

    2018年9月15日,中國電信董事長楊杰在2018世界聯網博覽會無錫峰會上作了題為《從萬物互聯走向萬物》的主題發言,向業界分享了關于數字經濟和
    的頭像 發表于 09-19 17:00 ?4564次閱讀

    萬物的關鍵在于“連”和“智,連接加智能實現萬物

    在由聯合國寬帶委員會和華為共同舉辦的第六屆全球超寬帶高峰論壇(UBBF 2020)上,中國移動集團副總經理高同慶發表了“智慧,讓‘連’接成為‘’接”的主題演講。他表示:智慧,讓“連”接成為“”接,連接+智能=萬物
    的頭像 發表于 10-14 15:59 ?2834次閱讀

    華為開發者大會2021:打造全場景萬物的應用生態底座

     21,738APls打造全場景萬物的應用生態底座具體是什么樣子的。
    的頭像 發表于 10-22 16:23 ?1667次閱讀
    華為開發者大會2021:打造全場景<b class='flag-5'>萬物</b>智<b class='flag-5'>聯</b>的應用生態底座

    面向萬物的應用框架思考探索(上)

    應用框架,是操作系統連接開發者生態,實現用戶體驗的關鍵基礎設施。其中,開發效率和運行體驗是永恒的訴求,業界也在持續不斷的發展和演進。
    的頭像 發表于 05-06 15:35 ?570次閱讀
    <b class='flag-5'>面向</b><b class='flag-5'>萬物</b>智<b class='flag-5'>聯</b>的應用<b class='flag-5'>框架</b>的<b class='flag-5'>思考</b>和<b class='flag-5'>探索</b>(上)

    面向萬物的應用框架思考探索(下)

    應用框架,是操作系統連接開發者生態,實現用戶體驗的關鍵基礎設施。其中,開發效率和運行體驗是永恒的訴求,業界也在持續不斷的發展和演進。
    的頭像 發表于 05-06 15:45 ?559次閱讀
    <b class='flag-5'>面向</b><b class='flag-5'>萬物</b>智<b class='flag-5'>聯</b>的應用<b class='flag-5'>框架</b>的<b class='flag-5'>思考</b>和<b class='flag-5'>探索</b>(下)