Harmony_認證

素染年华發表於2024-04-27

鴻蒙應用開發者認證考試(答案)

#HarmonyOS 高階認證# 乾貨總結

鴻蒙

Harmony_認證

一、Stage模型

概述

  UIAbility元件是一種包含UI介面的應用元件,主要用於和使用者互動。

  UIAbility元件是系統排程的基本單元,為應用提供繪製介面的視窗

  一個UIAbility元件中可以透過多個頁面來實現一個功能模組

  每一個UIAbility元件例項,都對應於一個最近任務列表中的任務。

生命週期

  UIAbility元件是系統排程的基本單元,為應用提供繪製介面的視窗

  UIAbility的生命週期包括Create、Foreground、Background、Destroy四個狀態,如下圖所示。

配置

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility", // UIAbility元件的名稱
        "srcEntry": "./ets/entryability/EntryAbility.ts", // UIAbility元件的程式碼路徑
        "description": "$string:EntryAbility_desc", // UIAbility元件的描述資訊
        "icon": "$media:icon", // UIAbility元件的圖示
        "label": "$string:EntryAbility_label", // UIAbility元件的標籤
        "startWindowIcon": "$media:icon", // UIAbility元件啟動頁面圖示資原始檔的索引
        "startWindowBackground": "$color:start_window_background", // UIAbility元件啟動頁面背景顏色資原始檔的索引
        // ...
      }
    ]
  }
}

UIAbility啟動模式

  • singleton(單例項模式)

    每次呼叫startAbility()方法時,如果應用程序中該型別的UIAbility例項已經存在,則複用系統中的UIAbility例項。系統中只存在唯一一個該UIAbility例項,即在最近任務列表中只存在一個該型別的UIAbility例項。

  • multiton(多例項模式)

  • specified(指定例項模式)

基本用法

  應用中的UIAbility在啟動過程中,需要指定啟動頁面

  透過UIAbilityContext可以獲取UIAbility的相關配置資訊,如包程式碼路徑、Bundle名稱、Ability名稱和應用程式需要的環境狀態等屬性資訊,以及可以獲取操作UIAbility例項的方法(如startAbility()、connectServiceExtensionAbility()、terminateSelf()等)。

資料同步

  • 使用EventHub進行資料通訊:基於釋出訂閱模式來實現,事件需要先訂閱後釋出,訂閱者收到訊息後進行處理。
  • 使用globalThis進行資料同步:ArkTS引擎例項內部的一個全域性物件,在ArkTS引擎例項內部都能訪問。

  • 使用AppStorage/LocalStorage進行資料同步:ArkUI提供了AppStorage和LocalStorage兩種應用級別的狀態管理方案,可用於實現應用級別和UIAbility級別的資料同步。

公共事件

  每個應用都可以按需訂閱公共事件,訂閱成功,當公共事件釋出時,系統會將其傳送給對應的應用。這些公共事件可能來自系統、其他應用和應用自身。

  

  公共事件服務(Common Event Service, CES)為HarmonyOS應用程式提供以下核心能力:

    1. 訂閱公共事件:應用程式可以訂閱系統或其它應用發出的公共事件。一旦事件被髮布,所有訂閱了該事件的應用程式都會收到通知,從而可以執行相應的處理邏輯。

    2. 釋出公共事件:應用程式能夠釋出自定義的公共事件,以便其他已訂閱該事件的應用程式能夠接收到並作出響應。這促進了應用程式間的解耦通訊。

    3. 取消訂閱公共事件:應用程式可以根據需要取消對某個公共事件的訂閱,以避免不再需要的事件處理,從而有效管理資源和避免不必要的操作。

二、工程

1、基於 ArkTS 開發鴻蒙應用時,工程目錄結構主要分為 AppScope 和 entry 兩部分:

  • AppScope:應用程式相關的內容,包含資源和配置檔案兩部分。

    • resources:資原始檔目錄,主要存放全域性相關的資原始檔,如圖片、影片等媒體檔案和字串、顏色、數字、布林值等基礎元素。

    • app.json5:應用程式的全域性配置資訊。

      • 應用的全域性配置資訊:如應用的包名、開發廠商、版本號等基本資訊。
      • 特定裝置型別的配置資訊:如應用在不同裝置上的顯示效果等。
      • 應用元件資訊:包含UIAbility元件和ExtensionAbility元件的描述資訊。
      • 應用執行過程中所需的許可權資訊:如訪問網路、讀取儲存等許可權。
  • entry:OpenHarmony 工程模組,編譯構建生成一個 HAP 包。
    • src > main > ets:用於存放 ArkTS 原始碼。
    • src > main > ets > entryability:應用/服務的入口。
    • src > main > ets > pages:應用/服務包含的頁面。
    • src > main > resources:用於存放應用/服務所用到的資原始檔。
    • src > main > module.json5
      一個模組對應一個打包後的hap
      hap包全稱是HarmonyOS Ability Package,其中包含了ability、第三方庫、資源和配置檔案。其具體屬性及其描述可以參照下表。對於abilities中每一個ability的屬性項,其描述資訊如下表2。
      屬性名 型別 描述
      name String 模組名稱
      version String 模組版本號
      deviceTypes Object 裝置型別
      description String 模組描述資訊
      author String 模組作者
      dependencies Object 模組依賴項,鍵是依賴模組名稱,值是依賴模組版本要求
      entry Object 模組入口資訊,包含入口檔案路徑和模組型別
      abilities Array 模組能力列表,每個元素是一個ability物件

      ability屬性
      屬性名 型別 描述
      name String 能力名稱
      type String 能力型別,如UIAbilityExtensionAbility
      description String 能力描述資訊
      pages Array 能力包含的頁面列表,每個元素是一個頁面路徑
      permissions Array 能力所需的許可權列表,每個元素是一個許可權名稱
    • build-profile.json5:當前的模組資訊、編譯資訊配置項,包括 buildOption、targets 配置等。
    • hvigorfile.ts:模組級編譯構建任務指令碼,開發者可以自定義相關任務和程式碼實現。

