鴻蒙原生應用開發及部署:開啟HarmonyOS NEXT App新紀元

三掌柜發表於2024-10-29

目錄

  • 前言
  • HarmonyOS NEXT:下一代作業系統的願景
  • 華為雲服務在鴻蒙原生應用開發中的作用
  • 鴻蒙原生應用開發服務
  • 百萬級APP的挑戰與機遇
  • 鴻蒙原生應用實踐案例分享
  • 結束語

    前言

    在當前的全球科學技術競爭中,作業系統作為資訊科技產業的核心,對於推動數字經濟的發展具有至關重要的作用。而HarmonyOS,作為華為自主研發的新一代智慧終端作業系統,不僅標誌著中國在全球作業系統領域的一次重要突破,也為全球使用者提供了一個更加安全、智慧、互聯的全新選擇。隨著5G、物聯網和人工智慧技術的快速發展,HarmonyOS的市場前景廣闊,有望在全球範圍內實現廣泛應用。尤其是隨著HarmonyOS NEXT的釋出,是在當前全球數字化轉型加速的大背景下,對HarmonyOS進行的一次重大升級,它不僅繼承了HarmonyOS的分散式能力,還引入了更多的創新特性,如更強大的效能、更高的安全性和更豐富的應用生態,這一升級對於推動HarmonyOS在全球市場的競爭力,以及為使用者提供更加卓越的體驗具有重要意義。那麼就來深入分享關於HarmonyOS NEXT的核心特性、市場前景以及華為雲服務在其原生應用開發和部署中的作用,同時,本文還將介紹華為雲服務如何支援百萬級APP的高效開發和部署,並透過實踐案例分析,為大家提供參考經驗和啟示。

image.png

HarmonyOS NEXT:下一代作業系統的願景

如果說HarmonyOS NEXT是下一代作業系統,那麼可以看到目前千行百業應用鴻蒙話,從上到下、從頭部大廠到中小企業都在鴻蒙生態中貢獻一份力量。關於HarmonyOS NEXT成為下一代作業系統的願景,可以從下面三方面來看。

1、核心特性和優勢

先來看看HarmonyOS NEXT的核心特性和優勢,HarmonyOS NEXT的核心特包括其分散式架構、高效能、高安全性和豐富的應用生態,這些特性使得HarmonyOS NEXT能夠為使用者提供更加流暢、安全和多樣化的體驗。與此同時,HarmonyOS NEXT的開放性和相容性也為開發者提供了廣闊的創新空間。

2、如何推動應用生態的發展

在推動應用生態的發展方面,HarmonyOS NEXT透過提供統一的開發平臺和工具,極大地降低了開發者的門檻,這讓我們開發者能夠更加高效、便捷地開發跨平臺應用。以及HarmonyOS NEXT豐富的API和UI框架也給開發者提供了強大的使用支援,這就可以很好的推動了鴻蒙原生應用生態的快速發展。

3、對開發者和使用者的影響

對於開發者而言,尤其是大前端開發者來講,HarmonyOS NEXT給大家提供了一個全新的開發平臺,結合目前技術圈流行的前沿技術,這讓大家能夠開發出更加創新和多樣化的應用。對於使用者和使用者來說,HarmonyOS NEXT帶來了更加豐富和高質量的應用選擇,也打破了傳統應用的體驗缺陷問題,從而提升了應用的使用體驗。

華為雲服務在鴻蒙原生應用開發中的作用

再來分享一下華為雲服務助力鴻蒙原生應用開發的方方面面。不難看出,隨著華為雲產品服務的不斷更新壯大,適用於鴻蒙原生應用開發相關的服務還是非常多的,那麼接下來就來詳細介紹一下華為雲服務在鴻蒙原生應用開發中可應用的方面。

1、華為雲ECS C系列例項

關於華為雲ECS C系列例項,其實該系列例項提供了高效能的計算能力,特別適合需要大量計算資源的鴻蒙應用開發。根據華為雲官方對ECS C系列例項的介紹,該系列提供安全穩定、可隨時自助獲取、彈性伸縮的計算服務,靈活計費,極簡運維,極大降低企業成本,以及高CPU效能和大記憶體容量,也適用於大資料處理、人工智慧等場景。
那麼,我們在鴻蒙原生應用開發的時候,為什麼選擇華為雲彈性雲伺服器 ECS?具體優勢如下所示:

