原创 HarmonyOS 自定義裝飾器

1. 引言 在軟件工程中,日誌記錄是監控和調試應用程序的重要工具。鴻蒙操作系統(HarmonyOS)支持自定義裝飾器,這使得開發者可以方便地向類的方法添加日誌記錄功能。本文將介紹兩個用於記錄方法執行的自定義裝飾器:LogMethod 和 l

原创 openharmony 多線程的方式有哪些?兩個worker線程數據如何通訊、內存如何共享、與Java多線程有什麼區別?

OpenHarmony操作系統支持多種多線程併發處理策略,以提升應用的響應速度與幀率,以及防止耗時任務對主線程的干擾。以下是OpenHarmony中的多線程方式,以及Worker線程間的數據通訊和內存共享方法,還有它們與Java多線程的區別

原创 HarmonyOS 鴻蒙隔離層設計

在軟件開發中,底層庫的更換或升級是常見的需求,這可能由性能提升、新功能需求或安全性考慮等因素驅動。爲了降低遷移成本,良好的設計模式至關重要。 在版本迭代過程中,網絡請求庫可能會經歷從A到B再到C的演進。爲了實現業務層的無感切換,需要在各個

原创 HarmonyOS 項目中泛型的使用

泛型(Generics)概述 泛型是一種編程語言特性,它支持類型參數化,使得定義的類、接口和方法可以適用於多種類型,而不僅僅是固定的一種類型。 理解泛型 泛型允許在定義接口時,讓參數的類型更加靈活,從而使得功能更加強大。簡而言之,泛型提供了

原创 HarmonyOS 應用生命週期有哪些? 按返回鍵會調用哪些生命週期?

UIAbility 生命週期: onCreate :頁面初始化,變量定義,資源加載。 onWindowStageCreate:設置 UI 界面加載、設置 WindowStage 的事件訂閱。 onForeground:切換至前臺,申請系統

原创 HarmonyOS中實現 非可重入鎖 NonReentrantLock

背景 在多線程編程中,確保資源的互斥訪問是至關重要的。允許並行執行,但需要同步機制來避免數據競爭和競態條件。 鎖的重要性 鎖是一種同步機制,用於控制對共享資源的訪問。在ArkTs中,傳統的鎖實現依賴於語言級別的原子操作,但隨着共享內存的引入

原创 HarmonyOS 中 Context 相關的內容及其區別

以下是不同 Context 類型及其特點的概述: ApplicationContext 應用級別 Context:ApplicationContext 是應用級別的上下文環境。 生命週期管理:提供了訂閱應用內 Ability 生命週期變化

原创 HarmonyOS 優化佈局性能

背景介紹   用戶界面(UI)佈局是應用程序中至關重要的部分,它不僅影響應用的外觀和用戶體驗,還直接影響應用的性能。不合理的佈局可能會導致過度的佈局計算和界面嵌套,從而增加渲染和計算的開銷,導致性能下降。   常用佈局方式   Harmo

原创 HarmonyOS 性能優化

如何合理使用動效來獲得更好的性能 組件轉場動畫使用 transition: 推薦使用轉場動畫(transition)而不是組件動畫(animateTo),因爲 transition 只需要在條件改變時更新一次,而 animateT

原创 HarmonyOS 簡易封裝網絡請求框架

    設計思路   網絡請求框架的設計目標是簡化 HTTP 請求的發送和響應處理過程。爲了實現這一目標,我們定義了幾個核心組件:   IHttpRequest: 定義了發送 HTTP 請求的基本操作,如設置 URL、請求頭、請求參

原创 List拖拽功能的實現

概述   如何在HarmonyOS應用中實現一個可拖拽的列表組件,通過這個組件,用戶可以拖動列表中的項並將其放置在新的位置,實現列表的動態排序。   核心功能   列表初始化:創建並填充列表數據。 拖拽交互:實現列表項的拖拽功能,包括拖

原创 Har 版本包發佈

新建 Module 注意名字最好是小寫命名 oh-package.json5 修改 description 描述信息 在 Index.ets 導出對外暴露的組件 export{ TitleBar } from'./src/main/

原创 TaskPool 和 Worker 的對比

作用: TaskPool(任務池)和 Worker 都爲應用程序提供多線程運行環境,用於處理耗時的計算任務或其他密集型任務,避免阻塞主線程,提高系統性能。   實現特點對比: 內存模型:TaskPool 和 Worker 都提供線程

原创 Worker 進行多線程任務開發

概念介紹 在 OpenHarmony 中,UI 線程負責處理 UI 事件和用戶交互,而 Worker 線程用於處理耗時操作,以提高應用程序的響應速度和用戶體驗。 Worker 線程是與主線程並行的獨立線程,通常用於執行後臺任務。需

原创 Flutter開發技巧集錦

flutter中單例的寫法 class AccountManager { factory AccountManager() => _instance ??= AccountManager._(); /// 銷燬單例 stat