2、一些概念

  • 元件(Component):是應用程式的基本單元,它可以是一個頁面、一個功能模組或一個服務。元件通常由程式碼、資源和配置檔案組成。
  • ability:系統呼叫應用的最小單位,Ability 分為兩種型別:FA(Feature Ability)和 PA(Particle Ability)。
    • FA(Feature Ability):有 UI 介面,能夠實現特定的業務功能。()
    • PA(Particle Ability):無 UI 介面,通常用於提供後臺服務或與其他應用程式進行互動。
  • uiability:uiability(屬於FA) 是指具有使用者介面的 ability,即 FA(Feature Ability)。
  • module:Module 分為“Ability”和“Library”兩種型別。
    “Ability”型別的 Module 對應於編譯後的 HAP(Harmony Ability Package);
    “Library”型別的 Module 對應於 HAR(Harmony Archive),或者 HSP(Harmony Shared Package)。
    一個 Module 可以包含一個或多個 UIAbility 元件。

三、ArkTS宣告式開發正規化的基本組成說明

  1. 裝飾器:用來裝飾類、結構體、方法以及變數,賦予其特殊的含義,例如@Entry表示這是個入口元件。  
    @Component修飾的自定義元件都支援onInitonDestroy等生命週期函式
    部分生命週期回撥函式僅對@Entry修飾的自定義元件生效@Entry修飾的自定義元件生效,它們分別是:onPageShowonPageHideonBackPress

  2. 自定義元件:可複用的 UI 單元,可組合其它元件。
  3. UI描述:宣告式的方法來描述UI的結構,例如build()方法中的程式碼塊。
  4. 內建元件:ArkTS中預設內建的基本元件和佈局元件,開發者可以直接呼叫,如Column、Text、Divider、Button等。
  5. 屬性方法:用於元件屬性的配置,統一透過屬性方法進行設定,如fontSize()、width()、height()、color() 等。
  6. 事件方法:用於新增元件對事件的響應邏輯,統一透過事件方法進行設定,如跟隨在Button後面的onClick()。

  • 顯示圖形

    lottie使用loadAnimation方法載入動畫。(正確)

    透過ohpm安裝lottie後,在哪個檔案中會生成相關的配置資訊?(B)oh-package.json5

    lottie訂閱事件的API為?(C)animationItem.addEventListener()

   下列屬於lottie提供的動畫控制API的是?(A B C D)

     A. lottie.play() B. lottie.pause() C. lottie.stop() D. lottie.goToAndPlay()

四、生命週期

  • Ability 的生命週期:Ability 是 HarmonyOS 應用的基本功能單元,可以分為 FA(Feature Ability)和 PA(Particle Ability)兩種型別。不同型別的 Ability 可能具有相似的生命週期。以 Page Ability 為例,它的生命週期包括 onStart() 等回撥函式,這些回撥函式會在特定的時刻被系統呼叫,用於執行相應的操作,如初始化元件、處理資料等。
  • 元件的生命週期:元件是應用的基本組成部分,它也有自己的生命週期。元件的生命週期可以用於初始化元件狀態、實現高階元件行為等。在 React 中,元件的生命週期回撥函式會在特定的時刻呼叫,我們可以在這些回撥函式中做特定的工作。

1、自定義元件生命週期函式

自定義元件的生命週期包括以下幾個階段:
  1. aboutToAppear:元件即將出現時回撥該介面,具體時機為在建立自定義元件的新例項後,在執行其build()函式之前執行。
  2. build:執行元件的構建函式,用於元件的初始化和渲染。
  3. aboutToDisappear:在自定義元件即將析構銷燬時執行。
頁面生命週期函式是@Entry(修飾的自定義元件則為頁面的入口元件)修飾的元件獨有的函式,只有被@Entry修飾的元件,才被視為頁面,才能呼叫頁面生命週期函式。具體包括:
  1. onPageShow:頁面每次顯示時觸發。
  2. onPageHide:頁面每次隱藏時觸發一次。
  3. onBackPress:當使用者點選返回按鈕時觸發。