(1)全維度效能升級

  • 較上一代算力大幅提升:C7單核算力提升30%,整機最大算力提升超過50%,並可提供高達128核的例項規格選擇,進一步提升高負載場景處理效能;記憶體由原來的6通道、2933MHz升級至8通道、3200MHz,程式執行訪問記憶體效率大幅提升;
  • 千萬級網路包轉發能力更加穩定:應對大量網路包轉發的場景更加遊刃有餘,穩定的滿足苛刻的網路高效能場景訴求。
  • 雲原生的最佳算力底座:單ECS例項可支援256個直通模式容器,部署密度領先業界1倍,用容器,底座就選C7。

    (2)全流程安全可信

  • 安全啟動:透過擎天卡進行數字簽名和驗籤,我們可確保主機板韌體和核心零篡改,實現主機的安全啟動
  • 硬體加密:在資料加密過程中,我們將加密的流程解除安裝至擎天卡中,實現加解密過程的硬體加速,並且讓使用者基本感知不到因加密帶來的效能損耗。
  • 資料金鑰保護:我們將傳統依靠軟體來實現的身份證明,透過硬體實現金鑰保護。

    (3)全鏈路SLA保障

  • 硬體故障預測:能夠精準預測硬體故障,第一時間排除潛在隱患
  • 熱補丁、熱替換、熱遷移的無感知三熱:實現補丁的自動更新和無中斷升級,幫助客戶業務平滑演進
  • 多級故障域可靠性隔離:提供跨可用區,可用區內,主機等多級故障域可靠性隔離,為使用者帶來極致穩定可靠的全流程SLA保障。

    2、華為雲Flexus X例項

    其實華為雲Flexus X例項以其柔性算力和效能加速而著稱,它能夠根據應用的實際需求動態調整資源,實現成本效益的最大化,這種靈活性對於資源需求不斷變化的鴻蒙應用開發尤為重要。根據華為雲官方的介紹可以知道,Flexus X例項的柔性算力,旗艦體驗,1.6倍算力,綜合降本30%,關鍵應用6倍效能加速,旗艦級可靠性。
    那麼,我們在鴻蒙原生應用開發的時候,為什麼選擇華為雲Flexus雲伺服器X例項?具體如下所示:

    (1)1.6倍算力:GeekBench跑分1.6於業界獨享型例項

  • 底層多重調優,實現1.6倍業界同規格獨享型例項算力效能:凝結華為技術專家多年經驗,內嵌智慧應用調優演算法,底層多重調優加速,基礎模式GeekBench單核及多核跑分可達業界同規格獨享型例項1.6倍;效能版可超過友商旗艦級例項產品效能。
  • 基礎/效能模式隨意切換,成本效能輕鬆平衡:提供基礎模式和效能模式兩種執行模式,基礎模式價格低,效能模式效能強,可基於業務隨意切換,在成本和效能之間取得最佳平衡

    (2)綜合降本30%:智慧業務畫像+CPU記憶體柔性配比

    a.智慧動態業務畫像為業務量體裁衣,遷移到X例項即可降本30%

  • 智慧預畫像遷移降本:針對從第三方雲或者離線資料中心遷移上華為雲的場景,首創智慧資源預畫像,幫助使用者在華為雲上推薦匹配其應用真實效能的資源規格,消除資源浪費,遷移至X例項即可降本30%;
  • 持續動態畫像規格最佳化:基於客戶業務負載進行動態效能畫像,幫助使用者持續推薦匹配其業務效能的資源規格、持續最佳化業務效能和成本。
    image.png
    b.柔性算力新物種,CPU記憶體初始配比規格隨心配置,更匹配業務實際需求
    業界首創CPU記憶體規格柔性定義,突破1:2次冪的固有配比,實現1:3、2:5等自定義特殊規格,最高可提供3:1的CPU/記憶體比,量身匹配業務效能訴求。當前已上線100+種規格,可降低30%的算力成本。

    (3)關鍵應用6倍效能加速:獨有X-Turbo加速技術+大模型智慧排程

