注意事項:切記在考試之外的設備上打開題庫進行搜索,防止切屏三次考試自動結束,題目是亂序,每次考試,選項的順序都不同,作者已于2024年12月15日又更新了一波題庫,題庫正確率99%!
新版題庫:單選題40題 多選題20題 注意選項答案順序不一樣,大家記得看選項后面的值是否一樣
考試鏈接地址:華為開發者學堂
大家根據本套題庫考過的話,可以給作者打賞一瓶飲料哈哈,題庫來之不易!(不強制)
基本介紹
博主一共多次過了鴻蒙高級認證,今年下半年官方認證題庫突然改了,博主從新考了一次,把最新題庫整理出來了
單選題
1、以下哪個裝飾器用來表示并發共享對象 (D)
A @Shared
B @State
C @Style
D @Sendable
2、以下關于Taskpool和Worker的描述正確的是 (C)
A TaskPool和Worker的任務執行時長上限都是無限制
B Worker自行管理生命周期,開發者無需關心任務負載高低
C TaskPool支持任務延時執行
D 開發者需要自行管理taskpool的數量及生命周期
3、ArkTS支持以下哪個函數 (D)
A Object.isExtensible();
B Object.isPrototypeOf();
C Object.getOwnPropertySymbols();
D Object.keys();
4、以下哪些賦值語句在ArkTS中是合法 (A)
A value2
B value3
C value1
D value4
5、下面關于方舟字節碼格式IMM16_ID16_IMM8描述正確的是 (A)
A.8位操作碼,16位立即數,16位id,8位立即數
B.16位前綴操作碼,16位立即數,8位寄存器
C.8位操作碼,16位立即數,16位id,8位寄存器
D.8位操作碼,16位立即數,2個8位寄存器
6、從桌面冷啟動如下應用,點擊Change按鈕5次,整個過程中,代碼中的2條log依次出現的次數,最初和最后畫面上顯示的【num = ?】的數字是 (B)
A 1,5,1,6
B 2,4,1,2
C 2,4,1,6
D 0,6,1,6
7、以下關于ArkUI NavDestination組件的生命周期執行順序中正確的是 (C)
AonWillappear->onAppear->onWillShow->onShow->onWillDisappear->onWillHide->onHidden->onDisappear
B onWillappear->onWillShow->onShow->onAppear->onWillHide->onHidden->onWillDisappear->onDisappear
C onWillappear->onAppear->onWillShow->onShow->onWillHide->onHidden->onWillDisappear->onDisappear
D onWillappear->onAppear->onWillShow->onShow->onWillHide->onWillDisappear->onHidden->onDisappear
8、已知下列代碼PageOne頁面為navigation中的某一子頁面,依次點擊PageOne頁面中toPageTwo按鈕,PageTwo頁面中toPageOne按鈕,此時點擊get按鈕獲取全部名為name的NavDestination頁面的位置索引為 (C)
A[0,1]
B[2,1]
C[0,2]
D[1,2]
9、一個復雜的項目,該項目不僅包含主入口模塊(Entry Module),還有多個特性的功能模塊(Feature Modules/HSP),并且這些模塊間存在著相互調用關系。為了確保在調試過程中能夠完整地測試所有交互邏輯,需要將涉及到的所有模塊的HAP包都部署到目標設備上。請從以下選項中選擇正確的操作步驟來配置DevEco Studio,以便一次性部署和調試項目中的多個模塊 (A)
A 進入“Run > Edit Configurations”菜單,在“Deploy Multi Hap”選項卡下,勾選“Deploy Multi Hap Packages”,隨后在列表中選擇需要部署的模塊。
B 無需特殊配置,DevEco Studio會自動檢測到項目中的所有模塊依賴,并在每次調試運行時自動部署所有相關HAP包。
C 在項目結構界面手動選擇每個模塊,單獨編譯并逐一將生成的HAP包通過HDC命令推送到設備上。
D 直接點擊運行按鈕,DevEco Studio會彈出對話框詢問需要部署哪些模塊,從中選擇需要的模塊后開始調試。
10、張工正在使用DevEco Studio進行一個復雜項目的開發工作,項目中包含了成千上萬行代碼且涉及眾多模塊。在重構代碼的過程中,他意識到需要對一個核心類名進行更改,考慮到這個類在整個項目中被廣泛引用,手動修改不僅耗時且容易出錯。 基于DevEco Studio提供的代碼編輯功能,以下哪個描述最準確地概述了張工如何高效且安全地完成對類名的更改,同時確保整個項目中所有相關引用同步更新?(B)
A 張工需打開項目搜索功能,輸入舊類名找到所有匹配項,逐一進行替換,完成更名操作。
B 張工選中需要更名的類名,使用快捷鍵Shift+F6或右鍵菜單Refactor -> Rename,在彈出框中輸入新名稱并選擇替換范圍后,點擊“Refactor”完成更名操作,確保所有相關引用自動更新。
C 張工只需簡單選中需要更名的類名,按下Delete鍵刪除后直接輸入新名稱,DevEco Studio會自動識別并更新所有引用。
D 張工在代碼編輯器中右鍵點擊該類名,選擇“Find Usage”,手動瀏覽所有引用位置并逐一修改為新名稱。
11、在開發HarmonyOS應用工程時,隨著業務的發展,現在需要創建一個模塊,關于在DevEco Studio中創建Module,下列選項哪種方式是錯誤的?(D)
A 鼠標移到工程目錄頂部,單擊鼠標右鍵,選擇New > Module…,開始創建新的Module,此時該module將創建在工程根目錄下。
B 選中工程目錄中任意文件,然后在菜單欄選擇File > New > Module…,開始創建新的Module,此時該module將創建在工程根目錄下。
C 在工程根目錄下創建一個新的Directory,可在該目錄下單擊鼠標右鍵,選擇New > Module…,創建新的Module,此時module將創建在該文件目錄下。
D 在hvigor目錄下,單擊鼠標右鍵,選擇New > Module…,創建新的Module,此時module將創建在該文件目錄下。
12、DevEco Studio提供HarmonyOS應用/服務的UI預覽界面與源代碼文件間的雙向預覽功能,支持ets文件與預覽器界面的雙向預覽。關于雙向預覽,下列選項說法錯誤的是?(C)
A 選中預覽器UI界面中的組件,則組件樹上對應的組件將被選中,同時代碼編輯器中的布局文件中對應的代碼塊高亮顯示。
B 選中布局文件中的代碼塊,則在UI界面會高亮顯示,組件樹上的組件節點也會呈現被選中的狀態。
C 雙向預覽不支持通過組件的屬性面板實時修改屬性或樣式。
D 選中組件樹中的組件,則對應的代碼塊和UI界面也會高亮顯示。
13、在使用DevEco Studio的Profiler進行HarmonyOS應用或服務內存管理優化時,以下哪個描述最準確地概述了“Allocation Insight”功能在識別和解決內存問題中的作用 (C)
A Allocation Insight僅提供內存分配總量的概覽,幫助開發者宏觀了解內存使用趨勢,但對于具體泄漏或抖動問題無能為力
B Allocation Insight詳細展示應用運行時的每條語句柄分配記錄,便于開發者逐一檢查內存使用,但不提供內存泄漏的自動識別功能
C Allocation Insight通過分析應用服務運行時的內存分配及使用情況,輔助定位內存泄漏、內存抖動和溢出問題,支持優化內存使用
D Allocation Insight主要關注于內存碎片整理,減少內存分配的不連續性問題,對內存泄漏
14、HarmonyOS應用開發團隊正著手優化一款面向全球市場的在線教育應用,該應用在特定課程直播環節出現了性能波動和響應延遲的問題,嚴重影響用戶體驗。打算利用DevEco Profiler來進行性能優化。DevEco Profiler其設計核心和主要優勢是什么 (A)
A DevEco Profiler依據Top-Down設計理念,通過高度整合的數據展示范式,提供從宏觀到微觀的性能數據分析,加速開發者定位和解決問題的過程
B DevEco Profiler主要是一個自動化修復工具,能自動檢測并解決所有HarmonyOS應用的性能問題
C DevEco Profiler專注于用戶界面設計的美化,使開發者操作更為直觀
D DevEco Profiler采用Bottom-Up設計原則,從底層代碼細節開始逐步構建性能模型
15、應用開發中使用的各類資源文件,需要放入特定子目錄中存儲管理,以下關于資源說法錯誤的是 (D)
A base目錄是默認存在的目錄,二級子目錄element用于存放字符串、顏色、布爾值等基礎元素,media、profile存放媒體、動畫、布局等資源文件。
B stage模型多工程情況下,共有的資源文件放到AppScope下的resources目錄。
C resfile目錄,應用安裝后,resfile資源會被解壓到應用沙箱路徑,通過Context屬性resourceDir獲取到resfile資源目錄后,可通過文件路徑訪問。
D rawfile目錄,支持創建多層子目錄,子目錄名稱可以自定義,文件夾內可以自由放置各類資源文件。目錄中的資源文件會被編譯成二進制文件,并賦予資源文件ID。
16、在組件中,經常需要使用字符串、圖片等資源。HSP中的組件需要使用資源時,一般將其所用資源放在HSP包內,而非放在HSP的使用方處,以符合高內聚低耦合的原則。下面訪問HSP資源錯誤的是 (B)
B 使用相對路徑的方式,訪問HSP中的資源。Image(“…/…/resources/base/media/example.png”) .id(‘example’) .borderRadius(‘48px’)
17、HarmonyOS提供了多種包結構,每種包編譯后的產物都不同,下面說法錯誤的是 (C)
A hap包編譯后的產物是.hap文件。
B hsp包編譯后的產物是.hsp文件。
C app包編譯后的產物是.app文件。
D har包編譯后的產物是.har文件。
18、一個應用的一個UIAblity,其exported字段配置為false,以下哪個場景可以拉起這個UIAbility (A)
A caller應用在后臺,申請了長時任務,有STARTINVISIBLE ABILITY權限
B caller應用在后臺,申請了長時任務,有START ABILITY FROM BACKGROUND權限
C caller應用在后臺,有STARTINVISIBLE ABILITY權限
D caller應用在后臺,有START ABILITY FROM BACKGROUND權限
19、singleton模式的UIAbility,在冷啟動時生命周期的執行順序是:(D)
A onCreate->onForeground->onWindowStageCreate
B onCreate->onBackground->onForeground
C onCreate->onBackground->onWindowStageCreate
D onCreate->onWindowStageCreate->onForeground
20、可以通過下面那個接口拉起導航類的垂域面板 (C)
A startAbility
B startAbilityForResult
C startAbilityByType
D startAbilityByCall
21、下面的配置存在有幾處錯誤 app.json5配置文件:(A)
A.1
B.4
C.2
D.3
22、當使用狀態變量進行ArkUI組件間數據通信的時候,如果兩個組件間沒有直接的嵌套關系(非父子和祖孫關系組件),但是他們又屬于同一頁面,最佳的裝飾器應該選用哪個?(D)
A @Provide+@Consume
B AppStorage
C @State+@Link
D LocalStorage
23、ArkUI組件復用的作用機制是減少了什么時間從而降低了丟幀率?(B)
A數據掛載時間
B組件節點和對象的創建時間
C組件銷毀時間
D組件節點渲染時間
24、為了提高性能,所以List組件支持懶加載,可以通過配置cachedCount屬性設置緩存列表項的數量。當我們不設置List的屬性cachedCount時,該屬性的默認值是?(A)
A 1
B 3
C 2
D 0
25、作為應用開發者,你使用hiAppEvent訂閱了崩潰事件。應用崩潰后,從onReceive接口返回的AppEventInfo中()屬性可以獲取崩潰調用棧信息。(D)
A domain
B eventType
C name
D params
26、以下關于動態import說法正確的是(B)
A 動態import支持懶加載,所以不能用于提升頁面的加載速度。
B 動態import支持加載HSP模塊、HAR模塊、OHPM包、Native庫。
C 動態import和靜態import相比,靈活性更好,性能更好。
D 動態import不支持導入SDK的API,如@ohos.*
27、以下對系統兼容性的理解正確的是 (C)
A.應用不需要關注系統的兼容性變化,那都是系統開發人員需要關注的事情
B.已發布的系統能力有可能會發生非兼容性變更,比如新增特性或修改問題導致的行為不兼容,這種情況下應用需要關注changelog并進行適配。
C.安全法律法規等不可控因素會導致系統非兼容性變更,開發者需要積極適配
D.系統能力都會保持絕對的兼容性,不能因為任何非兼容性的修改而導致開發者成本上升
28、關于靜態檢查描述錯誤的是 (D)
A.靜態分析工具也在不斷改進和升級。使用高級的靜態分析工具可以提高代碼檢測的準確性和效率。例如,一些靜態分析工具可以檢測代碼中的內存泄漏、死鎖問題,從而提高代碼的質量和可靠性。
B.靜態檢查是指使用靜態代碼分析工具對軟件的“靜態”(不運行的) 代碼進行分析的一種方法,找出代碼中潛在的漏洞。靜態代碼分析器檢查源代碼,找出特定的漏洞,并檢查代碼是否符合各種編碼標準。
C.HarmonyOS應用可以采用ARKTS靜態檢查工具Codelinter或者CodeArts工具來做靜態代碼分析。
D.靜態檢查可以檢測代碼中的語法錯誤和潛在的邏輯錯誤,也支持檢測代碼在運行時現的錯誤,因此靜態檢查可以替代動態測試。
29、以下關于應用架構技術選型說法不正確的是 (D)
A 元服務和應用可以共用一個代碼工程,采用多目標產物構建方式,構建出應用和元服務兩個產物,用于上架。
B 對于初始版本的應用,功能比較簡單,可以考慮采用單HAP加上多個HAR工程構建代碼工程。
C 一些應用的擴展能力,比如備份、服務卡片,可以采用ExtensionAbility做成單獨的feature HAP包,獨立分發。
D 隨著業務的發展,應用功能會越來越多,某些功能可以做成動態加載,動態加載的模塊采用HAR工程來構建,方便復用和共享。
30、依次點擊A、B、C、D四個按鈕,其中不會觸發UI刷新的是 (C)
A A
B B
C C
D D
31、使用promptAction.showToast如何設置顯示在其他應用之上?(B)
A ToastShowMode.DEFAULT
B ToastShowMode.TOP_MOST
C 無需配置,默認顯示在其他應用之上
D ToastShowMode.SYSTEM_TOP_MOST
32、為了使isShow參數值與半模態界面的狀態同步,可以使用下列那種方式雙向綁定isShow參數?
選擇這個 $$this.isShow
=== 雙【$】符號修飾
33、以下關于垂直滾動Grid組件使用cachedCount屬性的說明正確的是 (A)
A 設置cachedCount為1,則Grid在顯示范圍上下各緩存1行GridItem
B 設置cachedCount為1,則Grid在顯示范圍下方緩存1行GridItem
C 設置cachedCount為1,則Grid在顯示范圍下方緩存1個GridItem
D 設置cachedCount為1,則Grid在顯示范圍上下各緩存1個GridItem
34、如果要實現Row組件內的子元素均勻排列,且第一個元素與行首對齊,最后一個元素與行尾對齊,需要使用justifyContent的哪個枚舉值 (A)
A SpaceBetween
B Start
C End
D SpaceEvenly
35、項目需要為不同的設備形態(如手機、智能手表)提供定制化構建。請說明如何在DevEco Studio中設置不同的構建配置,以生成針對不同設備的hap包?(B)
A 在工程級別build-profile.json5定義多個product,在每個product的config/deviceType中定義不同的設備類型
B 在模塊級別build-profile.json5定義多個target,在每個target的config/deviceType中定義不同的設備類型
C 在工程級別build-profile.json5定義多個product,在每個product的config/distributionFilter中定義不同的設備類型
D 在模塊級別build-profile.json5定義多個target,在每個target的config/distributionFilter中定義不同的設備類型
36、開發者小林正在使用DevEco Studio開發一款HarmonyOS應用,并在真機上進行調試。他在運行應用的過程中突然發現一處UI布局需要微調,希望在不中斷當前應用運行的情況下看到調整效果,基于DevEco Studio提供的Hot Reload(熱重載)能力,以下哪一種做法能讓小林最有效地實現他的需求 (B)
A 立即停止應用,修改代碼后重新編譯并部署到真機上
B 在不關閉應用的情況下,直接修改代碼并保存,借助Hot Reload功能在真機上實時查看布局調整的效果
C 繼續運行應用,手動重啟應用后檢查布局是否符合預期
D 使用模擬器替代真機進行調試,因為Hot Reload僅在模擬器上支持代碼改動的即時生效
37、hiAppEvent提供的Watcher接口,()屬性不配置,會導致編譯報錯,產生"ArkTS Compiler Error" (B)
A onTrigger
B name
C onReceive
D triggerCondition
38、一個應用項目工程中,模塊依賴關系如下圖所示,那么在最終編譯結果.app文件中,存在的編譯產物是:(A)
A A.hap + D.hsp
B A.hap + B.har + D.hsp
C A.hap + B.har + C.har + D.hsp
D A.hap + D.hsp + C.har
39、WebSocket連接開發步驟描述錯誤的是 (E)
A 訂閱WebSocket的打開、消息接收、關閉、Error事件
B 創建一個WebSocket連接,返回一個WebSocket對象
C 導入需要的webSocket模塊
D 使用完WebSocket連接之后,主動斷開連接
E 調用Session.start方法開啟metadata數據輸出
F 根據URL地址,發起WebSocket連接
40、下面哪種轉場效果在入場動畫時,表現為從透明度為0、相對于組件正常顯示位置×方向平移100vp的狀態,到默認的透明度為1、相對于組件不平移的狀態,且透明度動畫和平移動畫的動畫時長均為2000ms
正確答案如下(從代碼塊找到如下代碼)
TransitionEffect.OPACITY.animation({duration:2000}).combine(TransitionEffect.translate({x:100}))
41、以下示例代碼中可以進行動畫的屬性有哪些? (D)
A 1、3
B 2、3
C 1、2、3
D 1、2
42、在使用DevEco Studio的Profiler進行HarmonyOS應用性能優化的流程中,以下哪個步驟最恰當地描述了開發者利用Profiler工具進行性能問題識別、定位、優化及驗證的完整過程 (A)
A 利用“Realtime Monitor”初步識別性能瓶頸,創建深度分析任務定位根因,根據分析結果優化代碼,再用“Realtime Monitor”驗證優化效果
B 首先使用“Realtime Monitor”實時監控,觀察應用資源消耗,一旦發現CPU或內存異常,直接修改代碼并重新編譯
C 僅通過創建深度分析任務,利用perf數據詳細分析性能瓶頸,修改代碼后,不需再進行驗證直接發布應用
D 在發現應用性能不佳時,直接查看代碼邏輯,憑經驗修改后,利用Profiler的“Realtime Monitor”確認資源消耗是否降低
43、項目中包含多個模塊和數千行代碼。隨著開發的深入,項目中的ArkTS源代碼文件逐漸積累了大量import語句,其中不乏未使用的import以及不規范的排序情況,關于DevEco Studio的編輯器的“Optimize Imports”,以下說法正確的是 (B)
A 可以在菜單欄中依次點擊“Code” > “Reformat Code”來達到優化import的目的,因為“Optimize Imports”功能已整合進“Reformat Code”中。
B 為了快速清理未使用的import,可以選中項目根目錄,按下快捷鍵Ctrl+Alt+O(在macOS上為Control+Option+O),讓DevEco Studio自動識別并移除所有未使用的import,并自動按照預設規則排序和合并import。
C 應該手動遍歷每個ArkTS文件,逐一檢查并刪除未使用的import語句,然后按照字母順序手動排序剩余的import。
D 在DevEco Studio中,沒有直接的“Optimize Imports”功能,需要安裝第三方插件來實現這個需求。
44、在使用DevEco Studio的Profiler進行HarmonyOS應用或服務內存管理優化時,以下哪個描述最準確地概述了“Allocation Insight”功能在識別和解決內存問題中的作用 (C)
A Allocation Insight僅提供內存分配總量的概覽,幫助開發者宏觀了解內存使用趨勢,但對于具體泄漏或抖動問題無能為力
B Allocation Insight詳細展示應用運行時的每條語句柄分配記錄,便于開發者逐一檢查內存使用,但不提供內存泄漏的自動識別功能
C Allocation Insight通過分析應用服務運行時的內存分配及使用情況,輔助定位內存泄漏、內存抖動和溢出問題,支持優化內存使用
D Allocation Insight主要關注于內存碎片整理,減少內存分配的不連續性問題,對內存泄漏
45、項目需要同時進行應用和元服務的開發,并針對當前項目工程中的代碼可以分別構建出應用和元服務的包,如何在DevEco Studio中設置不同的構建配置,達成這個目的 (B)
A 修改工程級別的AppScope/app.json5中的bundleType值為app
B 在工程級別build-profile.json5定義兩個product,將兩個product的bundleType分別設置成app和atomicService
C 在模塊級別build-profile.json5定義兩個target,將兩個target的bundleType分別設置成app和atomicService
D 修改工程級別的AppScope/app.json5中的bundleType值為atomicService
46、使用DevEco Studio進行復雜的跨設備功能開發與調試工作,期間頻繁依賴本地模擬器來模擬多樣化的設備環境。在這樣的背景下,以下關于DevEco Studio本地模擬器所支持的規格與功能,哪一項描述是準確的 (B)
A 本地模擬器當前不支持查看HiLog以及FaultLog
B 本地模擬器上運行的應用無需進行簽名,簡化了調試過程。
C 本地模擬器當前不支持單元測試框架和UI測試框架的運行
D 本地模擬器和真機的能力沒有任何差異,真機上可以支持的能力在模擬器上都可以
47、在一個包含多個模塊(如entry、feature、service、library等)的大型HarmonyOS應用項目中,如果某個模塊feature對另外一個公共庫模塊library有依賴,如何通過DevEco Studio正確配置項目依賴關系 (D)
A 在feature的build-profile.json5文件的dependencies字段中配置library的依賴
B 無需配置,直接在代碼中編寫import xxx from ‘library’
C 在library的oh-package.json5文件的dependencies字段中配置feature的依賴
D 在feature的oh-package.json5文件的dependencies字段中配置library的依賴
48、want參數的entities匹配規則錯誤的是 (A)
A 調用方傳入的want參數的entities為空,待匹配應用組件的skills配置中的entities不為空,則entities匹配失敗。
B 調用方傳入的want參數的entities不為空,待匹配應用組件的skills配置中的entities不為空且包含調用方傳入的want參數的entities,則entities匹配成功。
C 調用方傳入的want參數的entities為空,待匹配應用組件的skills配置中的entities為空,則entities匹配成功。
D 調用方傳入的want參數的entities不為空,待匹配應用組件的skills配置中的entities為空,則entities匹配失敗。
49、HAR(Harmony Archive)是HarmonyOS提供的共享包,以下關于HAR的描述錯誤的是 (A)
A HAR不支持使用page頁面
B HAR不支持在設備上單獨安裝/運行,只能作為應用模塊的依賴項被引用
C HAR不支持引用AppScope目錄中的資源。在編譯構建時,AppScope中的內容不會打包到HAR中,因此會導致HAR資源引用失敗
D HAR可以作為二方庫和三方庫提供給其他應用使用,如果需要對代碼資產進行保護時,建議開啟混淆能力
50、應用程序開發調試過程中,經常需要安裝新應用進行調測,下面安裝應用操作錯誤的是B
A bm install -p ohosapp.hap -r
B hdc install -p ohosapp.hap
C bm install -p /data/app/
D bm install -p ohosapp.hap
51、一個應用有2個UIAbility組件,其module.json中abilities標簽的配置如下方代碼。在手機設備上,執行如下操作后:
1.啟動UIAbility1, 然后back鍵返回銷毀UIAbility1;
2.啟動UIAbility2, 然后back鍵返回銷毀UIAbility2;
3.啟動UIAbility2, 然后back鍵返回銷毀UIAbility2;
進入多任務列表,能看看到該應用的幾個任務視圖:(A)
A 1個
B 0個
C 3個
D 2個
52、某個應用開發了一個UIAbilityA,其啟動模式是specified,并且對應的AbilityStage的實現如下:(D)
A 2個
B 4個
C 1個
D 3個
53、通過aa工具拉起com.example.test的EntryAbility,并傳參給EntryAbility,具體參數是number類型的[key1, 1] [key2,2] 和string類型的[key3, testString] [key4,''],那邊下面那個aa 命令是正確的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps key4
B aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4”
C aa start -b com.example.test -a EntryAbility --pi key1 1 key2 2 --ps key3 testString --psn key4
D aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4
54、應用發生崩潰,()接口可以獲取到崩潰時調用棧 (A)
A hiAppEvent
B hiLog
C hiDebug
D hiTraceMeter
55、我們需要避免在逐幀調用的接口中執行耗時操作,下面哪個選項不屬于上述的接口 (D)
A. onTouch
B. onAreaChange
C. onScroll
D. aboutToReuse
56、關于ArkUI的ForEach和LazyForEach,下列說法錯誤的是?(C)
A LazyForEach需要配合cachedCount和組件復用一起使用,以達到性能的最優表現。
B ForEach和LazyForEach會根據定義的鍵值生成規則為數據源的每個數組項生成唯一鍵值,并創建相應的組件。
C 長列表滾動場景,優先使用ForEach。
D 當在滾動容器中使用了LazyForEach,框架會根據滾動容器可視區域按需創建組件,當組件滑出可視區域外時,框架會進行組件銷毀回收以降低內存占用。
57、關于自動化測試描述正確的是:(A)
A XTS子系統是認證測試套件的集合,當前包括acts(application compatibility test suite)應用兼容性測試套件,后續會拓展dcts(device compatibility test suite)設備兼容性測試套件等。
B DT(開發者測試)就是UT,可看護的范圍包括邊界值問題、空指針或賦值錯誤,內部業務邏輯問題等等。
C 自動化測試因提高效率,減少重復工作的特性而被廣泛采用;自動化測可以替代手動測試在處理復雜、難以預測的用戶交互或特殊邊界條件。
D Fuzz測試就是通過構造不規則的輸入,從而觸發程序的某種bug;Fuzz測試屬于白盒測試。Fuzz測試也叫做模糊測試,通過輸入非法字段,并觀察軟件是否異常來實現。一方面可以通過向軟件輸入非法字段,另一方面也可以通過向網絡服務發送異常報文。
58、以下關于HAP(Harmony Ability Package)說法正確的是(B)
A 應用工程編出的app文件中,只能包含一個hap文件。
B 應用工程如果包含多個Module,在應用市場上架時,會將多個.hap文件打包成一個.app文件。
C HAP是應用安裝和運行的基本單位,在DevEco Studio工程目錄中,一個HAP對應一個Module。應用打包時,所有的Module都只能生成.hap文件。
D DevEco Studio會在編譯構建時,不需要對HAP進行一致性校驗。
59、某App有A、B、C、D四個團隊分別負責ModuleA、ModuleB、ModuleC和ModuleD四個業務模塊,隨著業務的發展,ModuleA需要跳轉到ModuleB、ModuleC的頁面,ModuleB需要跳轉到ModuleC、ModuleD的界面,ModuleC需要跳轉到ModuleA的界面,ModuleD需要跳轉到ModuleB和ModuleC的界面。由于復雜的依賴關系,導致一旦有變化就需要知會各個團隊,所以該團隊的架構師想要解耦各個業務模塊,以下哪些做法是不推薦的(C)
A 在RouterModule中采用路由表方式解耦各個業務模塊。
B 采用RouterModule作為中介者并用動態import解耦各個業務模塊。
C 采用靜態import方式引入對應跳轉的頁面。
D 可以采用Navigation作為頁面導航根容器,將其放在entry中,其他Module的頁面作為Navigation的子頁面
60、在moduleA(HAP類型)中有一個圖片名為image.png,在moduleB(HAR類型)也存在一個圖片名為image.png,而moduleA依賴于moduleB,那么在moduleA的編譯產物hap包中,image.png存在情況是:(B)
A 僅存在moduleB的image.png
B 僅存在moduleA的image.png
C 兩者都存在
D 兩者都不存在
61、關于代理提醒開發使用的接口是 (C)
A 使用startWork申請任務,使用stopwork取消任務,使用getWorkStatus獲取任務狀態
B 使用startBackgroundRunning申請任務,使用stopBackcroundRunning取消任務
C 使用publishReminder發布,個提醒類通知,使用cancelReminder取消一個指定的提醒類通知
D 使用requestSuspendDelay電請任務,使用getRemainngDelayTime獲取任多剩余時間
62、在方舟字節碼的函數調用規范中,前三個參數表示的含義分別是 (C)
A this、函數對象本身、new.Target
B new.Target、函數對象本身、this
C 函數對象本身、new.Target、this
D new.Target、this、函數對象本身
63、從桌面冷啟動如下應用代碼,點擊Change按鈕5次,整個過程中,代碼中的2條log依次出現的次數是:(C)
A 6,0
B 2,4
C 1,0
D 1,5
64、以下哪份代碼可以實現下圖Grid布局
正確答案:通過GridLayoutOptions
65、在HarmonyOS應用開發中,當開發者遇到需要分析Release版本應用的崩潰或異常堆棧信息時,為了準確地將堆棧追蹤信息對應到源代碼的具體位置,以下哪個描述是正確的做法或理解(B)
A 開發者需手動將Release構建生成的so文件與源代碼進行映射,配合第三方工具進行堆棧信息還原,雖然過程繁瑣,但最終能定位到問題代碼位置
B DevEco Studio提供的Release應用堆棧解析功能,要求開發者在遇到問題時,需上傳構建產物中的特定文件(如so、source map、nameCache等)到指定工具或界面,借助這些文件輔助解析堆棧信息,實現從Release堆棧到源碼的映射,便于快速定位問題
C DevEco Studio通過集成的Release應用堆棧解析功能,自動利用構建時產生的so文件、source map文件、nameCache文件等,無需額外操作即可直接在Release應用中提供詳細的源碼級堆棧追蹤信息
D 因為Release應用經過優化和去除Debug信息,直接從堆棧跟蹤到源代碼行號是不可能的,開發者只能依靠日志信息手工推測問題所在
66、小李正在使用DevEco Studio進行HarmonyOS應用的開發工作,他需要對一個頻繁被調用的函數calculateData()進行重構,為了幫助小李高效地找到calculateData()函數的所有引用位置,并確保重構時考慮周全,以下哪個步驟是正確的使用DevEco Studio的“Find Usages”功能的操作方法 (C)
A 小李應當在項目目錄樹中找到calculateData()函數所在的文件,直接雙擊打開文件,然后逐行掃描代碼以手動查找該函數的所有調用位置。
B 小李應該在菜單欄中選擇“Navigate” > “Class”來打開類瀏覽器,從中找到calculateData()函數,并在此界面中手動檢查所有引用。
C 小李只需將光標定位在calculateData()函數名上,右鍵點擊并選擇“Find Usages”,或者直接使用快捷鍵Alt + F7(macOS為Option + F7),DevEco Studio會自動列出該函數在項目中的所有引用位置。
D 小李應將光標置于calculateData()函數的名稱上,按下Ctrl + Shift + F(macOS為Command + Shift + F)全局搜索該函數名,然后在搜索結果中篩選出真正的調用位置。
67、小李正在使用DevEco Studio進行HarmonyOS應用的開發工作,他需要對一個頻繁被調用的函數calculateData()進行重構,為了幫助小李高效地找到calculateData()函數的所有引用位置,并確保重構時考慮周全,以下哪個步驟是正確的使用DevEco Studio (C)
A小李應當在項目目錄樹中找到calculateData()函數所在的文件,直接雙擊打開文件,然后逐行掃描代碼以手動查找該函數的所有調用位置。
B小李應該在菜單欄中選擇“Navigate” > “Class”來打開類瀏覽器,從中找到calculateData()函數,并在此界面中手動檢查所有引用。
C小李只需將光標定位在calculateData()函數名上,右鍵點擊并選擇“Find Usages”,或者直接使用快捷鍵Alt + F7(macOS為Option + F7),DevEco Studio會自動列出該函數在項目中的所有引用位置。
D小李應將光標置于calculateData()函數的名稱上,按下Ctrl + Shift + F(macOS為Command + Shift + F)全局搜索該函數名,然后在搜索結果中篩選出真正的調用位置。
68、在使用DevEco Studio的Profiler進行HarmonyOS應用或服務性能分析時,面對應用出現卡頓、加載慢等性能瓶頸問題,以下哪個描述最貼切地說明了“Time場景分析任務”的功能及其對開發者優化流程的幫助(B)
A Time場景分析任務在應用運行時,通過顯示所有函數執行的耗時排序列表,輔助開發者手動對比尋找耗時最短的函數進行優化
B Time場景分析任務展示熱點區域內的CPU和進程級調用棧耗時情況,支持代碼跳轉,助力開發者快速定位并優化耗時較長的代碼段
C Time場景分析任務專注于內存管理,幫助開發者監控應用內存泄漏,但對解決卡頓和加載耗時問題幫助有限
D Time場景分析任務僅提供應用/服務運行時的CPU使用率概覽,幫助開發者粗略判斷性能瓶頸,但不提供深入分析
69、開發者小林正在使用DevEco Studio開發一款HarmonyOS應用,并在真機上進行調試。他在運行應用的過程中突然發現一處UI布局需要微調,希望在不中斷當前應用運行的情況下看到調整效果,基于DevEco Studio提供的Hot Reload(熱重載)能力,以下哪一種做法能讓小林最有效地實現他的需求 (B)
A 立即停止應用,修改代碼后重新編譯并部署到真機上
B 在不關閉應用的情況下,直接修改代碼并保存,借助Hot Reload功能在真機上實時查看布局調整的效果
C 繼續運行應用,手動重啟應用后檢查布局是否符合預期
D 使用模擬器替代真機進行調試,因為Hot Reload僅在模擬器上支持代碼改動的即時生效
70、項目需要為不同的設備形態(如手機、智能手表)提供定制化構建。請說明如何在DevEco Studio中設置不同的構建配置,以生成針對不同設備的hap包?(B)
A 在工程級別build-profile.json5定義多個product,在每個product的config/deviceType中定義不同的設備類型
B 在模塊級別build-profile.json5定義多個target,在每個target的config/deviceType中定義不同的設備類型
C 在工程級別build-profile.json5定義多個product,在每個product的config/distributionFilter中定義不同的設備類型
D 在模塊級別build-profile.json5定義多個target,在每個target的config/distributionFilter中定義不同的設備類型
71、項目中涉及多個類的繼承與重寫。為了快速實現子類對父類方法的重寫,小華想利用DevEco Studio提供的便捷功能來提高開發效率。他了解到,通過一個特定的操作流程,可以直接依據父類的模板生成子類中需要重寫的方法代碼,而無需手動編寫完整方法體,在DevEco Studio中,如何正確使用Override Methods功能來快速生成子類需要重寫的方法代碼 (B)
A 在項目結構視圖中找到目標子類,雙擊打開后直接在代碼編輯區輸入重寫方法的簽名,DevEco Studio將自動完成剩余代碼。
B 將光標定位到子類的定義處,按下Ctrl+O(或右鍵單擊選擇Generate... > Override Methods),在彈出的對話框中選擇要重寫的方法,點擊OK完成生成。
C 通過菜單欄File > Settings,配置Override Methods快捷方式,之后在代碼中僅需選中父類方法名,即可自動在子類中生成重寫代碼。
D 將光標放置于任何代碼行,按下Ctrl+B,然后在彈出菜單中選擇Override Methods,之后勾選需要重寫的方法并確認。
72、下面的配置存在有幾處錯誤( )module.json5配置文件 (D)
A.1
B.4
C.2
D.3
73、在UIAbility的onCreate生命周期中通過EventHub的on注冊"event1"和"event2"事件。 (C)
import { hilog } from '@kit.PerformanceAnalysisKit';
import { UIAbility, Want, AbilityConstant } from '@kit.AbilityKit';
const DOMAIN_NUMBER: number = 0xFF00;
const TAG: string = '[EventAbility]';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 獲取UIAbility實例的上下文
let context = this.context;
// 獲取eventHub
let eventhub = this.context.eventHub;
// 執行訂閱操作
eventhub.on('event1', this.eventFunc);
eventhub.on('event2', this.eventFunc);
hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
}
// ...
eventFunc(argOne: Context, argTwo: Context): void {
hilog.info(DOMAIN_NUMBER, TAG, 'receive. ' + `${argOne}, ${argTwo}`);
return
}
74、當標記了@Reuseable的自定義組件實現了組件復用后,這個組件的復用范圍是什么 (B)
A 整個應用內都可以復用
B 標記了@Reuseable的自定義組件的父組件范圍內
C 整個頁面都可以復用
D 標記了@Reuseable的自定義組件的外層容器節點范圍內
75、某App依賴了3個ohpm庫,這3個庫占用的體積都比較大。在App的技術架構中,有多個hap和多個hsp均依賴這3個庫,為了減少app的首包大小,以下哪些做法是無效的?(C)
A 將3個ohpm庫分別封裝成3個hsp,并對外提供必要的接口。
B 將某些特性做成按需加載模塊,若這3個ohpm僅在按需加載模塊里面使用,則將其打包在按需加載模塊中。
C 將這3個ohpm庫封裝到har包中,并對外提供必要的接口。
D 將3個ohpm庫封裝成1個hsp,并對外提供必要的接口。
76、關于短時任務開發使用的接口是(A)
A 使用requestSuspendDelay申請任務,使用getRemainingDelayTime獲取任務剩余時間
B 使用startBackgroundRunning申請任務,使用stopBackgroundRunning取消任務
C 使用publishReminder發布一個提醒類通知,使用cancelReminder取消一個指定的提醒類通知
D 使用startWork申請任務,使用stopWork取消任務,使用getWorkStatus獲取任務狀態
77、開發者小張正在使用DevEco Studio開發一款HarmonyOS應用,他遇到了一個僅在應用實際運行環境中出現的問題,需要調試己部署在設備上的應用以定位問題根源,為了能夠在應用已經運行的情況下介入調試,小張應該采用哪種調試方法
B、Attach Debugger to Process,這允許他連接到正在運行的應用進程進行調試。
78、下面持續交付&持續部署描述哪個是正確的 (B)
A 持續部署是將代碼庫中的任何更改都應該自動且快速地投入生產環境。持續部署等同于持續交付。
B 持續交付(CD, Continuous Delivery): 指的是,頻繁的將軟件的新版本,交付給質量團隊或者用戶,以供評審。如果評審通過,代碼就進入生產階段。它強調的是,不管怎么更新,軟件是隨時隨地可以交付的。
C 在持續交付實踐中,要考慮處理故障回滾和緊急修復,以確保系統在出現問題時能夠快速恢復和修復。
D 持續交付可以隨時隨地部署到生產環境
79、某業務團隊的架構師發現某個特性用的頻率比較少,但是這個特性占用空間資源還是比較大的。為了減少首包下載體積,準備將該特性解耦出來,并對外提供API方便主模塊調用。以下說法正確的是 (D)
A 將該特性做成hap包,通過Ability組件暴露出來給主app使用
B 將該特性做成動態加載的har包,暴露接口給主模塊使用。
C 錦該特性做成H5模塊,通過web組件加截遠程資源使用
D 將該特性做成按需加載的hsp包,暴露接口給主模塊使用
80、如果想讓outer button響應事件,hitTestBehavior該怎么配 (C)
A HitTestMode.None
B HitTestMode.Default
C HitTestMode.Transparent
D HitTestMode.Block
81、在使用DevEco Studio進行混合語言開發時,開發者小李通過Napi引用了Native 接口的文件(例如d.ts文件)。他想要直接從這些接口跳轉到其對應的C/C++函數實現處進行代碼審查。請從以下選項中選擇最合適的操作步驟來幫助小李實現這一目標 (A)
A 在聲明或引用了Native接口的文件中,比如d.ts文件,小李可以直接選中接口名稱,右鍵點擊并在彈出的菜單中選擇“Go To > Implementation(s)”(轉到> 實現)。還可以使用快捷鍵Ctrl+Alt+B;如果是macOS用戶,則使用Command+Option+B,直接跳轉到對應的C/C++函數實現位置。
B 小李可以將鼠標光標置于想要查看實現的接口名稱上,按下鼠標右鍵,在出現的上下文菜單中尋找并點擊“Find Usages”(查找用法),在結果中篩選出C/C++的實現。
C 為了查看C/C++函數實現,小李必須先切換到DevEco Studio的C/C++開發環境視圖,之后在項目的資源管理器中找到對應的C/C++源文件手動打開,才能查看函數代碼
D 小李應該打開包含TypeScript接口聲明的文件,然后手動在項目中搜索相應的C/C++源文件,逐個檢查以找到匹配的函數實現
82、下面持續集成描述哪項是錯誤的:(D)
A Martin Fowler說過,”持續集成并不能消除Bug,而是讓它們非常容易發現和改正。”
B 持續集成在大型項目(有幾十個項目組)也能應用,即便是項目組開發進度不統一也沒問題
C 持續集成(CI, Continuous Intergation): 指頻繁的,一天多次將代碼集成到主干。
D 持續集成就是持續編譯,二者異曲同工
83、關于延遲任務開發使用的接口是 (D)
A 使用requestSuspendDelay申請任務,使用getRemainingDelayTime獲取任務剩余時間
B 使用publishReminder發布一個提醒類通知,使用cancelReminder取消一個指定的提醒類通知
C 使用startBackgroundRunning申請任務,使用stopBackgroundRunning取消任務
D 使用startWork申請任務,使用stopWork取消任務,使用getWorkStatus獲取任務狀態
84、開發者張工想要高效地管理HarmonyOS設備中的文件,包括查看文件列表、進行文件搜索、新建及刪除操作,以及在設備與PC間傳輸文件而無需使用命令行工具。以下哪個選項最能準確概括張工能通過哪個工具直接在DevEco Studio界面完成上述所有操作 (C)
A DevEco Studio的Terminal面板
B DevEco Studio的Project Explorer
C DevEco Studio的Device File Browser
D DevEco Studio的Log面板
85、開發者在編寫ArkUI代碼時,想要提前預覽下所編寫的組件的效果,下述哪個組件可以使用DevEco Studio Previewer正常預覽?(A)
A @Preview @Component struct TitleSample { @StorageProp('title') title: string = 'PlaceHolder'; build() { Text(this.title) } }
B @Preview @Component struct LinkSample { @Link message: string; build() { Text(this.message) } }
C @Preview @Component struct ConsumeSample { @Consume name: string; build() { Text(this.name) } }
D import { add } from 'libnative.so'; @Preview @Component struct NativeSample { count: number = add(1, 2); build() { Text(`current count is ${this.count}`) } }
86、關于代碼門禁理解正確的是:(A)
A 代碼門禁則是在代碼合并之前就驗證代碼來保護主干分支的完整性。通過這種方式,可以保護主分支代碼避免因合碼導致的構建中斷,以確保 master 分支代碼始終是可部署的,并且不會因明顯的錯誤而影響到你正在并行開發的同事工作。
B 標準 CI 構建是在代碼合并后檢查已提交代碼的功能完整性,這種方法會導致代碼合并到master后編譯失敗導致沒有可用版本部署。通過提高滾動構建的頻度就可以代替代碼門禁,保障代碼主干及時發現并解決問題。
C 門禁級檢查的范圍和版本級檢查的范圍保持一致,盡可能多的在MR門禁階段就攔截防護住問題,保障問題可以及時清理掉。
D 代碼門禁是一項代碼質量保障措施。目的是要求開發人員提交的代碼必須滿足一些要求才能合入代碼倉庫。門禁必須強制要求包括編譯通過、單元測試覆蓋率達標、代碼靜態檢查無告警、全量功能測試用例、DFX專項測試都通過。
87、下面關于方舟字節碼格式PREF_IMM16_V8_V8描述正確的是(A)
A 16位前綴操作碼,16位立即數,2個8位寄存器
B 8位操作碼,8位立即數,2個8位寄存器
C 8位操作碼,8位立即數,16位id,8位寄存器
D 16位前綴操作碼,16位立即數,8位寄存器
88、Text組件不支持以下哪種使用方式?(C)
89、當前您在開發一個ArkTS、Stage模型的HarmonyOS工程,關于當前ArkTS工程目錄結構,下列選項說法錯誤的是?(D)
A entry > src > main > module.json5:Stage模型模塊配置文件,主要包含HAP的配置信息、應用在具體設備上的配置信息以及應用的全局配置信息。
B AppScope > app.json5:應用的全局配置信息。
C oh-package.json5:描述依賴配置,如:依賴覆蓋(overrides)、依賴關系重寫(overrideDependencyMap)和參數化配置(parameterFile)等。
D build-profile.json5:應用級編譯構建任務腳本。
90、當您開始開發一個應用/服務時,首先需要根據工程創建向導,創建一個新的工程,工具會自動生成對應的代碼和資源模板。關于新建工程,下列選項說法正確的是?(A)
A Compatible SDK是兼容的最低API Version。
B 應用包名(Bundle name)必須為以點號(.)分隔的字符串,且至少包含三段,每段中僅允許使用英文字母、數字,如“com.example.myapplication ”。
C 工程文件本地存儲路徑(Save location)允許包含中文字符。
D 創建用于Lite Wearable設備的工程,可以選擇Native C++工程模板。
91、在編譯構建HAP時,會從HAP模塊及依賴的模塊中收集資源文件,如果不同模塊下的資源文件出現重名沖突時,會按照優先級進行覆蓋,現在有一個HAP依賴了兩個HAR,依賴配置如下所示:在資源覆蓋時,以下優先級排序正確的是(A)
A AppScope>HAP包自身模塊>dayjs模塊>lottie模塊
B AppScope>HAP包自身模塊>lottie模塊>dayjs模塊
C HAP包自身模塊>dayjs模塊>lottie模塊>AppScope
D HAP包自身模塊>lottie模塊>dayjs模塊>AppScope
92、作為一個應用開發者,想搭建運維平臺,想在應用內定時讀取當前的內存信息,可以通過()接口來實現。(C)
A hiChecker
B hiAppEvent
C hiDebug
D hiLog
93、開發者小李遇到了一個復雜的問題,該問題僅在特定的代碼執行路徑上出現,且難以復現。他使用的是C++進行核心算法開發,代碼的邏輯密集且對性能要求極高,DevEco Studio為C/C++開發者提供的高級調試能力,以下哪個能力可以幫助小李查看代碼歷史執行路徑,回溯到關鍵的變量狀態 (B)
A 代碼靜態分析:提供靜態代碼檢查工具,通過語法和邏輯分析幫助預防潛在錯誤,但不涉及運行時問題定位
B 反向調試能力:允許開發者在調試過程中回退回到之前的代碼行或斷點,不僅查看過去的堆棧信息,還能重現歷史的全局、靜態和局部變量狀態,幫助深入理解代碼歷史行為,特別是對于復雜邏輯和難以復現的bug定位至關重要
C 實時代碼修改與運行時效果查看:支持在調試過程中修改代碼并立即查看修改效果,適用于快速迭代,但不聚焦于問題追溯
D 傳統調試模式:僅允許在當前斷點暫停代碼執行,查看調用堆棧和當前變量信息,但無法追溯歷史執行狀態
94、小華正在使用DevEco Studio開發一款基于HarmonyOS的ArkUI應用,該應用需要實現一個功能,即當用戶點擊按鈕時,通過ArkTS/JS API調用系統的分享功能。小華對具體的API調用細節不太熟悉,如何通過DevEco Studio快速查閱相關的API文檔。(B)
A 小華在代碼編輯區直接鍵入分享功能相關的API調用代碼,如 arkui.getShare(),然后按F1鍵,期望編輯器能自動跳轉到該API的文檔頁面。
B 小華將鼠標懸停在編輯器中已經鍵入或打算鍵入的API調用(例如 @system.router.push)上,等待編輯器自動彈出懸浮提示框,顯示該API的簡要信息和不同版本參數說明。隨后,點擊提示框右下角的“Show in API Reference”鏈接,直接跳轉到詳盡的API參考文檔頁面。
C 小華右鍵點擊代碼編輯區,選擇“Find Usages”選項,試圖從其他地方引用該API的實例中學習如何使用分享功能。
D 小華應該先停止編碼工作,打開瀏覽器,手動搜索關鍵詞“HarmonyOS ArkUI 分享API”,在官方網站的文檔頁面中尋找相關API的使用方法。
95、根據上面代碼,以下解釋正確的是 (D)
A 在ChangeMode里改變mode的值,會觸發其父組件Page的Title內容的切換。
B 為了避免@Prop的拷貝,可以優化使用@Link,在該例子中行為和@Prop一樣。
C 本例子可以運行起來,所以代碼沒有問題。
D 在自定義組件Page的build方法里改變狀態變量是非法操作,可能導致未定義的異常UI行為。
96、以下哪些賦值語句在ArkTS中是合法 (D)
class A {
v: number =0;
class B extends A {
u: string =",
class C {
v: number = 0;
let a1: A = new C();
let a2: A = new B();
let a3: B = new A();
let a4: C = new B();
A a4
B a3
C a1
D a2
97、下述代碼片段,使用了哪些基于web的性能優化手段 (A)
98、開發者開發了一個應用,該應用只有一個hap包,其module.json5中abilities的配置如下 所示,包含1個UIAbility(無Web組件)、1個FormExtensionAbility組件、 1個WorkSchedulerExtensionAbility組件,那么該應用在運行過程中, 最多會存在幾個應用進程: (C)
99、圖片大小跟Image組件設置的寬高不匹配時,使用objectFit屬性,不會縮放圖片的類型時下面哪個選項(A)
A CENTER
B Fill
C Contain
D Cover
100、以下哪些賦值語句在ArkTS中是合法。(A)
101、在刷新Image組件內容時,如果觀察到畫面會閃一下白塊,要怎樣優化才能避免白塊兒出現,同時又不會卡住畫面?(D)
102、用于實現捏合控制的手勢是如下哪個選項:(A)
103、使用DevEco Studio進行復雜的跨設備功能開發與調試工作,期間頻繁依賴本地模擬器來模擬多樣化的設備環境。在這樣的背景下,以下關于DevEco Studio本地模擬器所支持的規格與功能,哪一項描述是準確的(B)
A本地模擬器當前不支持查看HiLog以及FaultLog
B本地模擬器上運行的應用無需進行簽名,簡化了調試過程。
C本地模擬器當前不支持單元測試框架和UI測試框架的運行
D本地模擬器和真機的能力沒有任何差異,真機上可以支持的能力在模擬器上都可以
104、通過aa工具拉起com.example.test的EntryAbility,并傳參給EntryAbility,具體參數是number類型的[key1, 1] [key2,2] 和string類型的[key3, testString] [key4,''],那邊下面那個aa 命令是正確的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps key4
B aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4”
C aa start -b com.example.test -a EntryAbility --pi key1 1 key2 2 --ps key3 testString --psn key4
D aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4
105、通過aa工具拉起com.example.test的EntryAbility,并傳參給EntryAbility,具體參數是number類型的[key1, 1] [key2,2] 和string類型的[key3, testString] [key4,''],那邊下面那個aa 命令是正確的:(D)
A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps key4
B aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4”
C aa start -b com.example.test -a EntryAbility --pi key1 1 key2 2 --ps key3 testString --psn key4
D aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4
106、如果想要設置輸入框的自定義鍵盤,可以使用下面的哪個接口?(A)
A customKeyboard
B showCounter
C showUnit
D enterKeyType
107、圖片大小跟lmage組件設置的寬高不匹配時,使用objectFit屬性,不會縮放圖片的類型
是下面哪個選項(A)
A Center
B Cover
C Fill
D Contain
108、以下 Websocket?連接開發的步驟順序,描述錯誤的是 ?()
答案:調用 Session.start?方法開啟 metadata?數據輸出
109、以下代碼中,懶加載生效的是?(?C?)
A.
"""@Entry
@Component
struct LazyTest {
??data: MyDataSource<number> = new MyDataSource<number>()
??build() {
????List() {
??????ListItemGroup() {
????????LazyForEach(this.data, (item:number)=>{
??????????ListItem() {
????????????Text(item.toString())
??????????????.width('100%')
??????????????.height(100)
??????????}
????????})
??????}
????}.width(""""100%"""").height(""""100%"""")
??}
}"" "
B.
"""@Entry
@Component
struct LazyTest {
??data: MyDataSource<number> = new MyDataSource<number>()
??build() {
????Scroll() {
??????List() {
????????LazyForEach(this.data, (item:number)=>{
??????????ListItem() {
????????????Text(item.toString())
??????????????.width('100%')
??????????????.height(100)
??????????}
????????})
??????}
????}.width(""""100%"""").height(""""100%"""")
??}
}"""
C.
"""@Entry
@Component
struct LazyTest {
??data: MyDataSource<number> = new MyDataSource<number>()
??build() {
????List() {
??????ListItem() {
????????Column() {
??????????LazyForEach(this.data, (item: number) => {
????????????Text(item.toString())
??????????????.width('100%')
??????????????.height(100)
??????????})
????????}
??????}
????}.width(""""100%"""").height(""""100%"""")
??}
}"""
D.
"""@Entry
@Component
struct LazyTest {
??data: MyDataSource<number> = new MyDataSource<number>()
??build() {
????Scroll() {
??????List() {
????????LazyForEach(this.data, (item:number)=>{
??????????ListItem() {
????????????Text(item.toString())
??????????????.width('100')
110、以下哪個事件不會在List組件調用控制器ScrollBy接口觸發?(B)
A. onScrolllndex
B. onScrollStart
C.onDidScroll
D. onWillScroll
111、現有一個寬高分別為200px的XComponent組件, 其綁定了一個XComponentController(xcController), 依次進行如下操作:
(1) xcController. setXComponentSurfaceRect( {surfaceWidth: 150, surfaceHeight:500} )
(2) 設置XComponent組件的padding為{ top: 5px, left: 10px, bottom: 15px, right: 20px}
(3) 將XComponent組件大小改為300px×300px
(4) 給XComponent組件設置一個寬度為2px的邊框
(5) xcController. setXComponentSurfaceRect( { offsetX: -20, offsetY: 50,surfaceWidth: 200, surfaceHeight: -100 } )之后, 調用xcController. getXComponentSurfaceRect()的返回值為 (A)
A. { offsetX: 81, offsetY: -89, surfaceWidth: 150, surfaceHeight: 500}
B. {offsetX: 75, offsetY: -100, surfaceWidth: 150, surfaceHeight: 500}
C. { offsetX: 81, offsetY:-89, surfaceWidth: 200, surfaceHeight: 0}
D. {offsetX: -20, offsetY: 50, surfaceWidth: 200, surfaceHeight: 500}
112、如果想要設置文本的字體正斜體,可以使用下面的哪個接口?(A)
A fontStyle
B fontWeight
C fontSize
D fontColor
113、在一個包含多個模塊(如entry、feature、har、hsp等)的大型HarmonyOS應用項目中,如果要對某個靜態共享模塊構建出靜態構建包產物,如何通過DevEco Studio進行構建(A)
A 選中har模塊,點擊build菜單欄make module har
B 選中hap模塊,點擊通過菜單欄make module 'hap
C 選中hsp模塊,點擊通過菜單欄makemodule'hsp
D 選中har模塊,點擊bd菜單欄build hap(s)
114、開發者小張開發的項目希望可以增加一個卡片,用于呈現在設備桌面上,將應用的關鍵信息展示出來,在開發服務卡片時,以下說法正確的是?(A)
A.卡片的具體配置信息通常定義在resources/base/profile/目錄下的form_config.json中
B.配置上動態卡片與靜態卡片的差別在于isDynamic參數。當isDynamic置空時,該卡片為靜態卡片
C.靜態卡片內存占用較大,可實現靜態信息展示、刷新和點擊跳轉。
D.動態卡片支持自定義交互、動效、滑動等功能,功能豐富且內存占用較小
115、應用程序開發調試過程中,經常需要安裝新應用進行調測,下面安裝應用操作錯誤的是(D)
A. bm install -p /data/app/
B. bm install -p ohosapp.hap -r
C.bm install -p ohosapp.hap
D. hdc install -p ohosapp.hap
116、在開發應用之前,開發者需要了解應用的包結構,鴻蒙應用定義了多種包格式,以下說
法錯誤的是(D)
A.HAP 可以獨立編譯、獨立運行。
B.每個HAP中的配置文件只聲明自己HAP中的組件信息。
C.以app(多個HAP打包到一起)的形式上架
D.HSP可以獨立編譯、獨立運行。
117、在UlAbility的onCreate生命周期中通過EventHub的on注冊"event1"和"event2”事件。(D)
[Example].[Entry].[EntryAbility]receive. []
[Example].[Entry].[EntryAbility]ireceive.[2,"test2"]
[Example].[Entry].[EntryAbility]receive.[2,"test2"]
118、下述冷啟動場景代碼片段,組件初始化生命周期中存在CPU密集型任務,為了降低應用冷啟動時的白屏時延長,高性能優化方向的最優解為:(D)
aboutToAppear() {
this.doTask(); // 此為CPU密集型任務
}
A.使用Promise封裝doTask
B.使用setTimeout封裝doTask
C.無需優化
D.將doTask注冊到taskpool中執行
119、下述場景代碼片段,組件A、B互斥出現,請問用什么方案可以使頁面內容在A、B切換時,保持高性能:(B)
A.使用條件渲染
B.使用顯隱控制
C.以上兩種方法均可,沒有差別
120、下述代碼片段中的renderGroup屬性,對性能的影響是什么(A)
A 劣化
B 不一定
C 沒有變化
D 優化
121、Image組件如下屬性中哪個屬性是支持svg圖源的?(D)
A interpolation
B objectRepeat
C renderMode
D colorFilter
122、在如下界面中使用tab鍵走焦,正確的走焦順序是?(A)
A Button3->Row2->Button4->Text2->Button2->Button3
B Button3->Row2->Button4->Text2->Button1->Button2->Button3
C Button3->Text1->Button4->Text2->Image1->Button2->Button3
D Button3->Button4->Text2->Button2->Button3
123、運行下面代碼后,以下說法正確的是:(A)
A 點擊update2按鈕后,顯示的字符串會變化
B 點擊update3按鈕后,顯示的字符串會變化
C 點擊update1按鈕后,顯示的字符串會變化
D 點擊三個按鈕,字符串都不會變化
124、如下頁面區域1可以使用哪段代碼實現:看圖
125、下列代碼中哪些不能指定半模態高度?(D)
A height: SheetSize.FIT_CONTENT,
B height: SheetSize.LARGE,
C height: SheetSize.MEDIUM,
D height: SheetSize.END,
126、折疊屏上如何實現折疊和展開時Grid列數和列寬自適應?(A)
A Grid().columnsTemplate(('repeat(auto-fit, 100)'))
B Grid().columnsTemplate('1fr 1fr 1fr 1fr 1fr 1fr')
C Grid().columnsTemplate(('repeat(auto-fill, 100)'))
D Grid().columnsTemplate('1fr 1fr 1fr')
127、下述列表場景代碼片段,列表中存在大量數據,為了降低列表初始化時的耗時,高性能優化方向的最優解為:(D)
List() {
ForEach(...) // 列表項很多
}
.width('100%')
.height('100%')
A 結合使用選項A和B
B 無需優化
C 為List組件添加cachedCount屬性
D 使用LazyForEach替代ForEach
128、HAP(Harmony.Ability Package)是應用安裝和運行的基本單元,以下關于HAP的描述錯誤的是(C)
A HAP包是由代碼、資源、第三方庫、配置文件等打包生成的模塊包,其主要分為兩種類型:entry和feature。
B 同一應用所有HAP的配置文件中的bundleName、versionCode、versionName必須要保持一致。
C 支持導出接口和ArkUI組件,給其他模塊使用。
D 同一應用所有HAP的簽名證書必須要保持一致
129、ArkTS支持以下哪個函數。(D)
A Object.hasOwnProperty();
B Object.getOwnPropertyDescriptor();
C Object.getOwnPropertyDescriptors();
D Object.values();
130、已知下列代碼PageOne頁面為navigation中的某一子頁面,依次點擊PageOne頁面中toPageTwo按鈕,PageTwo頁面中toPageOne按鈕,此時獲取當前頁面的路由棧數量為多少 ()
答案是3
131、關于長時任務開發使用的接口是(B)
A. 使用publishReminder發布一個提醒類通知,使用cancelReminder取消一個指定的提醒類通知
B 使用startBackgroundRunning申請任務,使用stopBackgroundRunning取消任務
C 使用startWork申請任務,使用stopWor取消任務,使用getWorkStatus獲取任務狀態
D 使用reguestSuspendDelay申請任務,使用getRemainingDelayTime獲取任務剩余時間
132、項目中包含原生代碼,使用C/C++編寫。請描述如何在DevEco Studio中配置CMakeLists.txt文件,以確保原生代碼能夠被正確編譯和鏈接(B)
A 在build-Profile.json5定義的buildOption/externalNativeOptions/ abiFilters中設置CMakeLists.txt的路徑
B 在build-Profile.json5定義的buildOption/externalNativeOptions/cppFlags中設置CMakeLists.txt的路徑
C 在build-Profile.json5定義的buildOption/externalNativeOptions/arguments中設置CMakeLists.txt的路徑
D 在build-Profile.json5定義的buildOption/externalNativeOptions/path中設置CMakeLists.txt的路徑
133、一個應用的功能比較復雜,需要使用ExtensionAbility組件,針對該應用的開發,下面說法錯誤的是(B)
A 每個HAP中包含一個UAbility組件或者一個ExtensionAbility組件。
B ExtensionAbility使用獨立的HAP實現,可能會存在多個HAP引用相同的HAR,導致重復打包的問題,因此把所有的HAR都使用HSP代替。
C 可以采用多HAP(即一個entry包+多個feature包)來實現應用開發。
D 根據二八原則,非常用的功能,封裝成HSP,做成按需加載的模塊。
134、下列哪種語言,是無法直接在Web組件加載的網頁中運行的? (A)
A PHP
B WebAssembly
C JavaScript
D html
135、張工在使用DevEco Studio開發HarmonyOS應用時,遇到了代碼編譯警告和錯誤。為了提高開發效率,哪一項正確描述了張工如何利用DevEco Studio的Quick Fix功能來有效管理和修復代碼中的問題?(D)
A 張工應該首先使用Ctrl + Shift + F快捷鍵全局搜索問題,然后手動在搜索結果中找出代碼警告和錯誤的原因及位置。
B 張工在代碼編輯界面看到紅色波浪線標記的錯誤時,直接右鍵點擊錯誤代碼,選擇“Delete Line”以移除錯誤代碼行,從而“修復”問題。
C 張工只需在代碼編輯界面按下F1鍵,DevEco Studio會自動識別當前光標所在行的錯誤并直接修復。
D 張工通過雙擊Shift鍵打開搜索框,輸入"problems"打開問題工具面板,雙擊具體告警條目可直接跳轉到問題代碼行。接著,將光標置于告警位置,利用彈出的懸浮窗選擇合適的修復建議或點擊“More actions”以查看更多修復選項。
136、開發者小華開發了一個鴻蒙應用,功能開發自驗證完成后,準備進行上架了,需要對應用的質量進行初步的評過,為了快速評估和提升產品品質,針對這個場景,小華可以使用IDE上哪個能力幫助他完成這個事情 (A)
A 應用與服務體檢(App Analyzer)
B 代碼質量審查(Code Review)
C 單元編程插樁測試(Unit Test)
D 實時序圖調試(Sequence Diagram Debugger)
137、使用Web組件的JavascriptProxy接口與網頁互通時,如果希望對發起JavaScript的網頁URL進行權限控制。獲取對應網頁URL通過哪個接口最準確?(B)
A loadUrl的Url參數
B getLastJavascriptProxyCallingFrameUrl
C getUrl
D getOriginalUrl
138、Web組件的WebviewControler.prefetchPage方法預加載的資源有效期是?(C)
A 1分鐘
B 3分鐘
C 5分鐘
D 2分鐘
139、發者小李正在使用DevEco Studio開發一款面向HarmonyOS的應用,他需要使用鴻蒙的測試框架能力來確保應用質量,在編寫測試框架代碼時,關于測試框架的api能力說法正確的是:()
答案:afterAll:在測試套內定義一個清理條件,在所有測試用例結束后執行且僅執行一次,支持一個參數:清理動作函數
140、Web組件調試H5頁面的加載性能,可以通過哪個工具? ()
答案:選擇DevTools
141、以下關于指定實例啟動模式說法正確的是?()
答案: 支持拉起指定標識的實例
142、以下關于Want的說法錯誤的是?()
答案: Want不支持自定義參數
143、關于組件復用,以下說法錯誤的是:()
答案: 可以通過設置cachedCount來指定緩存數量實現組件復用
144、下列哪項屬于精簡節點數的方式來優化布局性能。()
答案:移除冗余節點
145、模態轉場不包括以下哪個類別?()
答案: 警告彈窗
146、屬性animation可以在哪些組件中使用?()
答案:基礎組件和容器組件
147、下列關于Web組件的屬性,描述錯誤的是?()
答案 :javaScriptAccess設置注入JavaScript對象
148、下列關于Webview,描述錯誤的是?()
答案:一個WebviewController對象可以控制多個Web組件
149、在發布進度類型通知前需要查詢以下哪一點?()
答案: 系統是否支持進度條模板
150、下面說法正確的是?()
答案: 調用notificationManager.cancel需要傳入通知ID
151、以下有關線程安全的函數功能說明正確的是。()
答案:napi_ref_threadsafe_function:指示在主線程上運行的事件循環在線程安全函數被銷毀之前不應退出。
152、關于napi_create_async_work接口中注冊的execute和complete回調,以下哪個說法是正確的。()
答案:execute回調函數主要用于執行異步業務邏輯,代碼運行在work子線程中
153、下面哪個API可以控制動畫的播放?()
答案:play()
154、通過ohpm安裝@ohos/lottie后,在哪個文件中會生成相關的配置信息?()
答案: oh-package.json5
155、以下服務,哪個屬于應用框架能力()
答案:ArkUI
156、性能測試中關于時延的描述,以下說法錯誤的是:()
答案:熱啟動完成時延:應用首次啟動時間,即點擊觸發啟動開始到應用啟動加載完成的時間。
157、關于穩定性測試,以下說法錯誤的是:()
答案:踩內存:指在用戶正常操作的情況下,應用對內存使用不當,導致有限的內存資源申請超上限或使用完未被釋放。
158、創建應用時,應用包名需要和在DevEco Studio中創建工程時哪個字段保持一致?()
答案:bundleName
159、以下哪個不是HarmonyOS安全設計理念要素?()
答案:高效性
160、下列哪個不是設備端側證書?()
答案: CBG根證書
161、關于HiLog日志打印規則,下列說法錯誤的是:()
答案:日志中可以打印用戶個人隱私信息
162、下列哪一項不是HiLog定義的日志級別:()
答案:FAIL
163、應用的界面圖標,最小不得小于?()
答案:8vp
164、有內容填充的啟動頁在全屏狀態停留時長不建議超過()
答案:3s
165、開發者名下有安卓版本的應用和HarmonyOS應用,為了打通應用賬號數據,保證賬號的連續性,推薦應用使用的賬號唯一標識是()
答案:UnionID
166、調用賬號登錄接口,可以通過使用( )參數防止跨站攻擊()
答案:state
167、以下哪個接口不是Web組件web_webview.WebDownloadltem接囗的能力(D)
168、下列關于自定義組件的生命周期的說法錯誤的是(B)
169、單個實況窗的生命周期最長不超過()小時超過()小時后、系統會認為實況窗結束。(B)
170、關于代理提醒描述正確的是(C)
171、下面關于V2狀態管理Repeat說法錯誤的是(B)
172、下面關于V2狀態管理@Event裝飾器的描述錯誤的是(C)
173、下面關于V2狀態管理@Param裝飾器的描述錯誤的是(D)
174、如何設置子元素可以實現在Flex布局的交叉軸方向上拉伸填充?(D)
175、以下關于ArkUl NavDestination組件的生命周期執行順序中正確的是(A)
176、如果LocalStorage中key對應的屬性值發生改變,會同步修改哪個狀態變量(D)
177、同一個組織內部的多個應用之間,建議使用集成態的以下哪個實現代碼和資源的共享?(A)
178、在申請定位相關權限時,如果應用只申請ohos.permission.APPROXMATELY LOCATION權限,沒有申請ohos.permission.LOCATION權限,會有以下哪個影響(B)
多選題
1、在ArkTS中,以下哪些聲明類的方式是正確的 (AD)
A C2
B C4
C C3
D C1
2、一個應用通常會包含多種功能,將不同的功能特性按模塊來劃分和管理是一種良好的設計方式。在開發過程中,我們可以將每個功能模塊作為一個獨立的Module進行開發,下面關于Module的說法正確的是 (ABC)
A Library類型的Module,用于實現代碼和資源的共享,有兩種類型,分別為Static Library和Shared Library兩種類型。
B Ability類型的Module,用于實現應用的功能和特性,有兩種類型,分別為entry和feature。
C feature類型的Module,應用的動態特性模塊,一個應用中可以包含一個或多個feature類型的模塊,也可以不包
D entry類型的Module,是應用的主模塊,一個應用只能包含唯一一個entry類型的HAP。
3、在開發過程中,我們可以將每個功能模塊作為一個獨立的Module進行開發。關于Module,下列選項說法正確的是?(ABD)
A Shared Library:動態共享庫。HSP中的代碼和資源可以獨立編譯,運行時在一個進程中代碼也只會存在一份。
B Static Library:靜態共享庫。HAR中的代碼和資源跟隨使用方編譯,如果有多個使用方,它們的編譯產物中會存在多份相同拷貝。
C entry類型的Module:應用的主模塊,包含應用的入口界面、入口圖標和主功能特性,編譯后生成entry類型的HAP。每一個應用分發到同一類型的設備上的應用程序包,可以包含一個或多個entry類型的HAP。
D feature類型的Module:應用的動態特性模塊,編譯后生成feature類型的HAP。一個應用中可以包含一個或多個feature類型的HAP,也可以不包含。
4、某業務團隊發現用戶對他們App的某個特性使用率并不高,為了節省用戶首次下載安裝包的體積。考慮將該特性做成按需加載,那么推薦該特性使用的工程模塊類型是?(AB)
A.hap
B.hsp
C.app
D.har
5、哪些是持續部署最佳實踐?
正確答案是:
A、監控和回滾機制:實時監控部署后的應用狀態,如有問題及時回滾。
B、自動化部署流程:從代碼提交到部署的整個流程應盡可能自動化。
D、灰度發布:先在小部分用戶或區域進行部署,觀察沒問題后再全面推廣。
G、環境一致性:保持開發、測試、生產等環境的高度一致性。
6、以下代碼片段哪幾處違反了ArkTS語法規范。(ACD)
A p.x = 'Hello!';
B let p = new Point(1.0, 1.0);
C p.z = 2.0;
D delete p.x;
7、以下napi代碼有問題的是
正確答案:
B napi_ref g_ref = nullptr; /***** excute in main thread *****/ static napi_value DemoInMainThread(napi_env env, napi_callback_info info) { napi_value string = nullptr; napi_create_string_utf8(env, "bar", NAPI_AUTO_LENGTH, &string); napi_create_reference(env, string, 1, &g_ref); return string; } /***** excute in worker thread *****/ static napi_value DemoInWorkerThread(napi_env env, napi_callback_info info) { napi_value string = nullptr; napi_get_reference_value(env, g_ref, &string); napi_value object = nullptr; napi_create_object(env, &object); napi_set_named_property(env, object, "foo", string); return object; }
D static napi_value Demo(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_value sizeObj = nullptr; napi_handle_scope scope = nullptr; napi_open_handle_scope(env, &scope); napi_call_function(env, nullptr, args[0], 0, nullptr, &sizeObj); napi_close_handle_scope(env, scope); int64_t width = 0; napi_value result = nullptr; napi_get_element(env, sizeObj, 0, &result); napi_get_value_int64(env, result, &width); return result; }
8、下面關于混淆的描述正確的是 (ABCD)
A 混淆支持ArkTS/TS/JS文件的混淆
B 代碼混淆已經被集成了到SDK中,可以在DevEco Studio中方便地使用。
C API 10及以上版本的Stage模型、編譯模式為release時,默認開啟代碼混淆功能;默認的混淆功能僅會混淆函數參數和局部變量的名稱。
D 針對工程源碼的混淆可以降低工程被破解攻擊的風險,縮短函數名、類名和屬性名,減小應用的大小。
9、下面關于方舟字節碼指令含義說明正確的是 (AC)
A 假設寄存器v0存放了對象A, 寄存器v1存放了對象B,那么執行指令"mov v0, v1"后,v0存放對象B, v1存放對象B
B 假設寄存器v0存放了對象A, 寄存器v1存放了對象B,那么執行指令"mov v0, v1"后,v0存放對象A, v1存放對象A
C 假設寄存器v0存放了對象A, 累加器(acc)存放了對象B,那么執行指令"lda v0"后,v0存放對象A,acc存放對象A
D 假設寄存器v0存放了對象A, 累加器(acc)存放了對象B,那么執行指令"lda v0"后,v0存放對象B,acc存放對象B
10、下面關于ArkTS中import用法,正確的是(ABCD)
A import { export1 as alias1 } from "ets file name"
B import {export1 } from "ets file name"
C import * as name from "ets file name"
D import defaultExport from."ets file name"
11、以下關于ArkTS線程實例間傳輸實現方式描述正確的是 (AB)
A taskpool.execute(task).then(() => {});,TaskPool 共享傳輸實現方式
B w.postMessageWithSharedSendable(a);,Worker 共享傳輸實現方式
C task.setCloneList([a]); taskpool.execute(task).then(() => {});,TaskPool 共享傳輸實現方式
D w.postMessage(a);,Worker 共享傳輸實現方式
12、以下代碼片段哪幾個函數違反了ArkTS語法規范(AB)
A foo1
B foo4
C foo3
D foo2
13、在ArkTS中,以下哪些屬性的聲明是正確的。 (ACD)
A value1
B value2
C value4
D value3
14、如下ABC 3處手勢,有機會執行的是哪幾處?(AC)
A A
B B
C C
D NA
15、以下哪些實現方式可實現文本字號20的效果(ACD)
A 包含Text(undefined.{controller:this.controller})
B 包含Text('This is text').minFontSize(20)
C 包含Text(){ Span('span letter spacing').fontSize(20) }.fontSize(30)
D 包含Text('TextAlign set to center').fontSize(20)
16、依次點擊A、B、C、D四個按鈕,其中不會觸發UI刷新的是:(AB)
A A
B B
C C
D D
17、如何實現類似下圖布局(BC)
18、Code Linter針對ArkTS/TS代碼進行最佳實踐/編程規范方面的檢查,最佳實踐/編程規范方面的檢查規則可以配置,針對codelinter的配置項一下哪些說法是正確的(ACD)
A ruleSet:配置檢查使用的規則集,規則集支持一次導入多條規則。
B rules:可以基于ruleSet配置的規則集,新增額外規則項,但是無法修改ruleSet中規則默認配置
C ignore:配置無需檢查的文件目錄,其指定的目錄或文件需使用相對路徑格式,相對于code-linter.json5所在工程根目錄,例如:build/**/*。
D files:配置待檢查的文件名單,如未指定目錄,規則適用于所有文件,例如:[“**/*.ets”,”**/*.js”,”**/*.ts”]。
19、一個應用通常會包含多種功能,將不同的功能特性按模塊來劃分和管理是一種良好的設計方式。在開發過程中,我們可以將每個功能模塊作為一個獨立的Module進行開發,下面關于Module的說法正確的是(ABC)
A Library類型的Module,用于實現代碼和資源的共享,有兩種類型,分別為Static Library和Shared Library兩種類型。
B Ability類型的Module,用于實現應用的功能和特性,有兩種類型,分別為entry和feature。
C feature類型的Module,應用的動態特性模塊,一個應用中可以包含一個或多個feature類型的模塊,也可以不包
D entry類型的Module,是應用的主模塊,一個應用只能包含唯一一個entry類型的HAP。
20、在大型軟件工程中,一般會伴隨著多團隊開發,各團隊開發自己的業務模塊,最后再由集成交付團隊集成到一起,下面哪些是大型應用模塊化開發最佳實踐(ABCD)
A 若多個模塊依賴了不同版本的HAR,使用OHPM的overrides機制配置指定使用哪個版本的HAR,以減少包大小。
B 避免用戶首次下載應用耗時過長,及過多占用用戶空間,不常用功能做成按需加載。
C 一次上架多端部署。
D 使用路由表進行模塊間解耦。
21、通過如下openLink的接口啟動,如下哪些配置的UIAbility不可能被拉起(下圖不選,其余三個選)viewDate+https
22、某個應用的啟動框架配置文件詳細信息如下,以下說法正確的是:(ACD)
A StartupTask_001會在StartupTask_004之后執行
B StartupTask_003會在StartupTask_004之后執行
C StartupTask_005會在主線程執行
D StartupTask_006會在AbilityStage的onCreate前初始化完成
23、使用ArkUI組件復用之后,還是沒有顯著提升列表滑動場景的性能,屬于組件復用未生效可能的原因有?(BCD)
A 沒有在aboutToReuse更新關聯的狀態變量數據。
B 在aboutToReuse回調函數中更新了冗余的狀態變量。
C 頁面嵌套了過多自定義組件。
D 復用的自定義組件中使用if等條件渲染語句導致結構不相同,未使用reuseId標記。
24、下面關于動態import描述正確的是(ABC)
A 動態import根據入參是否為常量字符串分為常量動態import和變量動態import兩種
B HAR模塊間只有變量動態import時可以進行模塊解耦
C 動態導入import0)是個異步接口,調用后將返回一個promise
D 常量動態import也必須配置runtimeOnly選項
25、下面關于混淆規則描述正確的是(AC)
A -enable-export-obfuscation:開啟直接導入或導出的類或對象的名稱和屬性名混淆
B -enable-toplevel-obfuscation:開啟屬性混淆
C -disable-obfuscation:關閉所有混淆
D -enable-property-obfuscation:開啟頂層作用域名稱混淆
26、在ArkTS中,以下代碼片段正確的是 (AB)
正確答案如下:
A function fn(x: string | number): string { return 'value: ' + x; } type funcType = (ns: string) => string; let func: funcType = fn;
B function fn(x: string | number): string { return 'value:' + x; } type funcType = (ns: string | number) => string; let func: funcType = fn;
27、以下代碼片段哪幾處違反了ArkTS語法規范。 (BCD)
A foo(1, 2);
B foo(1, 2, 3, 4);
C foo();
D foo(1, 2, 3);
28、以下關于Taskpool和Worker的描述正確的是(AC)
A Worker的任務執行時長上限是無限制
B Worker支持取消已發起的任務
C TaskPool支持設置任務的優先級
D TaskPool不支持線程復用
29、List組件onScrollIndex事件觸發時機是 (BD)
A List組件滾動停止時觸發
B List組件顯示區域內第一個子組件或最后一個子組件或中間位置子組件索引值變化時觸發
C List組件列表滾動時每幀觸發
D List組件首次加載完成時觸發
30、如果想讓grid上的捏合手勢手勢生效,而不跟grid上的滾動手勢形成沖突,.xxxx?手勢接口應該怎么配置?(ACD)
A gesture
B GesureGroup
C priorityGesture
D parallelGesture
31、在基于Stage模型開發的應用項目代碼下,都存在一個app.json5配置文件,用于配置應用的全局信息,以下app.json5配置文件錯誤的是 (AB)
結果如下:
32、使用如下的代碼去啟動一個ability時,哪種skills定義的組件能夠被匹配到:(ACD)
33、以下哪些方式可以實現ArkWeb同層渲染能力(AD)
34、用戶購買商品后,你需要及時發放相關權益。但實際應用場景中,若出現異常將導致應用無法知道用戶實際是否支付成功,從而無法及時發放權益,即出現掉單情況。為了確保權益發放,你需要在以下哪些場景檢查用戶是否存在已購未發貨的商品:(ABC)
A createPurchase請求返回1001860001-內部錯誤時
B 應用啟動時
C createPurchase請求返回1001860051-由于已經擁有該商品,購買失敗時
D finishPurchase請求返回1001860052-由于未擁有該商品,發貨失敗時
35、ArkTS對并發編程API和能力進行了增強,以下描述正確的是(BD)
A 單次I/O任務的開發場景中,必須使用TaskPool進行開發。
B CPU密集型任務場景中,當任務不需要長時間(3分鐘)占據后臺線程,而是一個個獨立的任務時,推薦使用TaskPool進行開發。
C 默認情況下,Sendable數據在ArkTS并發實例間(包括主線程、TaskPool&Worker工作線程)傳遞的行為是拷貝傳遞。
D 在并發API的形式上,目前主要有兩種:Worker和TaskPool。
36、ArkTS中不能使用以下哪些類型。(BC)
A union type
B any
C unknown
D tuple type
37、應用開發的有些場景中,如果希望根據條件導入模塊或者按需導入模塊,可以使用動態導入代替靜態導入,面導入場景中適合使用動態import的是(ABCD)
A 當靜態導入的模塊很明顯的降低了代碼的加載速度且被使用的可能性很低,或者并不需要馬上使用它。
B 當被導入的模塊,在加載時并不存在,需要異步獲取。
C 當被導入的模塊說明符,需要動態構建。
D 當靜態導入的模塊很明顯的占用了大量的系統內存且被使用的可能性很低。
38、以下代碼片段哪幾個class/interface違反了ArkTS語法規范。(AB)
Class Person {}
Class Student extends Person {}
class Instructor implements Person{}
interface Shape {}
interface Circle implements Shape {}
class Square implements Shape {}
A Instructor
B Circle
C Square
D Student
39、下面代碼符合Node-API開發規范的是(AC)
A.
static napi_value Demo3(napi_env env, napi_callback_info info)
{
size_t argc = 2;
napi_value argv[2] = {nullptr};
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
// 業務代碼
return nullptr;
}
B.
static napi_value Demo1(napi_env env, napi_callback_info info)
{
size_t argc;
napi_value argv[10] = {nullptr};
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
return nullptr;
}
C.
static napi_value Demo2(napi_env env, napi_callback_info info)
{
size_t argc = 0;
napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
if (argc == 0) {
return nullptr;
}
napi_value* argv = new napi_value[argc];
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
// 業務代碼
delete argv;
return nullptr;
}
D.
static napi_value Demo4(napi_env env, napi_callback_info info)
{
size_t argc = 5;
napi_value argv[3] = {nullptr};
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
return nullptr;
}
40、ArkTS是鴻蒙生態的應用開發語言。下列說法正確的是(ACD)
A ArkTS在保持TypeScript(簡稱TS)基本語法風格的基礎上,進一步通過規范強化靜態檢查和分析,使得在程序運行之前的開發期能檢測更多錯誤,提升代碼健壯性,并實現更好的運行性能。
B TS/JS代碼支持import ArkTS代碼。
C針對JavaScript(簡稱JS)/TS并發能力支持有限的問題,ArkTS對并發編程API和能力進行了增強。
D ArkTS提供了聲明式UI范式、狀態管理支持等相應的能力,讓開發者可以以更簡潔、更自然的方式開發應用。
41、Image組件以下哪些方式可顯示圖片?(ABCD)
42、HarmonyOS應用開發者小張,正在利用DevEco Studio進行一款復雜應用的UI界面調試。小張了解到ArkUI Inspector是DevEco Studio內置的一項強大工具,能夠顯著提升UI調試效率。基于ArkUI Inspector的特性描述,下列哪些描述是正確的(ABD)
A 交互式組件選擇:用戶既可以在組件樹視圖中選擇組件,使UI界面上對應組件高亮顯示并展示其屬性詳情;也可以直接在UI布局顯示界面上點擊選擇組件
B UI效果查看:開發者能夠查看連接真機上運行的應用程序的UI顯示效果,頁面組件樹結構,以及選中組件的屬性信息
C 性能監控:提供詳細的UI渲染性能指標,幫助開發者識別布局瓶頸和渲染效率問題,從而優化應用性能
D UI快照管理:支持導出應用的UI界面為快照圖片,并允許這些快照被導入回ArkUI Inspector中,便于離線分析或分享討論UI設計方案
43、以下關于LocalStorage的說法正確有哪些?(ABD)
A 組件樹的根節點,即被@Entry裝飾的@Component,可以被分配一個LocalStorage實例,此組件的所有子組件實例將自動獲得對該LocalStorage實例的訪問權限。
B 應用程序可以創建多個LocalStorage實例,LocalStorage實例可以在頁面內共享,也可以通過GetShared接口,獲取在UIAbility里創建的GetShared,實現跨頁面、UIAbility內共享。
C LocalStorage中的所有屬性都是不可變的。
D 被@Component裝飾的組件最多可以訪問一個LocalStorage實例和AppStorage,未被@Entry裝飾的組件不可被獨立分配LocalStorage實例,只能接受父組件的LocalStorage實例。
44、在基于Stage模型開發的應用項目代碼下,每個模塊都存在一個module.json5配置文件,用于配置模塊的基本信息,以下module.json5配置文件正確的(ABD)
45、hiAppEvent提供的Watcher接口,訂閱到的系統事件,哪些包含HiLog日志?(BD)
A 啟動耗時事件
B卡死事件
C CPU高負載事件
D 崩潰事件
46、當前動態import支持導入的模塊類型有哪些?(ABCD)
A 動態import支持加載本地HAR模塊
B 動態import支持加載遠程HAR模塊
C 動態import支持加載HSP模塊
D 動態import支持加載OHPM模塊
47、Arkrs是鴻蒙生態的應用開發語言。以下哪些選項是ArkTs的設計理念。(ABD)
A 通過規范強化靜態檢查和分析,減少運行時的類型檢查,從而降低了運行時負載,提升執行性能。
B ArkTS保留了TS大部分的語法特性,幫助開發者更容易上手ArkTS。
C ArkTS不支持null-satety特性。
D 通過規范強化靜態檢查和分析,使得許多錯誤在編譯時可以被檢測出來,降低代碼運行錯誤的風險。
48、以下代碼片段哪幾處違反了ArkTS語法規范(ABD)
A foo(null);
B foo('');
C foo(0);
D foo(undefined);
49、以下哪些是可以在Navigation中使用pushPathByName接口傳遞的params的參數類型(ABC)
A record<string,string>
B string
C arrayBuffer
D map<string,string>
50、下面關于方舟字節碼文件格式描述正確的是(BD)
A 方舟字節碼文件中不包含字節碼文件內容的ader32校驗和
B 方舟字節碼文件中數據類型uint16 t表示16-bit無符號整數,采用小端字節序
C 方舟字節碼文件中數據類型uint32 t表示32-bit無符號整數,采用大端字節序
D 方舟字節碼文件是ArKTS/TS/JS編譯后的二進制產物
51、在開發HarmonyOS應用的多元化測試環境中,DevEco Studio引入了本地模擬器(Local Emulator)作為重要工具,旨在幫助開發者在個人開發機器上高效模擬HarmonyOS環境,進行應用或服務的快速運行與細致調試。請根據本地模擬器的實際應用場景與系統要求,選出所有正確的描述選項(BCD)
A 開發者需要注意的是,DevEco Studio的本地模擬器可以在虛擬機內部進一步運行,以節省硬件資源。
B DevEco Studio的本地模擬器允許開發者在個人電腦上模擬HarmonyOS環境,便于應用或服務的運行與調試。
C mac計算機配置方面,為了確保本地模擬器的穩定運行,推薦至少配備8GB RAM。
D 為了保證流暢的運行和調試體驗,本地模擬器推薦macOS系統版本至少為12.5以上。
52、下面關于混淆的描述正確的是(ABCD)
A 可以在HAR模塊工程的build-profile.json5中的obfuscation.consumerFiles字段中配置導出的混淆配置,該配置僅在編譯依賴該HAR的模塊時生效。
B 支持頂層作用域名稱、屬性名稱、文件名稱等多種混淆功能
C 在工程build-profile.json5中的obfuscation.ruleOptions.files字段中配置該工程的混淆配置,該配置僅在編譯該工程時生效。
D 修改應用混淆配置,新配置需要重新全量編譯應用才能生效
53、如下哪些方式可實現圖片動態播放 (ABD)
不選帶有下面這個的,其余3個全選 private async getPixelMaps() { // ==================== 怎么沒有定義Mypixelmaps???????? Mypixelmaps.push(await this.getPixmapFromMedia($r('app.media.icon'))) //對應資源圖片名后綴為png return Mypixelmaps; }
54、下面關于混淆規則描述正確的是(CD)
A -keep-property-name [,identifiers,...]:指定要保留的頂層作用域的名稱
B -keep-global-name [,identifiers,...]:指定想保留的屬性名
C -print-namecache filepath: 將名稱緩存保存到指定的文件路徑。
D -keep-file-name [,identifiers,...]:指定要保留的文件/文件夾的名稱
55、下面關于Node-API數據類型描述正確的是(CD)
A napi threadsafe function release mode:該枚舉類型定義了兩個常量,用于指定線程安全函數的調用模式
B napi threadsafe_function_call mode:該枚舉類型定義了兩B個常量,用于指定在何時釋放線程安全函數的回調函數
C napienv:用于表示Node-API執行時的上下文
D napi status:是一個枚舉數據類型,表示Node-API接口返回的狀態信息
56、以下數據類型中,哪些是Sendable數據。 (ACD)
A number
B class C
C interface I
D string
57、處于安全因素考慮,ArkTS不支持以下哪些語法。(ACD)
A with()
B Object.entries()
C eval()
D new Function('a', 'b', 'return a + b')
58、在ArkTS中,以下哪些聲明類的方式是正確的(AD)
A C2
B C4
C C3
D C1
59、小華正在使用DevEco studio開發一個復雜的Harmonyos應用,他意識到代碼中有一段邏輯被多次重復使用,為了優化代碼結構和減少冗余,他決定將這段邏輯提取出來作為一個獨立的方法。同時,他也注意到有些常用的硬編碼值可以抽象為常量,以提高代碼的可讀性和維護性。小華希望利用DevEco Studio的代碼重構功能來高效完成這些任務,通過以下哪些操作來實現代碼重構,以提升編碼效率(ABCD)
A 為了簡化復雜類型的多次書寫,小華可以選擇特定類型字面量,通過“Refactor"菜單下的“Extract Type Alias”來創建類型別名
B 選中需要重構的代碼塊,右鍵點擊選擇“Refactor”,然后選擇“Extract Method”來將代碼塊轉換為一個新的函數/方法
C 若需要將局部變量提升為類成員變量,小華只需簡單選中變量名,右鍵選擇“Refactor”->“Promote Local Variable”
D 如果小華識別到一組相關的對象字面值可以抽象為一個接口,他可以直接通過“Refactor”"菜單中的Extract Interface”功能實現
60、哪些是持續集成最佳實踐(ACDFG)
A 代碼審查:在集成前進行代碼審查,及時發現潛在問題。
B 構建相同代碼的 Pipeline 運行多次,得到結果不同。比如,基于同一代碼基線,一條 Pipeline 構建了 5 次,只要最后一次通過即可。反模式
C 全面的測試套件:包括單元測試、集成測試、功能測試等,以提高代碼質量。
D 自動化構建:確保構建過程是完全自動化的,減少人為錯誤。
E 通常項目上會有一個專職 Ops,在項目可以發布的時候手動觸發部署流程,或者需要傳遞很多參數,讓 Pipeline 運行起來。反模式
F 快速反饋機制:讓開發人員能迅速得知集成結果和測試狀態。
G 頻繁提交代碼:鼓勵開發人員經常提交小的代碼更改,以便更快地發現問題。
61、下面代碼符合ArkTS編程規范的是(AC)
62、下面代碼符合ArkTS編程規范的是(AB)
63、下面關于ArkTS中export用法,正確的是(ABCD)
A export { export1 as alias1 } from "ets file name";
B export * as name from "ets file name"
C export * from "ets file name"
D export { export1 } from "ets file name";
64、為了加快構建速度,提高開發效率,可以如何調整hvigor配置,從而優化構建速度(BCD)
A 啟用hvigor的typeCheck,在增量場景下進行對hvigorfile.ts進行類型檢查
B 啟用hvigor的incremental,在增量場景下檢查任務是否可以跳過
C 啟動hvigor的daemon模式,在增量場景下復用緩存
D 啟用hvigor的parallel,在增量場景下進行并行編譯處理
65、Navigation組件是路由導航的根視圖容器,一般作為Page頁面的根容器使用,以下關于Navigation組件說法正確的是 (CD)
A Navigation只能在entry類型的Module中使用
B Navigation子頁面的根容器可以采用如Column、Row這些容器組件
C Navigation的頁面顯示模式有單頁面、分欄和自適應三種顯示模式
D Navigation的子頁面可以來自不同的Module
66、使用如下的代碼去啟動一個ability時,哪種skills定義的組件能夠被匹配到:(ACD)
67、HSP支持導出ArkUI組件、接口,供應用內的其他HAP/HSP引用,下面正確的是 (ABC)
68、項目組開發的HarmonyOS應用工程,為了保護hap代碼資產,如何在DevEco Studio中啟用混淆的功能,并設置相應的混淆規則(BD)
A release模式下將buildOption/arkOptions/ruleOptions/enable設置為false
B release模式下將buildOption/arkOptions/ruleOptions/enable設置為true
C 在混淆規則配置文件consumer-rules.txt中進行混淆規則的配置
D 在混淆規則配置文件obfuscation-rules.txt中進行混淆規則的配置
68、Image組件如下加載方式哪些是正確的(假設加載地址是有效的)(ABD)
69、ArkTS是鴻蒙生態的應用開發語言。以下哪些選項是ArkTS的設計理念。(BCD)
70、在應用開發中,部分代碼和資源被重復引用和編譯構建,可以新建什么模塊來實現代碼和資源的共享?(AD)
A HAR
B HAP
C APK
D HSP
71、哪些是持續集成最佳實踐? (ABCEF)
A 代碼審查 :在集成前進行代碼審查,及時發現潛在問題。
B 快速反饋機制 :讓開發人員能迅速得知集成結果和測試狀態。
C 全面的測試套件 :包括單元測試?、集成測試?、?功能測試等,?以提高代碼質量。
D 通常項目上會有一個專職Ops,在項目可以發布的時候手動觸發部署流程......
E 頻繁提交代碼 :鼓勵開發人員經常提交小的代碼更改,?以便更快地發現問題。
F 自動化構建 :確保構建過程是完全自動化的,減少人為錯誤。
G 構建相同代碼的Pipeline運行多次。。。。。。。
72、開發者小張在開發鴻蒙應用項目時,首選需要涉及當前的工程結構,工程項目結構方案設計時,了解。。。。。。(ABD)
A 有三類進程。。。
B 采用面向對象的方式
C 通過導出匿名對象
D 一個進程可以運行多個應用組件實例,,,,,
73、當popup氣泡彈出后(默認配置),以下哪些行為可以使popup氣泡關閉?(AB)
A 屏幕側滑
B 點擊氣泡外的屏幕
C 窗口大小發生變化
D 息屏
74、 以下關于Menu的說法正確的是?(ABCD)
A 當設置的預覽圖片。。。
B 當布局。。。
C Menu。。。。。
D 菜單的退出方式。。。。
75、下面哪些情況下推薦使用Web組件的onInterceptRequest進行網絡攔截(BD)
A 打開新的網頁時,替換原網頁的URL
B 點擊網頁<a href.....123456789.....
C 進入首頁后,提前加載下一頁面的數據
D 網頁加載時,使用本地離線圖片資源,替換.....
76、以下關于Menu的說法正確的是?(ABCD)
A bindContextMenu長按彈出的菜單可支持拖拽,bindMenu不支持拖
B 使用狀態變量控制菜單顯示時,需要等待目標節點構建完成后才能設置,如目標節周期
C 用狀態變量控制菜單顯示時,需要等待目標節點構建完成后才能設置,如目標節周期
D bindContextMenu總是顯示在子窗口中,在PC設備上可以超出應用主窗口顯示
77、下述場景代碼片段,其中列表數據較多,且圖片為遠端圖片,能有效減少列表滑動過程中的圖片白塊的措施有:多選(ABD)
A.為List添加cachedCount屬性
B.為LazyForEach添加第三參數
C.使用ForEach替換LazyForEach
D.為img添加有效緩存管理
78、以下代碼在平板設備下,支持下拉關閉彈窗的是?(AC)
A.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.CENTER,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
B.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.POPUP,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
C.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
build() {
Column() {
Button("transition modal 1")
.onClick(() => {
this.isShow = true
})
.fontSize(20)
.margin(10)
.bindSheet($$this.isShow, this.myBuilder(),{
detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
title:{title:"title", subtitle:"subtitle"},
preferType: SheetType.BOTTOM,
shouldDismiss:((sheetDismiss: SheetDismiss)=> {
console.log("bind sheet shouldDismiss")
sheetDismiss.dismiss()
})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
D.
// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
@State isShow:boolean = false
@Builder myBuilder() {
Column() {
}
.width('100%')
}
77、Tabs組件可填入以下哪些參數:(ABD)
A barPosition
B controller
C backgroundColor
D Index
78、以下哪幾個屬于屬性字符串支持的StyledStringValue? (CD)
A Span
B ParagraphStyle
C TextStyle
D TextShadowStyle
79、Web組件支持以下哪些常用屬性(ABC)
A darkMode(mode:WebDarkMode)設置網頁深色模式
B textAutosizing 設置使能文本自動調整大小
C copyOptions(value:CopyOptions)設置剪貼板復制范圍
D InputWindowlnfo 設置網頁輸入法軟鍵盤的窗口信息
80、當UIAbility組件配置為指定實例啟動模式后,其執行過程說法正確的有(BD)
A 會觸發調用方AbilityStage的onAcceptWant()函數
B 會觸發被調用方AbilityStage的onAcceptWant()函數
C onAcceptWant()函數的返回值是布爾類型
D onAcceptWant()函數的返回值是字符串類型
81、以下哪種場景,會觸發Image組件的OnComplete回調事件(假設加載地址是有效的)(不確定)
A 組件寬高變化
B 圖源發生變化,比如從$r("app.media.MG 8809")切換成$r("app.media.IMG 1100”)
C 頁面首次加載
D 系統設置中深淺色模式發生變化
作者選bc是錯誤的,選abc也是錯誤
82、如何實現類似下圖的布局:選下面兩個作為答案
?
83、在使用DevEco studio進行Harmonyos應用開發和調試過程中,開發者小張遇到應用運行時意外終止的情況,他需要快速定位并解決導致應用崩潰的問題。以下哪些做法可以幫助小張有效分析和處理這些問題(AD)
A 利用系統自動生成的FaultLog,包括AppFreeze、Cpp Crash、JS Crash、System Freeze和ASan報告,這些報告會詳細記錄故障發生時的環境、堆械信息和可能的故障原因,是排查問題的重要參考
B 若遇到App運行卡頓或系統整體無響應(App Freeze,System Freeze)的情況;可以通過性能分析工具中的Frame insight和Allocation insight功能,分析應用的資源清耗情況,尋找可能的瓶頸
C 查看DevEco Studio log工具欄輸出的錯誤日志,根據日志提示分析應用崩潰的具體原因及代碼位置
D 當懷疑問題是由于C++代碼中的內存錯誤(如數組越界、內存泄露、重復釋放內存)引起時,進入"Run/Debug Configurations"設置界面,勾選啟用Addres Sanitizer (Asan),然后重新部署應用進行測試以獲取更詳細的內存問題報告
84、TabContent支持哪些設置對應TabBar內容的方式?(BC)
A TabContent().tabBar(SubTabBarStyle.of('tabBar’))
B @Builder tabBuilder{
...
}
TabContent(),tabBar(this.tabBuilder())
C TabContent().tabBar(“tabBar”)
D TabContent().tabBar(BottomTabBarStyle.of(r(sys media.ohos.app_icon), “tabBar”))
85、 以下代碼中,懶加載生效的是(選下面兩個)
正確答案:
86、使用隱式Want啟動UIAbility組件時,以下說法正確的是?()
正確答案:
可以在創建的Want中設置想要啟動的UIAbility組件的能力字段,如“entities”。
想要在啟動瀏覽器類型應用內時默認打開網頁,可以在創建的Want中設置“uri”字段。
在module.json5配置文件中,“skills”表示應用組件支持的能力。
87、針對長列表加載這一場景,可以采用哪些手段和方法來提升性能和用戶體驗:()
正確答案:
懶加載:提供列表數據按需加載能力,解決一次性加載長列表數據耗時長、占用過多資源的問題,可以提升頁面響應速度
緩存列表項:提供屏幕可視區域外列表項長度的自定義調節能力,配合懶加載設置可緩存列表項參數,通過預加載數據提升列表滑動體驗。
組件復用:提供可復用組件對象的緩存資源池,通過重復使用已經創建過并緩存的組件對象,降低相同組件短時間內頻繁創建和銷毀的開銷,提升組件渲染效率。
布局優化:使用扁平化布局方案,減少視圖嵌套層級和組件數,避免過度繪制,提升頁面渲染效率。
88、高級模板將屬性動畫和出現消失動畫封裝,開發者只需調用接口,可以輕松完成頁面轉場。HarmonyOS提供了哪些高級模板?()
正確答案:
導航轉場
模態轉場
共享元素轉場
89、HarmonyOS提供了哪些系統動畫能力?()
正確答案:
屬性動畫
顯式動畫
轉場動畫
路徑動畫
粒子動畫
90、Web組件支持下列哪些屬性或事件?()
正確答案:
fileAccess(fileAccess: boolean)
javaScriptAccess(javaScriptAccess: boolean)
onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean)
91、下面哪些方法可以移除通知?()
正確答案:
cancel
cancelAll
92、關于線程安全函數開發,以下哪些說法是正確的。(全選)
正確答案:
在創建線程安全函數對象時,要注冊綁定ArkTS應用側傳入的callback回調和線程安全回調napi_threadsafe_function_call_js
在Native接口實現中,會臨時返回空值或者promise對象給ArkTS應用側,以避免應用側主線程阻塞
C++子線程將會執行異步業務邏輯,并將處理結果寫入上下文數據中。同時,調用napi_call_threadsafe_function將napi_threadsafe_function_call_js拋給EventLoop事件循環
在線程安全回調napi_threadsafe_function_call_js執行過程中,將會通過調用napi_call_function或者napi_resolve_deferred把異步處理結果反饋到ArkTS應用側
93、下列哪些是加載動畫API的配置項:()
正確答案:
container
renderer
path
autoplay
94、Harmony OS應用是能夠在Harmony OS設備(例如,手機、平板等)上運行的應用程序,支持以下哪些形態()
正確答案:
需要下載安裝的應用
輕量級,具備免安裝,即用即走,服務直達,自由流轉等關鍵特征的元服務
95、HarmonyOS SDK開放能力覆蓋以下哪幾種領域:()
正確答案:
應用框架、應用服務、系統、媒體、AI、圖形
96、關于測試工具,以下說法正確的有:(全選)
正確答案:
單元測試框架(hypium)是HarmonyOS上的測試框架,提供測試用例編寫、執行、結果顯示能力,用于測試系統或應用接口。
UI測試框架是HarmonyOS應用界面測試框架,提供UI控件查找,點擊,檢視,按鍵注入等API并且支持跨設備測試。HarmonyOS應用開發者基于該測試框架可以編寫和運行簡潔可靠的UI自動化測試用例。
DevEco Testing是一款單機使用的專項測試工具,針對應用的開發和測試提供了相應的測試能力。DevEco Testing將測試能力以測試服務卡片形式的呈現給開發者和測試人員,可方便一鍵執行測試任務,并提供了測試報告和分析,輔助開發者和應用測試人員發現應用和產品問題,保障應用質量。
HarmonyOS應用云測平臺,提供兼容性、安全、UX、性能、功耗、穩定性測試能力,支持流轉、服務卡片等HarmonyOS關鍵特征自動化測試,支持華為1+8多設備運行,幫助開發者全方位看護APP基礎質量。
97、在DevEco Studio配置簽名信息時,需要上傳哪些文件?()
正確答案:
密鑰庫文件.p12文件
簽名文件.cer文件
Profile文件
98、關于自適應布局,以下說法正確的有:()
正確答案:
拉伸能力是指容器組件尺寸發生變化時,增加或減小的空間全部分配給容器組件內指定區域
占比能力是指子組件的寬高按照預設的比例,隨父容器組件發生變化
延伸能力是指容器組件內的子組件,按照其在列表中的先后順序,隨容器組件尺寸變化顯示或隱藏
99、以下哪些是自由流轉體驗(全選)
正確答案:
應用接續、服務互通、媒體播控、跨設備拖拽、跨設備剪切板
100、以下對應冷啟動不同階段的優化方法不正確的有()
正確答案:
縮短應用進程創建&初始化階段耗時:延遲加載
縮短加載繪制首頁階段耗時:設置合適分辨率的startWindowIcon
101、關于DevEco Profiler性能調優,下列說法正確的是(全選)
正確答案:
Launch:主要用于分析應用/服務的啟動耗時,分析啟動周期各階段的耗時情況、核心線程的運行情況等,協助開發者識別啟動瓶頸。
Frame:主要用于深度分析應用/服務的卡頓丟幀原因。
Time:主要用于改進函數執行效率的分析,深度錄制函數調用棧及每幀耗時等相關運行數據,并完整展現ArkTS到Native的跨語言調用棧,支撐Native API典型問題分析。
Allocation:主要用于應用/服務內存資源占用情況的分析,可深度采集內存相關數據,直觀呈現不同分類的內存趨勢,提供內存實例分配的調用棧記錄,深入分析內存問題。
Snapshot:支持多次拍攝ArkTS堆內存快照,分析單個內存快照或多個內存快照之間的差異,定位ArkTS的內存問題。
CPU:通過深度采集CPU內核相關數據,直觀地呈現出當前選擇調優應用/服務進程的CPU使用率、CPU各核心時間片調度信息、CPU各核心頻率信息、CPU各核心使用率信息、系統各進程的CPU使用情況、線程狀態及Trace信息等。
102、以下哪些是HarmonyOS生態安全的內容:(全選)
正確答案:
開發者實名
設備受限調試
上架檢測與審核
應用代碼簽名與加密
應用運行時保護與檢測
103、DFX設計范圍主要包含以下哪些:(全選)
正確答案:
HiLog日志,基礎流水日志打印。
HiAppEvent應用事件,事件埋點接口,提供事件的埋點寫入。
HiTrace Meter跟蹤,提供追蹤進程軌跡,進行程序性能分析。
HiTrace Chain調用鏈,提供業務流程調用鏈跟蹤的維測接口。
104、應用圖標需要分哪些層?()
正確答案:
前景層
背景層
105、應用通過華為賬號授權登錄后可以獲取到的多種類型的賬號信息,其中需要用戶授權才能獲取到的信息有( )
正確答案:
頭像昵稱
手機號碼
106、在復雜頁面的加載場景,可以通過動態創建Web組件,預加載方式提前加載頁面目的是為了提升什么指標?(CD)
107、下述場景代碼片段,其中可能會頁面性能的關鍵因素有(ABCD)
108、已經使用Web組件打開網頁后,切換到后臺不顯示時,可以調用哪些方法優化其資源占用(ACD)
109、以下關于Menu的說法正確的是?(ABCD)
110、在使用DevEcoStudio進行開發時,小李相對當前的項目工程進行調試,以深入分析代碼執行流程并解決潛在的邏輯錯誤。請根據以下描述,幫助小李選擇正確的操作來有效地啟動并進行斷點調試(ABCD)
111、以下哪種場景,會觸發Image組件的OnComplete回調事件(假設加載地址是有效的)(ACD)
112、以下關于Share Kit(分享服務)描述正確的是(ABCDE)
113、Remote Communication Kit(遠場通信服務)是華為提供的HTTP發起數據請求的NAPI封裝。應用通過Remote Communication Kit可便捷快速地向服務器發起數據請求。使用Remote Communication Kit的主要業務流程如下:(ABC)
?
114、下列哪些是Performance Analysis Kit(性能分析服務)為開發者提供的能力(ABCE)
115、游戲服務API支持哪些能力(ABC)
116、在使用Stack組件時,以下哪些對齊方式是有效的(BCD)
117、應用程序包可以通過以下哪些方式進行更新?(AC)