成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

攜程鴻蒙應用開發實踐

移動開發 移動應用
作為領先的一站式旅游服務平臺,攜程始終堅持以技術創新為發展核心。自鴻蒙發布以來,我們便投入研發力量進行調研、開發,并成功落地了攜程機票項目、服務卡片項目等。現將鴻蒙項目中相關經驗整理分享,希望能給大家一些參考,也希望鴻蒙發展能越來越好。

?作者 | Gordon,攜程資深移動開發工程師,關注鴻蒙開發。

背景

作為全球領先的一站式旅游服務平臺,攜程始終堅持以技術創新為發展核心。自鴻蒙發布以來,我們便投入研發力量進行調研、開發,并成功落地了攜程機票項目、服務卡片項目等。現將鴻蒙項目中相關經驗整理分享,希望能給大家一些參考,也希望鴻蒙發展能越來越好。

一、鴻蒙系統簡介

華為鴻蒙HarmonyOS系統是面向萬物互聯的全場景分布式操作系統,目前鴻蒙系統已從2.0升級更新至Beta 3.0,支持手機、平板、智能穿戴、智慧屏等多種終端設備運行,提供應用開發、設備開發的一站式服務。

憑借多終端開發IDE,多語言統一編譯,分布式架構Kit提供屏幕布局控件以及交互的自動適配,支持控件拖拽,面向預覽的可視化編程,使開發者可以基于同一工程高效構建多端自動運行App,實現真正的一次開發,多端部署,在跨設備之間實現共享生態。

作為萬物互聯時代的操作系統,“分布式技術”鑄就了鴻蒙的核心競爭力,在5G這個萬物互聯的時代有著巨大的優勢。

二、鴻蒙系統開發

2.1 開發語言

鴻蒙適合的開發語言是Java、JavaScript、C++,其中Java、JavaScript適合用于手機應用UI界面開發工作,C++和JavaScript適合嵌入式設備UI界面相關開發工作。只有JavaScript寫的UI界面可以跨設備使用。

在以后的鴻蒙版本中(計劃是3.0),即將推出倉頡語言開發(倉頡語言是華為自主研發的一款語言)。目前主推的還是Java和JavaScript。

鴻蒙服務卡片開發,可以使用Java和JavaScript(華為建議JavaScript),其中Java和JavaScript服務卡片場景及能力差異如下:

場景

Java卡片

JS卡片

版本

實時刷新

Java使用ComponentProvider做實時刷新代價比較大

JS可以做到端側刷新,但是需要定制化組件

HarmonyOS 2.0及以上

開發方式

Java UI在卡片提供方需要同時對數據和組件進行處理,生成ComponentProvider遠端渲染

JS卡片在使用方加載渲染,提供方只要處理數據、組件和邏輯分離

HarmonyOS 2.0及以上

組件支持

Text、Image、DirectionalLayout、PositionLayout、DependentLayout

div、list、list-item、swiper、stack、image、text、span、progress、button(定制:chart 、clock、calendar)

HarmonyOS 2.0及以上

卡片內動效

不支持

暫不開放

HarmonyOS 2.0及以上

陰影模糊

不支持

支持

HarmonyOS 2.0及以上

動態適應布局

不支持

支持

HarmonyOS 2.0及以上

自定義卡片

不支持

支持

HarmonyOS 2.0及以上

2.2 鴻蒙系統架構

在說明鴻蒙系統架構之前,首先要了解AOSP(Android Open-Source Project,Android 開放源代碼項目)和Google Android的區別。AOSP可以隨便用,但只有經過Google認證的Android才能安裝GMS和Google Play。Google控制的是GMS和Google Play,無權控制Android。

HarmonyOS整體遵從分層設計,從下向上依次為:內核層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模塊”逐級展開,在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能/模塊。

HarmonyOS技術架構如下所示:

圖片

AOSP大致對應圖中的UI框架+用戶程序框架+Ability框架。為了兼容Android,Harmony使用了AOSP的部分代碼,用來構建Android應用兼容層來運行Android應用。鴻蒙框架解析后將數據交給了Android,由Android的負責將其渲染在SurfaceView上。

HarmonyOS采用多內核設計,支持針對不同資源受限設備選用適合的OS內核。內核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內核差異,對上層提供基礎的內核能力,包括進程/線程管理、內存管理、文件系統、網絡管理和外設管理等。

系統服務層分布式軟總線技術將物聯網通訊技術(NFC、藍牙、WIFI……)與協議(CoAP、RPC……)做了良好的封裝,以及對數據格式(HarmonyOS IDL)以及服務(PA)做了良好的抽象,使局域網內的設備之間可以方便的通訊、交換數據、調用遠程服務,設備之間仿佛融為一體。