2、在HarmonyOS應用開發中,Ability的生命週期回撥函式對於管理元件的建立、執行和銷燬過程至關重要。這些回撥函式使開發者能夠執行初始化、響應使用者互動、釋放資源等操作。以下是Ability(特別是Page Ability)常見的生命週期回撥函式及其簡要說明:

  1. onCreate(): 當Ability首次被建立時呼叫。在這個方法中,開發者通常會執行初始化設定,比如初始化變數、繫結資料、設定監聽器等。

  2. onStart(): 當Ability即將對使用者可見時呼叫。在此階段,可以執行與介面顯示相關的初始化操作,比如載入資料、更新UI等。

  3. onResume(): 當Ability已經對使用者可見並可以進行互動時呼叫。這裡適合恢復那些需要使用者互動才能執行的任務,如重新開始動畫或感測器監聽。

  4. onPause(): 當Ability即將失去焦點但仍對部分螢幕可見時呼叫。應該在此處儲存臨時資料,暫停正在進行的耗時操作或動畫。

  5. onStop(): 當Ability完全不可見時呼叫。應在這裡釋放不再需要的資源,如關閉資料庫連線、停止感測器監聽等。

  6. onActive(): 當Ability從前臺返回到使用者互動狀態時呼叫。可以在此恢復因onPause()而暫停的操作。

  7. onInactive(): 當Ability從前臺變為後臺但仍部分可見時呼叫。可以用來儲存使用者介面狀態,準備進入後臺。

  8. onDestroy(): 當Ability即將被銷燬時呼叫。這是進行最終清理工作的機會,如釋放所有資源、取消註冊的監聽器等。

另外,對於AbilitySlice,其生命週期回撥函式與Page Ability(FA模型中的概念)類似,包括onStart()onStop()onActive()onInactive()onDestroy()等,因為AbilitySlice在某種程度上可以看作是Ability內部的頁面管理單位,具有自己的生命週期管理。

理解並恰當使用這些生命週期回撥函式,對於構建高效、響應迅速、資源管理良好的HarmonyOS應用至關重要

3、自定義自定義元件的元件化特點強調了靈活性、高效性和易維護性,具體包括但不限於以下幾點:

  1. 可組合性:允許開發者將自定義元件與系統元件自由組合,透過這種方式可以構建出複雜的介面結構,提高了介面設計的靈活性。

  2. 可重用性:自定義元件設計為可複用模組,可以在多個場景、頁面或應用中作為獨立單元使用,減少程式碼冗餘,提升開發效率。

  3. 資料驅動UI更新:遵循資料驅動的原則,元件的狀態變化自動反映到UI上,確保使用者介面與資料模型同步更新,簡化狀態管理邏輯。

  4. 高度可複用和封裝:根據業務需求進行定製化封裝,使得元件不僅在程式碼層面可複用,而且在功能和邏輯上也能適應不同的應用場景。

  5. 靈活的屬性配置:透過屬性設定,可以輕鬆控制元件的外觀(如顏色、大小)和行為(如互動反饋),無需修改元件內部程式碼。

  6. 配置化生命週期:元件的生命週期管理更加靈活和可配置,便於開發者控制元件的初始化、渲染、更新和銷燬等過程。

  7. 獨立的開發與測試:元件化開發鼓勵將應用拆分成獨立可測試的單元,便於進行單元測試和整合測試,保障軟體質量。

  8. 模組化架構:支援按模組組織程式碼,每個模組負責一部分功能,有助於團隊協作,也方便後期維護和升級。

  9. 跨平臺能力:鴻蒙自定義元件設計時考慮到了多終端的適配性,支援一次開發多端部署,提高了開發效率和應用的廣泛適用性。

四、系統元件的

1、Tabs

  TabContent元件不支援設定通用寬度/高度屬性,其寬度/高度等於Tabs元件的barWidth屬性

  TabsController用於控制Tabs元件進行頁籤切換,不支援一個TabsController控制多個Tabs元件。

  TabContent元件的tabBar屬性支援使用@Builder構造器生成的元件。

  

  頁籤位置

  當barPosition為Start(預設值),vertical屬性為false時(預設值),頁籤位於容器頂部。

  當barPosition為Start(預設值) ,vertical屬性為true時,頁籤位於容器左側。

2、彈窗

  A. AlertDialog

  B. TextPickerDialog

  C. DatePickerDialog

  D. @CustomDialog

    CustomDialog裝飾器用於裝飾自定義彈窗元件,使得彈窗可以自定義內容及樣式。(正確)

  E. TimePickerDialog

五、佈局

1. Row

alignItems:叉軸上的對齊方式

  交叉軸為垂直方向時,取值為VerticalAlign型別,水平方向取值為HorizontalAlign

  

  

justifyContent:主軸上的排列

  Harmony_認證

  

六、狀態管理

@Prop

  父子單向同步

@Link

  父子單向同步

  不能在@Entry裝飾的自定義元件中使用。

  禁止本地初始化

@Provide和@Consume

  擺脫引數傳遞機制的束縛,實現跨層級傳遞。

  其中@Provide裝飾的變數是在祖先節點中,可以理解為被“提供”給後代的狀態變數。@Consume裝飾的變數是在後代元件中,  

// 透過相同的變數名繫結
@Provide a: number = 0;
@Consume a: number;

// 透過相同的變數別名繫結
@Provide('a') b: number = 0;
@Consume('a') c: number;

  

七、路由

1、每呼叫一次router.pushUrl()方法,預設情況下,頁面棧數量會加1,頁面棧支援的最大頁面數量為32。 true

2、每一個自定義元件都有自己的生命週期 true

