色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

峰會回顧第29期 | Qt For OpenHarmony

OpenHarmony TSC ? 來源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2023-09-07 08:45 ? 次閱讀

演講嘉賓 | 蔡萬蒼

回顧整理 | 廖 濤

排版校對 | 李萍萍

b482039e-4d17-11ee-bb52-92fbcf53809c.png

嘉賓簡介

蔡萬蒼,13年C++/Qt開發相關工作經驗,曾任職Qt公司,擔任技術支持、Qt咨詢師,協助國內多家Qt企業版用戶完成基于Qt的軟件框架搭建,參與Qt開源社區Bug維護及修改,在基于Qt框架的軟件架構設計、Qt跨平臺適配上有多年的技術積累和經驗,開源書籍QmlBook-in-Chinese在github上star數達到1000+,現任職于軟通動力信息技術(集團)股份有限公司,擔任成都圖形框架研究院軟件開發專家角色,負責圖形框架研究院的技術管理工作。

內容來源

第一屆開放原子開源基金會OpenHarmony技術峰會——生態與互聯分論壇

視頻回顧

? ?打開 嗶哩嗶哩APP 搜索 OpenHarmony-TSC 視頻更清晰

正 文 內 容

在全球超過70個行業,8000家公司,100萬的開發者都在使用Qt,通過Qt適配OpenHarmony,能夠豐富OpenHarmony的開發生態、應用生態,加速OpenHarmony在各行業的推廣使用。如何推進和完成Qt在OpenHarmony上的適配呢?軟通動力成都圖形框架研究院軟件開發專家蔡萬蒼在第一屆OpenHarmony技術峰會上分享了精彩觀點。

b4d84c68-4d17-11ee-bb52-92fbcf53809c.png

01?

Qt 適配 OpenHarmony 意義

Qt是一個C++跨平臺開發框架,主要用于開發圖形用戶界面(Graphical User Interface,GUI)程序,具有跨平臺類庫(支持目前所有主流軟硬件平臺組合)、集成開發工具(縮短軟件產品上市時間)以及跨平臺集成開發環境(高生產力開發環境)等。全球超過100萬研發者使用過Qt,Qt的跨平臺開發能力覆蓋70多個行業,是從1994年至今得到廣泛的認同和驗證的主流技術。

b4f7fc20-4d17-11ee-bb52-92fbcf53809c.png

Qt適配OpenHarmony有什么意義?

一、擴大OpenHarmony開發者陣營:基于Qt跨平臺特性及Qt For OpenHarmony的適配,吸引數量龐大的Qt開發人員在OpenHarmony上進行跨平臺應用遷移及應用開發,能夠實現開發人員業務目標與個人能力和OpenHarmony開源生態與技術發展的雙贏。

二、豐富OpenHarmony應用生態:Qt支持目前主流的所有操作系統,如UBuntu、CentOS、OpenEuler、Android、OS X、iOS、Windows、VxWorks、QNX等,涵蓋從嵌入式平臺、移動平臺及PC桌面,基于Qt框架典型的桌面應用,從娛樂到工業軟件都有所涉及,如暴雪的戰網客戶端、WPS、VirtualBox等等,大部分應用程序都可以使用Qt實現。通過Qt適配OpenHarmony,能夠加速OpenHarmony的行業應用推廣。

02?

計劃貢獻內容

2.1??

適配計劃

Qt按使用及部署劃分,包含了設計工具、開發工具、框架必要模塊、框架附加模塊4個部分,基于OpenHarmony跨平臺開發考慮,總體計劃如下:

針對OpenHarmony的開發工具進行補充

對Qt必要模塊進行適配支持

對部分Qt附加模塊適配支持

b521cff0-4d17-11ee-bb52-92fbcf53809c.png

具體工作如下:

成立 OH_QT sig,完成Qt Core(Qt核心模塊)、Qt GUI(顯示相關代碼)以及Qt QML適配

完成Qt工程部署,適配Qt相關的開發工具,實現Qt應用程序北向開發封裝;適配Qt附加庫部分,如Qt Multimedia,QtRemoteObjects

完成Qt示例及DEMO適配驗證、Qt單元測試適配驗證;向Qt社區申請立項OpenHarmony支持,申請OH_QT sig畢業

開發Qt工程轉換DevEco工程工具實現快速的應用遷移配置

2.2??

Qt 配套開發工具

Qt開發者通常使用Qt配套的集成開發環境Qt Creator,采用qmake或cmake進行軟件工程管理配置,為方便開發者對已有軟件進行移植適配,我們會開發對應的工程轉換工具,將Qt的應用工程轉換為DevEco Application工程,幫助開發者快速實現應用的遷移配置。