a.X-Turbo加速,常見業務應用效能可達友商同規格獨享型例項6倍,長時可達2倍
業界首個X86業務應用智慧加速,智慧識別資料庫、中介軟體、圖形影像等應用場景,針對MySQL、Redis、Nginx等應用,最高可實現6倍業界獨享型例項產品效能,長時執行均值可達2倍。
b.大模型底層智慧排程,一直加速一直快
首創大模型QoS保障,智慧全域排程,算力分配長穩態執行,一直加速一直快。

  • 業界首創大模型QoS保障,實現智慧資源監測與排程,結合QingTian架構,效能始終保持最優釋放
  • 基於使用者業務負載實際需求,智慧動態為其預留資源,確保業務峰值到來時的效能需求,避免卡頓

    (4)旗艦級穩定可靠

  • 提供旗艦級例項可靠性:提供與華為雲旗艦級雲伺服器產品相同的單AZ 99.975% 可用性,跨AZ 99.995%可用性;
  • 超強運維能力:擁有國內最大的SRE團隊之一,基於華為雲確定性運維理念,確保雲服務超高可用性
  • 可搭載多版本主機安全服務:歷經最嚴苛的網路安全挑戰,全面保障主機整體安全

    3、華為雲Flexus雲資料庫RDS

    關於華為雲Flexus雲資料庫RDS,它提供了便捷、可靠、安全和高效能的資料庫服務,RDS的自動備份和一鍵恢復功能,為鴻蒙應用的資料安全提供了強有力的保障。華為雲官方對於Flexus雲資料庫RDS的介紹,它擁有開箱即用、穩定可靠、安全執行、極簡運維等特點,給使用者帶來超高價效比的資料庫服務。
    那麼,在鴻蒙原生應用開發的時候,為什麼選擇華為雲Flexus雲資料庫RDS?具體如下所示:

    (1)輕量規格,高價效比

  • 相比本地自建資料庫節省軟硬體基礎設施成本,無需部署安裝,變更擴容方便快捷
  • 相比ECS自建資料庫無需自購/安裝/升級資料庫軟體,DBA運維更便捷,節省人力成本
  • 相比標準版成本降低最少28%,透過程序瘦身,減少管理面的資源搶佔,使用者在相同例項可以獲得更多資源
    image.png

    (2)極簡購買,便捷運維

  • 引數配置從30+降低至5個,按套餐一鍵購買
  • 一鍵概覽,四項監控,簡化了繁多運維項,專注於輕量化的資料庫應用
    image.png

    (3)一鍵擴容,靈活擴充套件

  • 磁碟自動擴容,容量無憂,業務更有保障
  • 透過一鍵恢復功能,使用者可實現一鍵規格變更,資源快速擴充套件
    image.png

    (4)資料庫安全超高等級

  • 國內首家獲得應用安全標準ISO/IEC 27034和雲安全CSA STAR V4認證廠商,已透過工信部可信雲認證
  • 3項先進完備的安全機制,已獲得15+安全等級認證
    image.png

    (5)高效能高可靠

  • 程序級瘦身,架構級創新,結合PaaS層柔性計算,資源利用率提升50%,相比自建資料庫高併發下效能提升2倍
  • 雙機熱備秒級自動切換,RTO<60s,資料可靠性達到99.9999999%(9個9)
  • 預設自動備份,一鍵恢復任意時間點
    image.png

    4、華為雲Flexus L例項

    再來介紹一下華為雲Flexus L例項,它專為輕量級應用設計,輕量級雲伺服器,即開即用,輕鬆運維,開啟簡單上雲第一步,提供了足夠的計算能力和儲存資源,同時保持了成本效益。另外,它適用於小型應用和微服務架構,能夠滿足快速開發和部署的需求。
    同理,在鴻蒙原生應用開發的時候,為什麼選擇華為雲Flexus應用伺服器L例項?具體如下所示:

    (1)智慧不卡頓

  • 華為雲擎天架構加持,軟硬協同結合頂尖AI演算法智慧排程,引領業界極致效能
  • 華為雲全球存算一張網,資料傳輸時延比眨眼還短,滿足遊戲、音影片等低網路時延場景的高要求

    2)價優隨心用

  • 超高價效比,超低門檻,敞開隨心用
  • 多種例項規格,平衡效能與成本
  • 技術升級最佳化用雲成本,普惠更多初創企業和開發者

    (3)上手更簡單

  • 多種映象、資源組合一鍵下單
  • 嚴選多款高品質映象,經過華為雲官方嚴格測試,覆蓋七大場景,預置模板,快速搭建,安全可信
  • 自動化編排,資源一鍵開通,業務分鐘級上線
  • 平滑學習曲線,嚮導式應用搭建,應用輕鬆啟用
  • 主機、容器的安全防護功能合一,減少告警數量,大幅降低運維工作量

    (4)管理特省心

  • 拓撲、資源、映象視覺化管理,業務架構透明化管理
  • 貼心服務狀態提醒,資源續退一鍵式操作,實現極簡管理
  • 資源負載、安全,使用率實時監控,保障服務永遠線上
  • 可選配豐富的安全服務,包括豐富的備份、主機安全等服務,提供最高等級的安全防護
  • 提供資產管理、漏洞管理、基線檢查、病毒查殺、入侵檢測等主機、容器的全生命週期安全防護