3、API9及以上,router.pushUrl()方法的mode引數可以配置為哪幾種跳轉頁面使用的模式

  • Standard:標準例項模式,也是預設情況下的例項模式。每次呼叫該方法都會新建一個目標頁,並壓入棧頂。

  • Single:單例項模式。即如果目標頁的url在頁面棧中已經存在同url頁面,則離棧頂最近的同url頁面會被移動到棧頂,並重新載入;如果目標頁的url在頁面棧中不存在同url頁面,則按照標準模式跳轉。

八、動畫

HarmonyOS ArkUI 屬性動畫入門詳解

Harmony_認證

動畫型別

特點

顯式動畫(animationTo)

閉包內的變化均會觸發動畫,包括由資料變化引起的元件的增刪、元件屬性的變化等,可以做較為複雜的動畫。

屬性動畫(animation)

動畫設定簡單,屬性變化時自動觸發動畫;基礎元件和容器元件均可使用

1、屬性動畫

屬性動畫=屬性+animation(屬性作用域)

這個屬性就是目前支援的width、height、position、opacity、backgroundColor、scale、rotate、translate等

屬性名稱 屬性型別 預設值 描述
duration number 1000 動畫時長,單位為毫秒,預設時長為1000毫秒。
tempo number 1.0 動畫的播放速度,值越大動畫播放越快,值越小播放越慢,為0時無動畫效果。
curve Curve Curve.Linear 動畫變化曲線,預設曲線為線性。
delay number 0 延時播放時間,單位為毫秒,預設不延時播放。
iterations number 1 播放次數,預設一次,設定為-1時表示無限次播放。
playMode PlayMode PlayMode.Normal 設定動畫播放模式,預設播放完成後重頭開始播放。
onFinish function - 動畫播放結束時回撥該函式。
屬性動畫(產生屬性動畫的屬性須在animation之前宣告
@Entry
@Component
struct LayoutChange2 {
  @State myWidth: number = 100;
  @State myHeight: number = 50;
  @State flag: boolean = false;
  @State myColor: Color = Color.Blue;

  build() {
    Column({ space: 10 }) {
      Button("text")
        .type(ButtonType.Normal)
        .width(this.myWidth)
        .height(this.myHeight)
        // animation只對其上面的type、width、height屬性生效,時長為1000ms,曲線為Ease
        .animation({ duration: 1000, curve: Curve.Ease })
        // animation對下面的backgroundColor、margin屬性不生效
        .backgroundColor(this.myColor)
        .margin(20)
        

      Button("area: click me")
        .fontSize(12)
        .onClick(() => {
          // 改變屬性值,配置了屬性動畫的屬性會進行動畫過渡
          if (this.flag) {
            this.myWidth = 100;
            this.myHeight = 50;
            this.myColor = Color.Blue;
          } else {
            this.myWidth = 200;
            this.myHeight = 100;
            this.myColor = Color.Pink;
          }
          this.flag = !this.flag;
        })
    }
  }

九、Web

十、Video

回撥事件

  A. onStart影片播放時觸發該事件,可以在這裡獲取影片時長。❌
  B. onFinish影片播放結束時觸發該事件。
  C. onPrepared影片準備完成時觸發該事件。(此處可以獲取時長)
  D. onUpdate播放進度變化時觸發該事件,單位為s,更新時間間隔為250ms。

十一、網路請求

1、HTTP

步驟

  1. 從@ohos.net.http.d.ts中匯入http名稱空間。
  2. 呼叫createHttp()方法,建立一個HttpRequest物件。
  3. 呼叫該物件的on()方法,訂閱http響應頭事件,此介面會比request請求先返回。可以根據業務需要訂閱此訊息。
  4. 呼叫該物件的request()方法,傳入http請求的url地址和可選引數,發起網路請求。
  5. 按照實際業務需要,解析返回結果。
  6. 呼叫該物件的off()方法,取消訂閱http響應頭事件。
  7. 當該請求使用完畢時,呼叫destroy()方法主動銷燬。
// 引入包名
import http from '@ohos.net.http';

// 每一個httpRequest對應一個HTTP請求任務,不可複用
let httpRequest = http.createHttp();
// 用於訂閱HTTP響應頭,此介面會比request請求先返回。可以根據業務需要訂閱此訊息
// 從API 8開始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(
    // 填寫HTTP請求的URL地址,可以帶引數也可以不帶引數。URL地址需要開發者自定義。請求的引數可以在extraData中指定
    "EXAMPLE_URL",
    {
        method: http.RequestMethod.POST, // 可選,預設為http.RequestMethod.GET
        // 開發者根據自身業務需要新增header欄位
        header: {
            'Content-Type': 'application/json'
        },
        // 當使用POST請求時此欄位用於傳遞內容
        extraData: {
            "data": "data to send",
        },
        expectDataType: http.HttpDataType.STRING, // 可選,指定返回資料的型別
        usingCache: true, // 可選,預設為true
        priority: 1, // 可選,預設為1
        connectTimeout: 60000, // 可選,預設為60000ms
        readTimeout: 60000, // 可選,預設為60000ms
        usingProtocol: http.HttpProtocol.HTTP1_1, // 可選,協議型別預設值由系統自動指定
    }, (err, data) => {
        if (!err) {
            // data.result為HTTP響應內容,可根據業務需要進行解析
            console.info('Result:' + JSON.stringify(data.result));
            console.info('code:' + JSON.stringify(data.responseCode));
            // data.header為HTTP響應頭,可根據業務需要進行解析
            console.info('header:' + JSON.stringify(data.header));
            console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
        } else {
            console.info('error:' + JSON.stringify(err));
            // 取消訂閱HTTP響應頭事件
            httpRequest.off('headersReceive');
            // 當該請求使用完畢時,呼叫destroy方法主動銷燬
            httpRequest.destroy();
        }
    }
);

2、WebSocket

  • ( )模組提供了全雙工通訊協議。 【B】
    A.HTTP
    B.WebSocket
    C.Socket
    D.Request

3、Socket

十二、資料管理

Harmony_認證

Harmony_認證

1、首選項

使用者首選項為應用提供Key-Value鍵值型的資料處理能力

Harmony_認證

首選項(Preferences)儲存通常不遵循ACID(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability))特性。首選項設計用於輕量級的鍵值對儲存,主要用於儲存應用設定和使用者偏好等相對簡單的資料,它更側重於易用性和效率,而非事務處理的安全性和複雜資料操作。