框架層為HarmonyOS應用開發提供了Java/C/C++/JS/TS等多語言的用戶程序框架和Ability框架,兩種UI框架(包括適用于Java語言的Java UI框架、適用于JS/TS語言的方舟開發框架),以及各種軟硬件服務對外開放的多語言框架API。

應用層包括系統應用和第三方非系統應用。HarmonyOS的應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺運行任務的能力以及統一的數據訪問抽象。FA在進行用戶交互時所需的后臺數據訪問也需要由對應的PA提供支撐。基于FA/PA開發的應用,能夠實現特定的業務功能,支持跨設備調度與分發,為用戶提供一致、高效的應用體驗。

我們今天主要從應用層開發方面展開。

三、攜程鴻蒙服務卡片

攜程很早就在鴻蒙OS發力,基于HarmonyOS分布式能力,開發了攜程機票手機、手表聯動項目。在HarmonyOS推出原子化能力后,又上線了攜程會員中心、核酸檢測、攜程火車票服務卡片,以期給到用戶更多的選擇。

圖片

3.1 開發流程

通過HarmonyOS 系統能力、開發指導、API參考等文檔,利用 HUAWEI DevEco Studio 開發工具,開發不同設備的應用,為用戶帶來全場景體驗。

總結起來,整個開發流程分為開發準備、應用開發、應用測試、應用發布幾個流程。

階段

流程

開發準備

  1. 成為華為開發者(個人/企業)
  2. 安裝DevEco Studio
  3. 配置開發環境

編寫代碼

  1. 創建工程
  2. 編寫調試代碼
  3. 預覽查看布局效果

應用測試

  1. 申請調測證書
  2. 調試應用
  3. 隱私、漏洞、性能等測試

發布

  1. 申請發布證書
  2. 發布應用至華為商店

3.2 服務卡片

服務卡片(以下簡稱“卡片”)是FA的一種界面展示形式,將FA的重要信息或操作前置到卡片,以達到服務直達,減少體驗層級的目的。

圖片

經調研,從安卓到鴻蒙,最明顯的變化應該就是服務卡片。故我們計劃以服務卡片作為切入點,實現攜程鴻蒙服務卡片功能。經過版本逐步迭代,目前已上線了會員簽到、核酸檢測、搶火車票等功能。

由于整個開發流程中,開發準備和發布流程參考文檔即可完成,僅從編寫代碼和應用測試兩方面展開,給大家簡單介紹一下。

3.3 服務卡片開發

考慮快速開發上線的需求,我們調研使用鴻蒙Native+Webview混合開發的模式,通過Native層處理持久化等相關能力,Webview實現功能進行展開。

3.3.1 鴻蒙Webview實現功能?

首先,通過XML布局文件進行操作:

<ohos.agp.components.webengine.WebView
ohos:id="$+id:health_webview"
ohos:height="match_parent"
ohos:width="match_parent"/>

注意:ohos.agp.components.webengine.WebView和WebView都是有提示的。但WebView與ohos.agp.components.webengine.WebView并不等價,這可能是鴻蒙的一個漏洞,直接輸入 WebView 并不能使用這個組件。

然后在Native代碼中實例化Webview:

private void initWebview(){
WebConfig webConfig = webView.getWebConfig();
if (null != webConfig){
webConfig.setWebStoragePermit(true);//
webConfig.setJavaScriptPermit(true); // 如果網頁需要使用JavaScript,增加此行;
webConfig.setSecurityMode(WebConfig.SECURITY_ALLOW);
webConfig.setLocationPermit(true);
webConfig.setDataAbilityPermit(true);
webConfig.setMediaAutoReplay(true);
webConfig.isLoadsImagesPermitted();//webview是否下載圖片資源
webConfig.setTextAutoSizing(true);
webConfig.setViewPortFitScreen(true);
}
setWebViewCookie();
this.webView.setWebAgent(new TripWebAgent());
webView.load(HEALTH_URL);
}

3.3.2 服務卡片配置?

卡片應用是一款特殊的元能力服務,其配置文件config.json中聲明以下幾項,系統能夠識別該應用為一款卡片應用,并與系統進行綁定。?config.json文件"abilities"配置forms模塊細節如下:

"forms": [
{
"landscapeLayouts": [
"$layout:health_2_2",
"$layout:health_2_4"
],
"isDefault": true,
"scheduledUpdateTime": "10:30",
"defaultDimension": "2*2",
"name": "health",
"description": "$string:health_title",
"colorMode": "auto",
"type": "Java",
"supportDimensions": [
"2*2",
"2*4"
],
"portraitLayouts": [
"$layout:health_2_2",
"$layout:health_2_4"
],
"updateEnabled": true,
"updateDuration": 1
}
]

