随笔分类 -  【HarmonyOS】

摘要:在 C 语言中,条件编译是一种根据特定条件决定是否编译某段代码的机制。它可以提高代码的可移植性、灵活性和效率。 一、条件编译的指令 #ifdef、#ifndef、#endif: #ifdef:如果某个宏已被定义,则编译其后的代码块。 #ifndef:如果某个宏未被定义,则编译其后的代码块。 #end 阅读全文
posted @ 2024-08-31 23:13 西北野狼
摘要:在 C 语言中,位运算是对二进制位进行的操作。以下是关于 C 语言位运算的介绍: 一、常见的位运算符 按位与(&): 规则:两个对应的二进制位都为 1 时,结果位为 1,否则为 0。 例如:5(二进制为 0101)与 3(二进制为 0011)进行按位与运算,结果为 0001,即 1。 按位或(|): 阅读全文
posted @ 2024-08-28 22:12 西北野狼
摘要:在 C 语言中,虚拟内存和物理内存是操作系统管理内存的两个重要概念。 一、物理内存 定义: 物理内存是计算机硬件中实际存在的内存芯片所提供的内存空间。它是计算机可以直接访问的真实存储单元。 物理内存的大小是有限的,通常由计算机的硬件配置决定。 作用: 存储正在运行的程序和数据。当程序被加载到内存中执 阅读全文
posted @ 2024-08-27 20:33 西北野狼
摘要:在 C 语言中,主要的数据类型有以下几类: 一、基本数据类型 整型: int:通常占据 4 个字节,具体大小取决于编译器和系统架构。用于表示整数。 short:一般为 2 个字节,短整型。 long:通常为 4 个字节或更多,长整型。 long long:至少 8 个字节,更长的整数类型。 浮点型: 阅读全文
posted @ 2024-08-23 15:46 西北野狼
摘要:二进制加法规则如下: 一、基本运算规则 0+0=0: 两个二进制位都是 0 时,结果为 0。例如,在二进制数 1010 和 0101 相加时,对应位上都是 0 的位,相加结果仍为 0。 0+1=1: 当一个二进制位为 0,另一个为 1 时,结果为 1。比如在二进制数 1100 和 0011 相加时, 阅读全文
posted @ 2024-08-23 15:20 西北野狼
摘要:CPU 和内存之间通过总线进行交互,主要包括以下几个方面: 一、指令读取 CPU 需要执行指令时,会向内存发送地址信号,指定要读取指令的存储位置。 内存根据地址信号,将相应存储单元中的指令数据通过数据总线传送给 CPU。 CPU 接收到指令后,对其进行译码和执行。 二、数据存取 当 CPU 需要读取 阅读全文
posted @ 2024-08-22 22:46 西北野狼
摘要:在 C 语言中,内存分配主要分为以下几个区域: 一、栈(Stack) 存储内容: 局部变量:在函数内部声明的变量,包括自动变量和函数参数。 函数调用信息:当函数被调用时,会在栈上分配空间来存储函数的返回地址、参数和局部变量。 特点: 内存由编译器自动管理,分配和释放非常高效。 空间相对较小,一般几兆 阅读全文
posted @ 2024-08-22 21:37 西北野狼
摘要:通过Refresh组件Api实现下拉刷新,上拉加载更多 refreshing:当前组件是否正在刷新。 offset:下拉起点距离组件顶部的距离。默认值:16,单位vp。 friction:下拉摩擦系数,取值范围为0到100。 下拉刷新实现 刷新状态:通过控制refreshing来控制; 刷新状态变更 阅读全文
posted @ 2024-06-25 22:24 西北野狼
摘要:HarmonyOS 中的关系型数据库基于 SQLite 组件,提供了一套完整的对本地数据库进行管理的机制。它支持事务、索引、视图、触发器、外键、参数化查询和预编译 SQL 语句等特性。关系型数据库适用于存储包含复杂关系数据的场景,例如学生信息或雇员信息,这些数据之间有较强的对应关系。 操作关系型数据 阅读全文
posted @ 2024-05-13 22:00 西北野狼
该文被密码保护。
posted @ 2024-05-13 06:48 西北野狼
摘要:组件介绍 PullToRefreshList允许用户通过下拉动作来刷新列表内容,以及通过上拉动作来加载更多的数据。组件内部封装了滚动监听、状态管理和动画效果,使得开发者可以轻松集成到自己的项目中。 1. 实现思路 封装成可复用的公共控件:将下拉刷新和上拉加载更多功能封装为一个可复用的组件,便于在不同 阅读全文
posted @ 2024-05-06 22:05 西北野狼
摘要:概述 Swiper组件是一个用户界面元素,用于在垂直方向上滚动内容。它通过遍历一个数据集合,为每一项创建一个可滚动的文本项。 代码实现 以下是Swiper组件的实现代码: Swiper(){ ForEach(searchSwiper,(item,index) => { Column(){ Text( 阅读全文
posted @ 2024-05-04 11:29 西北野狼
摘要:1. 引言 在软件工程中,日志记录是监控和调试应用程序的重要工具。鸿蒙操作系统(HarmonyOS)支持自定义装饰器,这使得开发者可以方便地向类的方法添加日志记录功能。本文将介绍两个用于记录方法执行的自定义装饰器:LogMethod 和 logDecorator。 2. 装饰器基础 装饰器是一种特殊 阅读全文
posted @ 2024-04-28 22:01 西北野狼
摘要:OpenHarmony操作系统支持多种多线程并发处理策略,以提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰。以下是OpenHarmony中的多线程方式,以及Worker线程间的数据通讯和内存共享方法,还有它们与Java多线程的区别: OpenHarmony多线程方式 Worker线程:Op 阅读全文
posted @ 2024-04-26 22:14 西北野狼
摘要:在软件开发中,底层库的更换或升级是常见的需求,这可能由性能提升、新功能需求或安全性考虑等因素驱动。为了降低迁移成本,良好的设计模式至关重要。 在版本迭代过程中,网络请求库可能会经历从A到B再到C的演进。为了实现业务层的无感切换,需要在各个请求库和业务代码之间封装隔离代码,以实现第三方网络库的灵活更换 阅读全文
posted @ 2024-04-26 20:38 西北野狼
摘要:背景 在多线程编程中,确保资源的互斥访问是至关重要的。允许并行执行,但需要同步机制来避免数据竞争和竞态条件。 锁的重要性 锁是一种同步机制,用于控制对共享资源的访问。在ArkTs中,传统的锁实现依赖于语言级别的原子操作,但随着共享内存的引入,我们需要一种新的同步机制。 使用SharedArrayBu 阅读全文
posted @ 2024-04-25 22:50 西北野狼
摘要:泛型(Generics)概述 泛型是一种编程语言特性,它支持类型参数化,使得定义的类、接口和方法可以适用于多种类型,而不仅仅是固定的一种类型。 理解泛型 泛型允许在定义接口时,让参数的类型更加灵活,从而使得功能更加强大。简而言之,泛型提供了一种方式,让代码能够适应不同的数据类型,而不需要为每种数据类 阅读全文
posted @ 2024-04-25 22:41 西北野狼
摘要:以下是不同 Context 类型及其特点的概述: ApplicationContext 应用级别 Context:ApplicationContext 是应用级别的上下文环境。 生命周期管理:提供了订阅应用内 Ability 生命周期变化的能力。 系统资源监控:可以订阅系统内存变化和应用内系统环境的 阅读全文
posted @ 2024-04-25 22:27 西北野狼
摘要:UIAbility 生命周期: onCreate :页面初始化,变量定义,资源加载。 onWindowStageCreate:设置 UI 界面加载、设置 WindowStage 的事件订阅。 onForeground:切换至前台,申请系统需要的资源,或者重新申请在 onBackground()中释放 阅读全文
posted @ 2024-04-25 22:19 西北野狼
摘要:设计思路 网络请求框架的设计目标是简化 HTTP 请求的发送和响应处理过程。为了实现这一目标,我们定义了几个核心组件: IHttpRequest: 定义了发送 HTTP 请求的基本操作,如设置 URL、请求头、请求参数等。 IHttpListener: 定义了 HTTP 请求完成后的回调方法,用于处 阅读全文
posted @ 2024-04-17 16:00 西北野狼