首選項key的最大長度是80位元組

首選項儲存的值:數字、字元、布林以及這三種型別的陣列型別

十三、通知

介面說明

介面名

描述

publish(request: NotificationRequest, callback: AsyncCallback<void>): void

釋出通知。

cancel(id: number, label: string, callback: AsyncCallback<void>): void

取消指定的通知。

cancelAll(callback: AsyncCallback<void>): void;

取消所有該應用釋出的通知。

判斷題

1.構造進度條模板通知,name欄位當前需要固定配置為_downloadTemplate_。(正確)

2.給通知設定分發時間,需要設定showDeliveryTime為false。(錯誤) 應為true

十四、後臺任務

  • 代理提醒
    應用退到後臺或程序終止後,仍然有一些提醒使用者的定時類任務,例如購物類應用搶購提醒等,為滿足此類功能場景,系統提供了代理提醒(reminderAgentManager)的能力
    • 倒數計時類:基於倒數計時的提醒功能。

    • 日曆類:基於日曆的提醒功能。

    • 鬧鐘類:基於時鐘的提醒功能。

    1. 通知的基本概念:在移動作業系統中,通知是一種向使用者傳遞即時訊息和提醒的機制,允許應用在不直接開啟介面的情況下與使用者互動。

    2. 通知通道(Channel)的管理:鴻蒙系統中,為了更好地分類和管理通知,引入了通知通道的概念。開發者需要為不同的通知型別建立不同的通道,每個通道可以設定不同的通知顯示方式、重要性等級等屬性。

    3. 通知的顯示型別:不同的通知型別可能有不同的展示形式,如橫幅通知、圖示徽章、鎖屏通知等。這些展示形式有助於在不同場景下吸引使用者的注意。

    4. SlotType的分類

      • SlotType.SOCIAL_COMMUNICATION:主要用於社交溝通類應用的通知,如即時訊息、電話、郵件等,這類通知通常需要即時且顯眼的提示,因此常伴有橫幅通知的顯示。
        可以顯示橫幅通知
      • SlotType.SERVICE_INFORMATION:適用於服務類資訊通知,比如系統更新、後臺下載完成等,可能更多采用圖示徽章或狀態列通知。
      • SlotType.CONTENT_INFORMATION:內容資訊通知,適用於新聞、天氣更新等非緊急但資訊豐富的通知。
      • SlotType.OTHER_TYPES:其他型別的自定義通知,當上述分類都不適用時選用。

因此,您所提的問題屬於“鴻蒙OS通知渠道配置與通知樣式設定”的知識點,幫助開發者根據應用需求合理配置通知的顯示方式和使用者互動模式。


十五、編譯構建

2.編譯打包的軟體包存放在專案目錄build > outputs > default下 (正確)

1.建立應用時,應用包名需要和app.json5或者config.json檔案中哪個欄位保持一致? (C)buildname

4.上傳發布軟體包時,軟體包的格式是什麼?(B).app

5.釋出後的應用可以在哪裡獲取?(A)華為應用市場

十六、元服務

元服務釋出的國家與地區僅限於“中國大陸” (正確)

HarmonyOS雲開發可以在一個專案中同時實現端側和雲側功能的開發。(正確)

進行端雲一體開發時,開發者需要精通前端、後端不同的開發語言。(錯誤)

開發者在DevEco Studio中,可以透過什麼形式進行HarmonyOS雲開發?(B)工程模板

HarmonyOS雲開發當前支援最低API版本是多少?(D)API 9

HarmonyOS雲開發工程結構分哪些部分?(A B C)

  A. 端開發工程(Application) B. 雲開發工程(CloudProgram) C. 端側公共庫(External Libraries)

HarmonyOS雲開發工程建立後,會自動開通哪些服務?(A B C D)

  A. 雲函式 B. 雲資料庫 C. 雲端儲存 D. 認證服務

十七、工具

端雲一體化開發

端雲一體化中的雲函式支援哪些操作 ABCD

A. 編寫函式 B. 測試函式 C. 打包函式 D. 部署函式