鴻蒙服務卡片有4種尺寸,分別是微卡片(1*2)、小卡片(2*2)、中卡片(2*4)、大卡片(4*4),同一個應用還支持多種不同類型的服務卡片,不同尺寸與類型可以通過卡片管理界面進行切換和選擇。      其設計的初衷就是信息顯示、服務直達,基于以上原則,我們選擇了攜程App中幾個常用的功能來實現服務卡片,每個功能分別實現了小卡片和中卡片兩種樣式。

圖片

3.4 服務卡片測試

開發完代碼后,接下來就可以使用真機進行調試了,使用真機設備進行調試前,需要對HAP進行簽名后進行調試。詳細的調試流程如下圖所示。

圖片

針對原子化服務和應用的簽名,DevEco Studio為開發者提供了自動化簽名方案,幫助開發者高效進行調試。

當前只有受邀請開發者才能訪問證書管理菜單。如果AGC頁面未展示證書管理菜單,開發者需發送名稱、申請背景及Developer ID至agconnect@huawei.com,等待華為受理。

進入File > Project Structure > Project > Signing Configs界面,勾選“Automatically generate signing”,即可完成簽名。

圖片

若發布應用/服務,需通過申請數字證書(.cer文件)和Profile文件(.p7b文件)來保證其完整性。申請前,首先需要通過DevEco Studio來生成密鑰(存儲在格式為.p12的密鑰庫文件中)和證書請求文件(.csr文件),同時也可以使用命令行工具的方式來生成。

圖片

設置完簽名信息后,使用DevEco Studio生成APP。點擊Build > Build Hap(s)/APP(s) > Build APP(s),等待編譯構建完成已簽名的APP。

編譯構建完成后,可以在build > outputs > app > release目錄下,獲取帶簽名的APP。

圖片

將HarmonyOS應用打包成APP后,通過AppGallery Connect將HarmonyOS應用分發到不同的設備上。可以根據發布HarmonyOS應用指導將APP上架到華為應用市場。

四、未來展望

除了華為的HarmonyOS,還有谷歌的Fuchsia、蘋果的SiriOS、三星SmartTings、騰訊TencentOS tiny等等,可見未來IOT市場中,內卷競爭化會比智能手機時代的操作系統更加劇烈和難以預測。鴻蒙生態鏈仍處于早期階段,各方面仍待完善。

責任編輯:未麗燕 來源: 攜程技術
相關推薦

2022-05-13 09:27:55

Widget機票業務App

2022-06-27 09:36:29

攜程度假GraphQL多端開發

2024-12-18 10:20:00

攜程鴻蒙開發

2022-07-15 09:20:17

性能優化方案

2023-02-08 16:34:05

數據庫工具

2022-08-12 08:34:32

攜程數據庫上云

2022-07-08 09:38:27

攜程酒店Flutter技術跨平臺整合

2022-09-09 15:49:03

攜程火車票組件化管理優化

2023-12-15 10:05:58

攜程網絡

2023-07-07 12:26:39

攜程開發

2022-06-03 09:21:47

Svelte前端攜程

2023-04-14 10:29:24

小程序實踐

2022-08-20 07:46:03

Dynamo攜程數據庫

2023-08-18 10:49:14

開發攜程

2022-05-27 09:52:36

攜程TS運營AI

2023-05-12 10:14:38

APP開發

2024-07-05 15:05:00

2020-12-04 14:32:33

AndroidJetpackKotlin

2022-12-14 10:09:44

研發效能

2024-09-10 16:09:58

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产成人精品久久 | 黄色在线免费网站 | 国产一区二区三区在线 | 91在线看片 | 久久久久av| 天天操天天射综合网 | 极品久久 | 中文字幕动漫成人 | 日本黄视频在线观看 | 久久久蜜桃 | 日韩欧美亚洲 | 国产欧美在线一区 | 婷婷去俺也去 | 欧美精品一区在线发布 | 在线免费看黄 | 亚洲激情一区二区三区 | 在线观看中文字幕视频 | 日韩中文字幕在线播放 | 亚洲欧美日韩电影 | 亚洲视频一区二区 | 日本一区二区三区在线观看 | 成人区精品一区二区婷婷 | 亚洲综合色视频在线观看 | 在线日韩av电影 | 国产伦精品一区二区 | 亚洲日本免费 | 视频一区二区中文字幕 | 超碰520 | 一级毛片视频在线 | 99国产精品久久久久 | 亚洲一区国产 | 国产一区影院 | 久久av.com | 午夜丁香视频在线观看 | 性欧美xxxx | 一区二区三区四区不卡 | 97精品超碰一区二区三区 | 久久精品国产精品青草 | 成人精品啪啪欧美成 | 亚洲男女激情 | 高清欧美性猛交xxxx黑人猛交 |