鴻蒙原生應用開發服務

不用多講,在技術圈領域,任何一門新的技術誕生,都需要一個推廣和使用的過程,開發者和使用者是促進新技術的推廣的主力軍。那麼在鴻蒙原生應用開發中,技術推廣先行者可以以自己的經驗去影響周邊的使用者,但是畢竟還是很有限的,需要專業的團隊和組織去主推才可以,這裡就不得不分享兩家比較靠譜的鴻蒙原生應用開發服務商。

1、中軟國際移動應用鴻蒙化專家服務

中軟國際作為鴻蒙生態的重要參與者,提供了專業的移動應用鴻蒙化專家服務,其團隊擁有豐富的HarmonyOS開發經驗,能夠為企業提供從諮詢、設計到開發和部署的全方位服務。而且中軟國際深耕HarmonyOS與OpenHarmony研發數年,擁有2000多名初、中、高階鴻蒙相關專業開發、測試、運維、運營工程師,400多名透過開發者學堂HarmonyOS認證的專業開發者團隊,在鴻蒙應用研發、遷移以及元服務研發上積累了豐富的經驗。
可以說中軟國際在鴻蒙原生應用研發、重構以及元服務研發上具備豐富的經驗,對系統、架構、語言更瞭解,全方位深度參與鴻蒙系統核心、系統服務層、框架、應用層研發,提供鴻蒙生態南北向統一的一站式場景定製服務。

2、萬戶鴻蒙元應用開發服務

再來介紹第二個鴻蒙元應用開發服務商:萬戶鴻蒙元應用開發服務,萬戶鴻蒙元應用開發服務(原為"原子化服務")是一種基於HarmonyOS API的全新服務提供方式,元服務僅需開發一次,即可支援多終端裝置執行,以鴻蒙萬能卡片等多種呈現形態,向使用者提供更輕量化的服務,有獨立入口、且免安裝。
另外,萬戶鴻蒙元應用開發服務提供了萬能卡片和鴻蒙小程式的開發支援,這些服務以其低成本、無需安裝和節省空間的特點,為使用者提供了便捷的應用體驗。透過這些服務,開發者可以快速構建和部署鴻蒙應用,抓住流量藍海的機遇。

百萬級APP的挑戰與機遇

開發了鴻蒙原生應用只是成功了第一步,相關的部署也是非常重要的,鴻蒙原生應用的部署空間往往關係到市場需求等因素。那麼對於百萬級APP來講,尤其是隨著HarmonyOS使用者的增長,需求也在不斷上升,而且這些百萬級APP應用需要能夠提供豐富的功能和優質的使用者體驗,以滿足使用者的多樣化需求。那麼華為雲服務透過提供強大的計算、儲存和網路資源,就可以支援大規模應用的部署,還有華為雲自動化的運維工具和平臺,也可以使得應用的管理和維護變得更加高效。
我們作為開發者和使用者,我們在鴻蒙原生應用開發中如何利用華為雲服務實現高效開發和部署呢?我們可以利用華為雲服務提供的各種工具和平臺,比如ECS例項、雲資料庫RDS和DevOps工具鏈,實現應用的快速開發和部署,這些服務不僅提高了開發效率,還降低了運維的複雜性。

鴻蒙原生應用實踐案例分享