端雲一體化開發工程目錄分為三個子工程:端開發工程(Application)、雲開發工程(CloudProgram)、端側公共庫(External Libraries)

開發者在DevEco Studio中,可以透過什麼方式實現端雲一體化?【B】
A.IDE外掛 B.工程模板 C.命令列工具 D.視覺化工具

十八、其它

#HarmonyOS 高階認證# 乾貨總結

熱愛技術的小胡

於 2023-12-26 18:51:47 釋出

閱讀量1.9k
收藏 1

點贊數 1
分類專欄: 鴻蒙 HarmonyOS 精粹 文章標籤: harmonyos 華為
版權

鴻蒙 HarmonyOS 精粹
專欄收錄該內容
6 篇文章0 訂閱
訂閱專欄
一、端雲一體化
雲函式呼叫
雲函式打包完成後,需要到APPGallery Connect建立對應函式的觸發器才可以在端側中呼叫。
解析:【錯】打包之前建立對應函式的觸發器,如下圖所示。
​​​​​​​​

端雲一體化開發
基於端雲一體化開發,開發者需要精通前端,後端不同的開發語言。解析【錯】都可以用TypeScript

開發者在DevEco Studio中,可以透過什麼方式實現端雲一體化?【B】
A.IDE外掛
B.工程模板
C.命令列工具
D.視覺化工具

端雲一體化當前支援最低的鴻蒙API版本是 C
A.6
B.7
C.8
D.9

端雲一體化工程目錄結構分為哪些部分。 【ABC】
A.端開發工程Application
B.雲開發工程CloudProgram
C.端側公共庫Extrernal Libraries
D.公共資源庫 Resource

端雲一體化已經整合以下哪些服務SDK? 【ABC】
A.雲函式
B.雲資料庫
C.雲端儲存
D.雲託管

端雲一體化的中雲函式支援哪些操作? 【ABCD】
A.編寫函式
B.測試函式
C.打包函式
D.部署函式

端雲一體化中的雲函式支援哪些操作? 【ABD】
A. 編寫函式
B.測試函式
​ C.打包函式
​ D.部署函式

雲端資源
只要使用端雲一體化的雲端資源就需要支付費用。 解析:【錯】有免費檔套餐
​​
二、元件開發
頁面棧
每週用一次router.pushUrl()方法,預設情況下,頁面棧數量會加1,頁面棧支援的最大也能數量為32。 【對】
Tad元件頁籤
關於Tad元件頁籤的位置設定,下列描述錯誤的是。 【D】頁籤位於容器右部
A.當barPosition為Start(預設值),vertical屬性為false時(預設值),頁籤位於容器頂部。
B.當barPosition為Start(預設值),vertical屬性為true,頁籤位於容器左部。
C.當barPosition為End,vertical屬性為false時(預設值),頁籤位於容器底部。
D.當barPosition為End,vertical屬性為true,頁籤位於容器底部。

關於Tabs元件頁籤的位置設定,下面描述錯誤的是。 【D】
A.當barPosition為Start(預設值),vertical屬性為false時(預設值),頁籤位於容器頂部。
B.當barPosition為Start(預設值) ,vertical屬性為true時,頁籤位於容器左側。
C.當barPosition為End ,vertical屬性為false(預設值)時,頁籤位於容器底部。
D.當barPosition為End ,vertical屬性為true時,頁籤位於容器底部。

Column和Row容器元件
在Column和Row容器元件中,alignItems用於設定子元件在主軸方向上的對齊格式,justifyContent用於設定子元件在交叉軸方向上的對齊格式 【錯】寫反了

關於容器元件Row和Column,下面說法錯誤的是。 【D】
A.Column容器的主軸是垂直方向,交叉軸是水平方向;Row容器的主軸是水平方向,交叉軸是垂直方向。
B.主軸和交叉軸始終是相互垂直的,Row和Column主軸的方向不一樣。
C.Column的子元件在主軸方向上的對其使用justifyContent屬性來設定,其引數型別是FlexAlign。
D.Row的子元件在主軸方向上的對其使用aliginItems屬性來設定,其引數型別是HroizontalAlign。(主軸都是justifyContent)

Row元件中有兩個Text元件,如果使用justifyContent對其方式,下面哪個屬性可以實現左右兩端對齊。 【D】
A.FlexAlign.Start
B.FlexAlign.SpaceEvenly
C.FlexAlign.End
D.FlexAlign.SpaceBetween

自定義元件和子元件
每一個自定義元件都有自己的生命週期。 【對】

所有使用@Component修飾的自定義元件都支援onPageShow ,onBackPress和onPageHide生命週期函式。 【錯】需要注意的是,部分生命週期回撥函式僅對@Entry修飾的自定義元件生效,它們分別是:onPageShow、onPageHide、onBackPress,對@component是無效的

自定義控制元件的aboutToAppear()在什麼時機執行? 【C】
A.build函式之後
B.build函式之前
C.頁面進入之時

自定義元件的aboutToAppear()在什麼時機執行。 【B】
A. build函式之後
B. build函式之前
C. 頁面進入之時

下列哪個元件不能包含子元件? 【D】
A.Row
B.Button
C.Text
D.LoadingProgress