03?

技術難點分享

Qt本身是跨平臺的框架,我們要把它跟OpenHarmony做移植,無非考慮幾個問題:一是Qt應用程序的界面如何在OpenHarmony上進行顯示;OpenHarmony本身觸屏的輸入、鼠標/鍵盤的輸入怎么能夠把它映射到Qt本身的應用程序框架里去。需要了解Qt的QPA實現及系統接口調用的相關邏輯,就能實現Qt應用程序在OpenHarmony上的運行。

3.1??

QPA 實現及系統接口調用

Qt平臺抽象(QPA)是Qt的平臺抽象層,QPA插件是通過子類化各種QPlatform*類來實現系統接口的接入,例如用于窗口系統集成的QPlatformIntegration和QPlatformWindow以及用于更深層次的平臺主題化和集成的QPlatformTheme。

b530a52a-4d17-11ee-bb52-92fbcf53809c.png

QPA核心對象及作用:通過QPlatfromIntegration實現對QPA插件的對象聲明周期管理,Qt GUI等模塊通過Qt已完成的平臺抽象層相關類實現對系統底層的調用,其中比較重要的實現類包括:EventDispatcher(實現系統底層事件接入)、BackingStore(系統圖形繪制雙緩存實現)、Screen(系統屏幕對象,用于管理Window顯示)、Window(系統窗口對象)、InputContext(系統輸入處理,包括鼠標、輸入法等)、OpenGLContext(系統窗口OpenGL渲染上下文)以及Clipboard(系統剪切板)。

b54edd2e-4d17-11ee-bb52-92fbcf53809c.png

Qt Widget For OpenHarmony渲染流程:基于Qt框架自成體系的圖形框架和事件系統,在OpenHarmony上基于XComponent生成的EGLSurface,采用圖像二維繪制的方式在OpenGL Surface上實現雙緩存渲染機制,完成Qt Widget的窗口內容渲染。

b561d0d2-4d17-11ee-bb52-92fbcf53809c.png

Qt Quick For OpenHarmony渲染流程:Qt Quick采用自成體系的Scene Graph基于OpenGL標準接口實現,QPA OpenHarmony插件基于XCompent生成EGL Surface,并通過QPA標準實現類重載實現PlatformIntegration實現與Scene Graph的OpenGLContext綁定,Qt Quick基于標準OpenGL接口在XComponent上實現圖形渲染。

b5713b8a-4d17-11ee-bb52-92fbcf53809c.png

OpenHarmony Touch事件接入:基于XComponent的事件監控回調,在QPA的InputContext實現中實現對XComponent的輸入監控,將監控的輸入轉換為Qt Event發送到Qt Event隊列中,由Qt框架實現對輸入的處理,完成對觸屏操作和鼠標操作的處理。

b5891480-4d17-11ee-bb52-92fbcf53809c.png

基于NAPI的應用框架接口調用:基于OpenHarmony的應用接口規范,部分接口未提供NDK接口,需要通過Node.JS的C++插件NAPI調用ETS SDK的接口進行實現,QPA For OpenHarmony部分系統接口采用該種方式完成對系統接口的調用,例如系統剪切板。

b59f0b14-4d17-11ee-bb52-92fbcf53809c.png

基于TS腳本自定義符合Qt標準的對話框:Qt上層接口的QMessageBox支持系統默認樣式對話框彈出,該接口在OpenHarmony的SDK中有提供,由于參數差異,無法通過NAPI直接調用,我們采用ETS語言實現后導入到DialogHelpers中進行使用。目前系統輸入法采用NAPI接口進行調用,通過Custom ETS實現對系統輸入法的調用進行監控,再傳入Qt Input Context轉換為Qt Key Event輸入到Qt框架,由于輸入法的高性能要求,后續會與OpenHarmony團隊進行溝通,考慮開放系統底層輸入法NDK接口。

b5b644f0-4d17-11ee-bb52-92fbcf53809c.png

3.2??

Qt For OpenHarmony 應用管理

符合OpenHarmony標準的應用管理:

啟動流程:(1)Qt框架按照Stage模型開發符合Stage-Ability,應用程序通過EntryAbility調用啟動;(2)在QtAbilityStage的onCreate中,使用NAPI機制初始化Qt的Native模塊,并調用App自己的main入口函數,拉起應用邏輯。

退出流程:在EntryAbility的onDestory中,使用NAPI機制通知Qt的QPA模塊,退出Qt Framework的主循環及業務邏輯。

b5c3c2ec-4d17-11ee-bb52-92fbcf53809c.png