接下來再來分享一下關於鴻蒙原生應用實際開發的內容,作為開發者,我們可以直接透過HarmonyOS NEXT的特性來開發鴻蒙原生應用,尤其是大前端開發者對於鴻蒙原生應用開發的使用可以是不在話下,非常容易上手。那麼接下來就來透過一個簡單的實際開發示例來給大家詳細演示鴻蒙原生應用開發的易上手行。本文的這個demo旨在建立一個基礎的語音播報應用,開發者可以透過預設文字內容,應用會將文字轉換為語音並播放,這個demo將涵蓋以下功能:

  • 文字設定:使用者可以在應用中提前設定想要播報的文字。
  • 語音合成:應用將文字轉換為語音。
  • 播放控制:使用者可以點選內容進行多次播放。

    1. 環境搭建

    先要確保已經安裝了DevEco Studio,並且配置了HarmonyOS NEXT的較新版本的開發環境。

    2. 語音播報核心功能

    HarmonyOS提供了語音合成API,可以在具體使用中呼叫這些API來實現文字到語音的轉換,先建立載體頁面及呼叫,具體程式碼如下所示:

/**
 * @author 三掌櫃
 * @data 2024/9/23 14:56
 */
import  TextToSpeech  from './TextToSpeechUtils';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Column() {
      RelativeContainer() {
        Text('語音播報demo')
          .height(54)
          .id('title')
          .alignRules({
            middle: {
              anchor: '__container__',
              align: HorizontalAlign.Center
            }
          })
      }
      .width('100%')
      .height(80)
      .padding({ right: 10})

      Column() {

        Text('點選語音播報')
          .fontColor(Color.Red)
          .fontSize(30)
          .margin({ top: 100 })
          .onClick(()=>{
            let speech:string = 'Hello, HarmonyOS'; //語音播報文字內容
            TextToSpeech.createSpeak(speech, 1) //語音播報 此處呼叫語音播報的方法
          })
      }
      .width('100%')
      .height('100%')
      .hitTestBehavior(HitTestMode.Transparent)
    }.width('100%')
    .height('100%')
  }
}

再來分享一下關於語音播報的工具類檔案,具體程式碼如下所示:

/**
 * @author 三掌櫃
 * @data 2024/9/23 14:56
 */
import { textToSpeech } from '@kit.CoreSpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

let ttsEngine: textToSpeech.TextToSpeechEngine; // 引擎例項
let originalText = ''; // 原始文字
let speed: number = 1 // 語速

class TextToSpeechUtils {
  // 資料回撥
  speakListener?: textToSpeech.SpeakListener;

  constructor(originalText: string, speed: number) {
    this.initListener()
    this.createSpeak(originalText, speed)
  }
  //服務初始化
  initListener() {
    this.speakListener = {
      // 開始播報回撥
      onStart(requestId: string, response: textToSpeech.StartResponse) {
        console.info(`onStart, requestId: ${requestId} response: ${JSON.stringify(response)}`);
      },
      // 完成播報回撥
      onComplete(requestId: string, response: textToSpeech.CompleteResponse) {
        if (response.type === 1) {
          ttsEngine.shutdown();
          console.info(`onComplete, requestId: ${requestId} response: ${JSON.stringify(response)}`);
        }
      },
      // 停止播報完成回撥,呼叫stop方法並完成時會觸發此回撥
      onStop(requestId: string, response: textToSpeech.StopResponse) {
        console.info(`onStop, requestId: ${requestId} response: ${JSON.stringify(response)}`);
      },
      // 返回音訊流
      onData(requestId: string, audio: ArrayBuffer, response: textToSpeech.SynthesisResponse) {
        console.info(`onData, requestId: ${requestId} sequence: ${JSON.stringify(response)} audio: ${JSON.stringify(audio)}`);
      },
      // 錯誤回撥,播報過程發生錯誤時觸發此回撥
      // 未建立引擎時呼叫speak方法時返回錯誤碼1003400007,合成及播報失敗
      // 連續呼叫兩次speak,第二次speak會返回錯誤碼1003400006,服務正忙碌
      onError(requestId: string, errorCode: number, errorMessage: string) {
        console.error(`onError, requestId: ${requestId} errorCode: ${errorCode} errorMessage: ${errorMessage}`);
      }
    };
  }