關於Video元件的回撥事件,下列說法錯誤的是。 【A】
A.onStart影片播放時觸發該事件,可以在這裡獲取影片時長。
B.onFinish影片播放時觸發該事件。
C.onPrepared影片準備完成時觸發該事件。
D.onUpdate播放進度變化時觸發該事件,單位為s,更新時間間隔為250ms。

正確事件為onPrepared事件,onPrepared(callback:(event?: { duration: number }) =>void) 影片準備完成時觸發該事件,透過duration可以獲取影片時長,單位為s。

下面哪個元件不能包含子元件。 【D】
A. Row
B. Button
C. Text
D. LoadingProgress

自定義元件的元件化特點有哪些? 【ABC】
A.可組合
B.可重用
C.配置化生命週期
D.資料驅動更新

下面哪些容器元件可以滾動的。 【ABD】
A.Scroll
B.List
C.Row
D.Grid
E.Column

下面哪些元件層次結構是正確的。 【ABE】
A.Text>Span
B.Button>Column>Image
C.Button>Image>Text
D.Image>Text>Span
E.Column>Row>Button

以下關於ArKTS宣告式開發正規化的基本組成說明正確的是。 【ABCDEF】
A.裝飾器:用來裝飾類、結構體、方法以及變數、賦予其特殊的含義,列如@Entry表示這是個入口元件。
B.自定義元件:可複用的UI單元,可組合其它元件
C.UI描述:宣告式的方法來描述UI的結構,列如build()方法中的程式碼塊。
D.內建元件:ArkTS中預設內建的基本元件和佈局元件,開發者可以直接呼叫,如Column、Text、Divider
E.屬性方法:用於元件屬性的配置,統一透過屬性方法進行設定,如fontSize()、width()、height()、color()
F.事件方法:用於新增元件對事件的響應邏輯,統一透過事件方法進行設定,如給歲在Button後邊的onClick()

worker 執行緒
Worker執行緒最大同時啟用數。 【C】
A.6
B.7
C.8
D.9
通訊
( )模組提供了全雙工通訊協議。 【B】
A.HTTP
B.WebSocket
C.Socket
D.Request
加密
HUKS中文全稱是什麼。 【B】
A.加解密系統
B.通用秘鑰庫系統
C.密碼管理系統
D.訪問控制系統
元服務
元服務包名必須以哪個欄位結尾? 【A】
A.hmsservice
B.任意欄位

元服務包由一個或多個HAP包組成,每個HAP包不得超過(),以提供秒開體驗。 【B】
A.2GB
B.10MB
C.無限制

元服務包每個HAP包不得超過(),以提供秒開體驗。 【A】
A.2MB
B.2GB
C.無限制

元服務建立測試使用者時,使用者列表儲存位置需要選擇。 【B】
A.所有站點
B.中國
C.俄羅斯
D.德國
E.新加坡

WebView
HarmonyOS提供的WebView能力是否支援與H5雙向通訊? 【A】
A.支援
B.不支援

HarmonyOS提供的wevView能力是否支援H5雙向通訊。 【A】
A.支援
B.不支援

Webview在HarmonyOS中的入口是透過什麼元件體現的。 【C】
A.HTTP
B.RichText
C.Web元件
D.Socket

路由
下面哪個方法,可以田轉到一個新頁面,並銷燬當前頁面。 【B】
A.router.pushUrl()
B.router.replaceUrl()
C.router,back()
D.router.clear()
router.replaceUrl() - 這個方法是用來跳轉到新頁面的,但它會銷燬當前頁面

@State狀態
關於@State狀態資料特徵,下列描述錯誤的是: 【C】
A.@State裝飾的變數是元件內部的狀態資料,當這些狀態資料被修改時,將會呼叫所在元件的build方法進行UI重新整理。
B.標記為@State的屬性是私有變數。
C.@State變數可以不用給定初始值。
D.子元件@Link裝飾的變數可以和父元件的@State變數建立雙向資料繫結。

@State的屬性必須定義好型別並初始化

@State修飾的狀態資料被修改時會觸發元件的()方法進行UI介面更新?【A】
A.build方法
B.onPageShow方法
C.aboutTpAppear方法

系列哪種組合方式不能實現子元件從父元件之間雙向資料同步。 【D】
A.@State和@Link
B.@Provider和@Consume
C.@Observed和@ObjectLink
D.@State@Prop

UIAbility
UIAbility的啟動模式有哪些 【ABC】
A.singleton
B.specified
C.multition
D.Builder

關於UIAbility的啟動模式,下列說法錯誤的是: 【C】
A.UIAbility支援單例項、多例項模式和指定例項3種啟動模式,在module.json中透過launchType配置。
B.singleton為單例項模式,系統中只存在唯一一個例項,startAbility時,如果已存在,則複用系統中的唯一一個例項。
C.mulition為多例項模式,每次startAbility都會啟動一個新的例項,系統預設為mutliton為模式。
D.specified為指定例項模式,執行時由ability內部業務決定是否建立多例項。

三種啟動模式解析

針對不同的業務場景,系統提供了三種啟動模式:

singleton(單例項模式)
standard(標準例項模式)
specified(指定例項模式)

singleton啟動模式為單例項模式,也是預設情況下的啟動模式。