與傳統的C++應用程序不同,遵循Openharmony的北向開發應用管理,需要通過eTS框架完成應用程序C/C++應用程序main函數入口調用啟動。

由于XComponent的動態創建問題,目前QPA的NAPI函數調用放在index.ets中進行調用,該問題還需要與OpenHarmony團隊進行溝通,討論基于OpenHarmony的最優解:(1)基于ETS框架自定義ETS腳本,實現XComponent的動態創建,在ETS框架下實現應用程序窗口管理;(2)基于NDK開發的XComponent的新增接口,在Qt App側實現應用程序的窗口管理。

b5df10d8-4d17-11ee-bb52-92fbcf53809c.png

04?

總結與展望

基于Qt跨平臺特性及Qt For OpenHarmony的適配,能夠促進OpenHarmony跨平臺應用遷移及應用開發,對OpenHarmony技術生態有一定的積極作用,期待大家一塊參與到Qt適配OpenHarmony的相關工作中來。

E N D

審核編輯 黃宇

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

    關注

    25

    文章

    3732

    瀏覽量

    16446
收藏 人收藏

    評論

    相關推薦

    回顧OpenHarmony社區2024年度精彩瞬間

    ”或“開源鴻蒙”)社區2024年度工作會議于深圳盛大啟幕,這場備受矚目的盛會匯聚了開源鴻蒙社區眾多成員單位,共同回顧過去一年OpenHarmony社區在技術研發、生態建設、教育推廣等關鍵領域的卓越
    的頭像 發表于 01-17 12:34 ?186次閱讀

    OpenHarmony城市技術論壇12——合肥站圓滿舉辦

    2024年12月23日,OpenHarmony城市技術論壇(以下簡稱“技術論壇”)12——合肥站于中國科學技術大學高新校區圓滿舉辦。本次技術論壇聚焦于“智能時代基礎軟件與數據管理”的主題,深入
    的頭像 發表于 12-26 09:14 ?257次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>12<b class='flag-5'>期</b>——合肥站圓滿舉辦

    今晚直播!OpenHarmony應用開發精品課程第二來啦~

    原文標題:今晚直播!OpenHarmony應用開發精品課程第二來啦
    的頭像 發表于 11-20 15:24 ?194次閱讀

    OpenHarmony城市技術論壇11——香港站圓滿舉辦

    2024年11月12日下午,OpenHarmony城市技術論壇(以下簡稱“技術論壇”)11——香港站于香港九龍香格里拉酒店圓滿舉辦。本次技術論壇以"智能終端操作系統與國際化生態構建"為主題,圍繞
    的頭像 發表于 11-18 11:39 ?640次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>11<b class='flag-5'>期</b>——香港站圓滿舉辦

    OpenHarmony城市技術論壇11(香港站)【智能終端操作系統技術與國際化生態構建】大咖齊聚

    OpenHarmony城市技術論壇——11(香港站) 【主題:智能終端操作系統技術與國際化生態構建】 專家齊聚,精彩來襲,議題揭曉,不容錯過! 時間 : 2:00 - 5:30 PM
    的頭像 發表于 11-11 10:48 ?318次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>11<b class='flag-5'>期</b>(香港站)【智能終端操作系統技術與國際化生態構建】大咖齊聚

    九聯科技受邀參加OpenHarmony峰會,共筑鴻蒙生態繁榮

    近日,九聯科技受邀參加由OpenHarmony項目群工作委員會和上海海思聯合主辦的OpenHarmony峰會
    的頭像 發表于 11-11 10:22 ?279次閱讀

    高燃回顧|第三屆OpenHarmony技術大會精彩瞬間

    第三屆OpenHarmony技術大會圓滿落幕 全球開源精英齊聚 共同展示OpenHarmony技術、生態、人才的最新進展 見證OpenHarmony南北向生態繁榮 共繪開源生態發展藍圖 星光璀璨致謝
    發表于 10-16 18:47

    第二屆大會回顧25 | OpenHarmony上的Python設備應用開發

    Python以其簡單、易學和功能強大而聞名,有著廣泛的用戶群體。采用Python開發有助于降低OpenHarmony的學習門檻。如何在OpenHarmony上用Python開發設備應用,有哪些關鍵技術?電
    的頭像 發表于 08-27 11:53 ?755次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>25<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>上的Python設備應用開發

    OpenHarmony城市技術論壇10——上海站圓滿舉辦

    2024年8月18日下午,OpenHarmony城市技術論壇(以下簡稱“技術論壇”)10——上海站于上海交通大學徐匯校區圓滿舉辦。本次技術論壇以“通用智能、通用機器人和通用操作系統”為主題,從
    的頭像 發表于 08-21 09:35 ?326次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>10<b class='flag-5'>期</b>——上海站圓滿舉辦

    第二屆大會回顧24 | 面向OpenHarmony的軟件工程研究:機遇與挑戰

    隨著萬物智聯時代的到來,OpenHarmony作為一個開源的智能終端設備操作系統的框架和平臺,將會遇到哪些機遇和挑戰?北京航空航天大學教授、OpenHarmony技術俱樂部主任黎立在第二屆OpenHarmony技術大會上帶來了精
    的頭像 發表于 08-07 18:14 ?1093次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>24<b class='flag-5'>期</b> | 面向<b class='flag-5'>OpenHarmony</b>的軟件工程研究:機遇與挑戰

    OpenHarmony城市技術論壇8——廈門站圓滿落幕

    2024年4月20日上午,OpenHarmony城市技術論壇(以下簡稱“技術論壇”)8——廈門站,在廈門大學翔安校區信息學院圓滿落幕。此次論壇從“終端操作系統十大技術挑戰”出發,以“存儲與網絡
    的頭像 發表于 04-22 10:38 ?402次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>8<b class='flag-5'>期</b>——廈門站圓滿落幕

    OpenHarmony城市技術論壇8——廈門站圓滿舉辦

    2024年4月20日上午,OpenHarmony城市技術論壇(以下簡稱“技術論壇”)8——廈門站于廈門大學翔安校區信息學院圓滿舉辦。本次技術論壇從“終端操作系統十大技術挑戰”出發,以“存儲與網絡
    的頭像 發表于 04-21 08:40 ?488次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術論壇<b class='flag-5'>第</b>8<b class='flag-5'>期</b>——廈門站圓滿舉辦

    第二屆大會回顧15 | OpenHarmony性能調優工具介紹

    與適配,潤和軟件芯片業務創立人,潤和芯片全棧解決方案平臺HiHope發起人,帶領公司進軍國際芯片領域并成為ARM生態圈Linaro重要合作伙伴。OpenHarmony項目群工作委員會成員,OpenHarmony Dev-Board SIG(開發板興趣組)創立人及組長。 視
    的頭像 發表于 03-05 08:40 ?776次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>15<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>性能調優工具介紹

    第二屆大會回顧10 | 低時延分布式共享設備研究與探索

    演講嘉賓 | 杜? ?東 回顧整理 | 廖? ?濤 排版校對 | 李萍萍 ? 嘉賓介紹 ?OS內核及視窗分論壇? 杜東 ,上海交通大學助理研究員,OpenHarmony項目群技術指導委員會并發與協同
    的頭像 發表于 02-25 17:52 ?587次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>10<b class='flag-5'>期</b> | 低時延分布式共享設備研究與探索

    Qt For OpenHarmony圖形化的進展突破

    Qt 適配 OpenHarmony 意義 Qt 是一個 C++ 跨平臺開發框架,主要用于開發圖形用戶界面(Graphical User Interface,GUI)程序,具有跨平臺類庫(支持目前
    的頭像 發表于 02-02 14:29 ?1606次閱讀
    <b class='flag-5'>Qt</b> For <b class='flag-5'>OpenHarmony</b>圖形化的進展突破
    主站蜘蛛池模板: 午夜福利免费院| 亚洲国产精品免费线观看视频| 美女教师朝桐光在线播放| 欧美三级黄色大片| 亚洲高清无在码在线电影| xxxxx69hd杨幂| 久久大香萑太香蕉av| 天天看高清影视在线18| 99pao成人国产永久免费视频| 国产探花在线精品一区二区| 成年色黄APP下载| 短篇合集纯肉高H深陷骚| 久久永久视频| 亚洲精品午夜VA久久成人| 成人国产在线24小时播放视频| 久久影院毛片一区二区| 亚洲H成年动漫在线观看不卡| 成人免费小视频| 欧美成 人 网 站 免费| 日日夜夜狠狠干| 999zyz色资源站在线观看| 精品久久久久久久久免费影院| 台湾佬综合娱乐网| RUNAWAY韩国动漫免费官网版| 两个洞一起插哦!好刺激| 伊人最新网址| 久久黄色大片| 一受多攻高h| 久久99精品国产99久久6男男| 亚洲黄色高清| 国语自产视频在线不卡| 久热久热精品在线观看| 一个人在线观看免费中文www| 国产亚洲精品久久久999蜜臀 | 做你的爱人BD日本| 极品美女穴| 青草影院内射中出高潮-百度| 中文字幕永久在线观看| 久久一级片| 97国产蝌蚪视频在线观看| 蜜桃成熟时2电影免费观看d|