  // 建立引擎,透過callback形式返回
  // 當引擎不存在、引擎資源不存在、初始化超時,返回錯誤碼1003400005,引擎建立失敗
  createSpeak(originalText: string, speed: number) {
    // 設定建立引擎引數
    let extraParam: Record<string, Object> = { "style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName' };
    let initParamsInfo: textToSpeech.CreateEngineParams = {
      language: 'zh-CN',
      person: 0,
      online: 1,
      extraParams: extraParam
    };

    // Promise方式
    // 呼叫createEngine方法
    textToSpeech.createEngine(initParamsInfo)
      .then((res: textToSpeech.TextToSpeechEngine) => {
        // 獲得引擎例項
        ttsEngine = res;
        // 設定回撥
        console.info(`Succeeded in creating engine, result: ${JSON.stringify(res)}.`);
        if (res) {
          ttsEngine.setListener(this.speakListener);
          this.speak(originalText, speed)
        }
      }).catch((err: BusinessError) => {
      console.error(`Failed to create engine. Code: ${err.code}, message: ${err.message}.`);
    })
      .finally(() => {
      })
  };

  // 呼叫speak播報方法
  // 未初始化引擎時呼叫speak方法,返回錯誤碼1003400007,合成及播報失敗
  speak(originalText: string, speed: number) {
    // 設定播報相關引數
    let extraParam: Record<string, Object> = {
      "queueMode": 0,
      "speed": speed, // 語速,取值範圍[0.5, 2.0]
      "volume": 2,
      "pitch": 1,
      "languageContext": 'zh-CN',
      "audioType": "pcm",
      "soundChannel": 3,
      "playType": 1
    }
    let speakParams: textToSpeech.SpeakParams = {
      requestId: Date.now().toString(), // requestId在同一例項內僅能用一次,請勿重複設定
      extraParams: extraParam
    };
    // 呼叫speak播報方法
    ttsEngine?.speak(originalText, speakParams);
  };

  // 停止合成及停止播報
  stop() {
    // 呼叫stop方法停止播報
    ttsEngine?.stop();
  };

  // 釋放引擎,釋放成功後,再次呼叫createEngine方法會重新建立引擎
  shutdown() {
    // 呼叫release方法釋放引擎
    ttsEngine?.shutdown();
  };

  //判斷當前是否處於合成或播報中
  isSpeaking() {
    let isSpeaking: boolean = ttsEngine.isBusy();
    console.info(`isSpeaking: ${isSpeaking}`);
    return isSpeaking;
  };
}

export default new TextToSpeechUtils(originalText, speed);

image.png

3.小結

透過上文這個簡單的語音播報的demo示例,我們可以看到HarmonyOS NEXT在語音互動方面提供的健全的API,作為開發者的我們可以利用這些工具和API,快速構建功能豐富、使用者體驗優秀的鴻蒙原生應用。最後也希望這個demo能為更多開發者提供學習幫助和參考價值,也歡迎大家進行修改和完善這個demo,歡迎大家體驗使用。

結束語

透過上文的詳細分享,大家想必已經對鴻蒙原生開發以及部署都有了詳細的瞭解,以及鴻蒙原生應用開發對於推動HarmonyOS生態的發展的重要意義,個人覺得隨著技術的不斷進步和市場需求的增長,鴻蒙原生應用的前景十分廣闊。還有就是華為雲服務為鴻蒙原生應用的開發和部署提供了強大的支援,透過這些服務,開發者可以更加高效地構建和部署應用,為使用者提供更加優質的體驗。最後,也希望相關開發者能夠加入到HarmonyOS NEXT的應用創新浪潮中來,結合華為雲服務和HarmonyOS的特性,我們可以開發出更多具有創新和有價值的鴻蒙原生應用,加入鴻蒙原生應用開發正當時!

參考文獻

1、華為雲ECS C系列例項https://www.huaweicloud.com/product/ecs.html
2、華為雲Flexus X例項https://www.huaweicloud.com/product/flexus-x.html
3、華為雲Flexus L例項https://www.huaweicloud.com/product/flexus-l.html
4、華為雲Flexus雲資料庫RDShttps://www.huaweicloud.com/product/flexus-rds.html
5、中軟國際移動應用鴻蒙化專家服務https://marketplace.huaweicloud.com/contents/58f3371d-90dc-41...
6、萬戶鴻蒙元應用開發服務https://marketplace.huaweicloud.com/contents/20e59c68-9a5f-48...
7、簡單上雲第一步!華為雲 Flexus 應用伺服器 L 例項亮相 https://post.smzdm.com/p/aqqpzzrp/

相關文章