每次呼叫startAbility()方法時,如果應用程序中該型別的UIAbility例項已經存在,則複用系統中的UIAbility例項。系統中只存在唯一一個該UIAbility例項,即在最近任務列表中只存在一個該型別的UIAbility例項。

應用的UIAbility例項已建立,該UIAbility配置為單例項模式,再次呼叫startAbility()方法啟動該UIAbility例項,此時只會進入該UIAbility的onNewWant()回撥,不會進入其onCreate()和onWindowStageCreate()生命週期回撥。
在module.json5配置檔案中的"launchType"欄位配置為"singleton"即可。

{
"module": {
// ...
"abilities": [
{
"launchType": "singleton",
// ...
}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
UIAbility的生命週期包括哪些函式? 【ABCD】
A.onCreate
B.onForeground
C . onBackground
D . onDestroy

下面哪些是Ability的生命週期回撥函式? 【ABEF】
A. onCreate
B. onDestroy
C. onPageShow
D. onPageHide
E. onForeground
F. onBackground

三、資料庫
首選項
首選項preferences是以key-value形式儲存資料,其中key是可以重複。
解析:【錯】key不能重複

首選項是非關聯式資料庫,遵循ACID特性。 【錯】不支援ACID特性,這是關係型資料庫的特性

四、服務
認證服務
認證服務支援下列哪種賬號認證。 【C】
A.微信
B.QQ
C.華為賬號
D.支付寶
新增使用者資訊時,如果賬號使用手機號碼,一下哪種輸入格式正確。 【A】
A.86-1981234
B.1981234
C.+861981234
D.0086-1981234
公共事件服務
公共事件服務為應用程式提供哪些能力? 【BCD】
​ A.取消釋出公共事件
​ B.訂閱公共事件
​ C.釋出公共事件
​ D.取消訂閱公共事件
五、打包釋出
OpenHarmony生態
HarmonyOS應用可以相容OpenHarmony生態。 【對】
應用包
釋出開放式測試版本,測試時間有限制嗎? 【A】
A.有
B.沒有

釋出後的鴻蒙應用可以在那裡獲取?【A】
A.華為應用市場
B.華為服務中心
C.華為生態市場

釋出開放式測試版本後,怎麼追加測試使用者?【A】
A.直接在當前版本追加 或 直接在當前版本追加新的測試使用者,然後手動傳送邀請
B.需要重新發布新的測試版本追加使用者

釋出應用時需要建立Profile時,型別選擇什麼型別?【B】
A.除錯
B.釋出

釋出開放式測試測試版本後,還需要人工稽核嗎?【B】
A.需要
B.不需要

釋出開放式測試測試版本後,還可以再追加測試使用者嗎?【A】
A.可以
B.不可以

上傳鴻蒙應用或原服務軟體包時,軟體包的格式是什麼? 【B】
A.zip
B.app
C.apk
D.hap

開放式測試版本釋出後,受邀測試使用者如何體驗?選B
A.進入華為應用市場,搜尋待體驗的元服務。
B.進入服務中心,開啟“開發者測試”開關,在最下方的“服務測試”找到待體驗的元服務。
C.進入生態市場,搜尋待體驗的元服務。

釋出應用時要建立證書,證書型別選擇什麼型別? 【B】
A.除錯證書
B.釋出證書

鴻蒙應用/原服務上架過程上傳軟體包常見的問題有哪些? 【ABCD】
A.軟體包中的釋出Profies檔案和當前上傳軟體包的應用不匹配
B.軟體包中的釋出證書與釋出Profies檔案中的釋出證書不匹配
C.軟體包未簽名導致提示非法軟體包
D.軟體包中使用證書已經失效或者過期

配置
應用包名不能包含一些保留欄位,以下那個欄位符合規範?【A】
A.test
B.harmony
C.system
D.ohos

entry下的module.json5中包含以下哪些資訊? 【BCD】
​ A. 應用包名和版本號資訊
​ B. Ability的配置資訊
​ C. 裝置型別資訊
​ D. 應用許可權申請列表

建立應用時,應用包名需要和 config.json 檔案中哪個欄位保持一致? 【C】
A.package
B.name
C.bundleName

引用ohpm三方庫的包依賴時在哪個配置檔案中。 【C】
A.package.json5
B.module.json5
C.oh-package.json5
D.main_pages.json

在下面的哪個檔案中可以設定頁面的路徑配置資訊。 【A】
A.main_pages.json
B.module.json5
C.app.json5
D.package.json5

Entry下的moudule.json5中包含以下哪些資訊。 【BCD】
A.應用包名和版本資訊 (儲存在 config.json)
B.Ability的配置資訊
C.裝置型別資訊
D.應用許可權申請列表

跨端
跨境遷移和協同是哪個鴻蒙特徵的能力? 【C】
A.一次性開發多端部署
B.可分可合
C.統一生態
D.自由流轉

鴻蒙特徵包含哪些場景化能力? 【ABC】
​ A. 一次開發,多端部署
​ B. 可分可合,自由流轉
​ C. 統一生態,原生智慧

跨端遷移和協同是哪個鴻蒙特徵的能力。 【D】
A.一次開發多端部
B.可分可合
C.統一生態
D.自由流轉

一次開發多端部署的三個層次有哪些? 【ABC】
A.介面級一多
B.功能級一多
C.工程級一多
D.系統級一多

相關文章