自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(324)
  • 收藏
  • 关注

原创 【OpenHarmony】 鸿蒙 UI开发之ohos_highlightguide

基于OpenHarmony的高亮型新手引导组件,通过高亮区域与蒙版背景的明暗度对比,使用户快速锁定重点功能,快速掌握应用基本使用方法。

2025-06-13 15:31:11 363

原创 【OpenHarmony】 鸿蒙 UI开发之banner

支持自动轮播。支持无限轮播。支持垂直轮播。支持自定义指示器。支持定制的翻页动画效果,目前动画只支持8种动效,无法做到不同动效叠加。能力列表Swiper组件Banner组件自动轮播支持支持无限轮播支持支持垂直轮播支持支持自定义指示器部分支持支持指示器和banner分离不支持支持定制翻页动画效果不支持支持方法名入参接口描述自定义轮播组件Banner构造器方法名入参接口描述圆角指示器构造器方法名入参接口描述图像指示器构造器方法名入参。

2025-06-13 14:25:10 289

原创 【OpenHarmony】 鸿蒙 UI开发之RoundedImageView

RoundedImageView支持圆角(和椭圆或圆形)的快速 ImageView。它支持许多附加功能,包括椭圆、圆角矩形、ScaleTypes 和 TileModes。

2025-06-13 13:31:40 275

原创 【OpenHarmony】 鸿蒙 UI开发之MpChart(三)

1.绘制虚实相接的曲线图参考代码位置:entry/src/main/ets/pages/customCharts/DashedSolidLinePagempchart本身的绘制功能是不支持虚实相接的曲线的,要么完全是实线,要么完全是虚线。那么当需求是一半是虚线,一半是实线的曲线时,就需要自己定义方法进行绘制了。首先,需要写一个MyLineDataSet类,继承自LineDataSet(线型图的数据类)。为什么需要这个类呢?

2025-06-12 21:20:05 621

原创 【OpenHarmony】 鸿蒙 UI开发之MpChart(二)

返回 LineChart,ScatterChart,CandleStickChart等图表触摸屏幕时的Highlight 对象(包含 x-index 和 DataSet 索引)。计算图表到边框的偏移量,具体取决于图例的位置,x轴y轴的长度,及其的标签位置。返回当前高亮显示值的数组。返回图表(整个视图)的中心点的可回收的MPPointF实例。返回图表的图形绘制的中心区域的可回收的MPPointF实例。返回图表(整个视图)的中心点的可回收的MPPointF实例。允许以虚线模式绘制高亮线,例如“------”。

2025-06-12 20:19:43 684

原创 【OpenHarmony】 鸿蒙 UI开发之MpChart(一)

mpchart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI,mpchart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图等自定义图表库。//设置自定义图标资源 PixelMap//设置自定义图标资源 resId//设置自定义图标宽度//设置自定义图标高度i++) {//设置显示自定义图标//设置自定义图标偏移量定制数据结构。

2025-06-12 17:30:24 625

原创 【OpenHarmony】 鸿蒙 UI开发之滚动组件overscroll-decor

类似iOS风格的边缘滚动效果视图。支持下列视图:RecyclerView, ListView, GridView, ViewPager, ScrollView, HorizontalScrollView, Any View - Text, Image…this.model。

2025-06-12 16:36:41 468

原创 【OpenHarmony】 鸿蒙 UI开发之 TextLayoutBuilder

本库基于TextLayoutBuilder原库进行适配,使其可以运行在 OpenHarmony。TextLayoutBuilder是一个可定制任意样式的文本构建工具,包括字体间距、大小、颜色、布局方式、富文本高亮显示等,在文字显示的业务场景中都会使用到,特别是通知类特殊显示的字体样式时,TextLayoutBuilder极大的方便了开发者的开发效率。

2025-06-12 15:40:20 300

原创 鸿蒙 UI开发之 PullToRefresh组件

PullToRefresh是一款OpenHarmony环境下可用的下拉刷新、上拉加载组件。支持设置内置动画的各种属性,支持设置自定义动画,支持lazyForEarch的数据作为数据源。

2025-06-12 14:39:42 465

原创 南京某动力公司的鸿蒙开发岗面试过程分享~

略过功能作用在鸿蒙开发中,Builder 是构建应用的关键环节。它负责将开发者编写的 ArkTS 代码、资源文件(如图标、布局文件等)以及配置信息整合在一起。对 ArkTS 代码进行编译和优化,将其转换为可在鸿蒙设备上高效运行的代码形式。同时,它会处理资源文件,确保资源的正确引用和打包,比如将图片资源压缩并嵌入到应用包中合适的位置。进行应用的签名和打包操作,生成最终的.hap 安装文件,保证应用的安全性和完整性,使其可以在鸿蒙设备上顺利安装和运行。

2025-06-12 13:49:49 681

原创 某迈有限公司鸿蒙开发岗位面试题分析~

略。

2025-06-11 21:43:38 887

原创 某些公司的鸿蒙开发岗位面试题汇总分享~

功能作用:在鸿蒙开发中,Builder 是构建应用的关键环节。它负责将开发者编写的 ArkTS 代码、资源文件(如图标、布局文件等)以及配置信息整合在一起。对 ArkTS 代码进行编译和优化,将其转换为可在鸿蒙设备上高效运行的代码形式。同时,它会处理资源文件,确保资源的正确引用和打包,比如将图片资源压缩并嵌入到应用包中合适的位置。进行应用的签名和打包操作,生成最终的.hap 安装文件,保证应用的安全性和完整性,使其可以在鸿蒙设备上顺利安装和运行。

2025-06-11 20:25:28 633

原创 鸿蒙应用开发面试题简易梳理~

鸿蒙开发中,UIAbility的生命周期是指UIAbility组件从创建到销毁的整个过程。这个过程包括一系列的状态转换和事件回调,开发者可以根据这些状态和回调来管理UIAbility的生命周期,从而实现更好的应用性能和用户体验。Create(创建):当UIAbility被创建时,系统会调用onCreate函数。在这个阶段,开发者可以进行一些初始化操作,比如设置UI界面、加载数据等。需要注意的是,在这个阶段,UIAbility还没有被展示给用户,因此不能进行与用户交互的操作。

2025-06-11 17:28:35 933

原创 鸿蒙面试真题:你之前是怎么做页面渲染优化的?

Componentbuild() {})@Entry@Componentbuild() {CustomBtn({text:"登录"})CustomBtn({text:"注册"})后期如果要考虑实现样式复用,可以优先使用 AttributeModifier 和 AttributeUpdater鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

2025-06-11 16:39:04 509

原创 鸿蒙面试真题:如何在鸿蒙操作系统中实现设备间的通信?

IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,包括Proxy和Stub运行在不同设备的情况。IPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,而IPC CAPI是提供的C接口。IPC CAPI接口不直接提供跨进程通信能力,两个进程之间的IPC通道建立,依赖于Ability Kit。进程间IPC通道建立,详情参考Native子进程开发指导(C/C++),本文重点阐述IPC CAPI部分使用说明。

2025-06-11 15:31:24 449

原创 鸿蒙面试真题:谈谈你对鸿蒙的并发模型的理解?Actor模型的理解?

Actor并发模型:每一个线程都是一个独立Actor,每个Actor有自己独立的内存,Actor之间通过消息传递机制触发对方Actor的行为,不同Actor之间不能直接访问对方的内存空间。内存共享并发模型:指多线程同时执行复数任务,这些线程依赖同一内存并且都有权限访问,线程访问内存前需要抢占并锁定内存的使用权,没有抢占到内存的线程需要等待其他线程释放使用权再执行。并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。

2025-06-11 14:32:50 393

原创 鸿蒙面试真题:谈谈你对鸿蒙Context的理解和分类?

本文详细介绍了HarmonyOS Next中各种Context直接关系与提供的属性和方法。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……

2025-06-11 13:36:02 455

原创 鸿蒙面试真题:了解过ExtensionAbility吗?做过卡片功能吗?

以InputMethodExtensionAbility组件为例进行说明,如下图所示,调用方应用发起对InputMethodExtensionAbility组件的调用,此时将先调用输入法管理服务,由输入法管理服务拉起InputMethodExtensionAbility组件,返回给调用方,同时开始管理其生命周期。所有类型的ExtensionAbility组件均不能被应用直接启动,而是由相应的系统管理服务拉起,以确保其生命周期受系统管控,使用时拉起,使用完销毁。

2025-06-10 21:35:28 472

原创 鸿蒙面试真题:谈谈对鸿蒙分层架构的理解?

对于需要通过Ability承载的功能,可以设计为Feature类型的HAP,而对于不需要通过Ability承载的功能,根据是否需要实现按需加载,可以选择设计为HAR模块或者HSP模块,编译后对应HAR包或者HSP包。当Entry类型的HAP和Feature类型的HAP被分发并部署到相应的设备时,他们所依赖的HSP也会一同被分发并部署到相应的设备上。作为应用的入口,产品定制层是用户直接互动的界面。公共能力层为上层的基础特性层和产品定制层提供稳定可靠的功能支持,确保整个应用的稳定性和可维护性。

2025-06-10 20:33:32 552

原创 鸿蒙面试真题:如何在鸿蒙中封装一套网络请求框架?如何处理Http请求?

通过使用Promise和异步回调,我们可以更加优雅地处理HarmonyOS中的HTTP请求。这种方式不仅提高了代码的可读性,还使得错误处理更加直观。在实际开发中,合理运用Promise可以大大提升开发效率和代码质量。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……

2025-06-10 15:36:09 1042

原创 鸿蒙面试真题:组件化开发的原理和实现的方案?

其中features目录下是组件/模块,包含不同的功能分区,entity是项目的主入口也就是hap包,commons目录下有3个har组件,分别是utils:所有的帮助类、uicomponents:项目中需要用到的自定义UI组件等、RouterModule:项目的路由(承载了整个项目跨组件通信的能力)在harMine的对外导出类Index.ets中定义加载时的初始化函数harInit,该函数对harMine中需要注册路由的页面组件进行加载管理,被调用时将根据不同的路径动态加载不同的页面。

2025-06-10 14:39:06 758

原创 鸿蒙面试真题:在Router的传递数据的过程中,如何封装自定义的对象传递到另外一个页面?

以上两种方法都可以实现HarmonyOS NEXT中页面间的数据传递。第一种方法通过Navigation组件实现,适用于组件导航的场景;第二种方法通过router对象实现,适用于基于URL的页面跳转场景。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……

2025-06-10 14:35:38 833

原创 鸿蒙南向开发:【FAQ问题定位】OpenHarmony执行TDD时 file not found 错误的处理

经过简单分析发现外部依赖的 cJSON:cjson 最像,下面就是在目标 BUILD.gn 中添加试试看…

2025-06-09 20:23:52 490

原创 鸿蒙南向开发:【TEST测试】OpenHarmony unittest单元测试的编写

有专业分支覆盖率测试工具检查用例执行后分支的覆盖情况,一般情况下每个函数不管是公有或者私有都调用到,则可以满足 60% 的覆盖率要求。但是本地没有这样的工具时,就要在待测源文件中每个函数的分支添加上特别的日志,执行用例后查看是否到达。每次测试时就直接双击它就可以了,运行时的日志在 D:\Test\log\ 目录。添加完日志,势必要编译源码所在子系统,编译完成后,将必要的文件推送到板子上,重启板子,然后进行如上测试。将编译生成的物拷贝到本地测试目录,然后运行脚本,在测试目录 log 下查看运行日志。

2025-06-09 17:30:56 673

原创 鸿蒙南向开发:【SUBJECT技术】(MSDP)Rosen图层绘制的应用

使用 Rosen::RSNode::Animate 对节点进行动画处理,参数 RSAnimationTimingCurve::EASE_IN_OUT 是一种动画时间曲线,用于描述动画的起始和结束阶段的速度变化。第一个图片为默认的角度,第二个图片根据设定的旋转角度 POSITIVE_ANGLE 进行旋转,第三个图片根据 NEGATIVE_ANGLE 角度进行旋转,达到层叠错位的效果。遍历节点,设置第一个节点的动画持续效果为 SHORT_DURATION,其余的动画持续效果为 LONG_DURATION。

2025-06-09 16:32:33 720

原创 鸿蒙南向开发:【FAQ问题定位】模块如何单独编译构建

核心方法就是从每日构建下载烧录镜像,本地编译单一模块,烧录镜像,推送单一模块进行验证。关于 InteractionManagerTest 等测试 bin 文件和 HAP 的推送、执行会在我的其他文档中进行说明,以下以 so 的推送为例进行说明。③ BUILD.gn 中定义的目标产物,生成的 so 库名,不包括开始的’lib’和末尾的’.z.so’⑤ 组件 so 生成目录,sensors 为子系统名称,miscdevice 为组件名称如上所述。③ BUILD.gn 中定义的目标产物,生成的 bin。

2025-06-09 15:30:15 671

原创 鸿蒙南向开发:【FAQ问题定位】查找代码片段提交者的PR

仓库中有一段代码我们不知道其意图,或者一个问题追踪到此处,需要定位这一段代码是何人、何时、何因、哪个 PR 添加的?这个方法通常用来定位“BUG 制造者”。了解代码幕后的动机,追溯代码变迁,学习软件迭代,寻找第一当事人是最直接有效的方式!鼠标点击待查看的代码行,会显示创建者和必要的信息。也可以在 vscode 查看具体修改内容,点击。记住创建者,如 Science, 索引的信息如下。第二步,vscode 安装必要 git 插件。第一步,将代码拷贝到本地。填写创建者,鼠标移动到。

2025-06-09 14:39:42 276

原创 鸿蒙南向开发:【SUBJECT技术】OpenHarmony IPC 之ServiceAbility应用(系统架构)

IPC 是用于进程间通信的技术,指的是进程间的数据交互过程。它包括各种形式的消息传递,共享资源,以及同步对象,如互斥量等,以确保安全的并发访问共享资源。IPC 通常使用 Binder 驱动,主要用于设备内的跨进程通信,如 OpenHarmony 系统中的进程间通信。IPC 与 RPC(Remote Procedure Call)机制用于实现跨进程通信,不同的是前者使用 Binder 驱动,用于设备内的跨进程通信,而后者使用软总线驱动,用于跨设备跨进程通信。

2025-06-09 13:38:41 520

原创 鸿蒙南向开发:【SUBJECT技术】epoll设计思路及在MSDP子系统中的应用举例

epoll 接口是为解决 Linux 内核处理大量文件描述符而提出的方案。该接口属于 Linux 下多路 I/O 复用接口中 select/poll 的增强。其经常应用于 Linux 下高并发服务型程序,特别是在大量并发连接中只有少部分连接处于活跃下的情况 (通常是这种情况),在该情况下能显著的提高程序的 CPU 利用率。a. epoll 在 Linux 内核中构建了一个文件系统,该文件系统采用红黑树来构建,红黑树在增加和删除上面的效率极高,因此是 epoll 高效的原因之一。

2025-06-08 22:07:48 757

原创 鸿蒙南向开发:【SUBJECT技术】定时器实现原理及应用举例

就是将 class TimerQueue 集成到 EventLoop 中,也就是作为 class EventLoop 的成员变量,这个很简单,不再赘述。

2025-06-08 21:38:02 807

原创 鸿蒙南向开发:【TEST测试】bad_variant_access 错误的处理

运行代码过程中出现 crash,用 addr2ling 反编译指令,对 lib.unstripped 未压缩的 so 进行反编译,出错地址和 so 来源于 crash 日志文件。DSoftbusStartCooperate notice = std::get(event.event) 报错。请使用 prebuilts 目录下的 llvm-addr2line 指令,否则解析不出来!增加 DSoftbusStartCooperate 赋值,问题解决。

2025-06-08 20:21:32 413

原创 鸿蒙南向开发:【TEST测试】CFI CHECK crash的处理

本着这个问题既不是第一次出现,也不是最后一次出现的想法,在当前子系统目录搜索,在很多 BUILD.gn 中终于找到了 cfi 的相关设置。显然 有一个包含 IntentionServiceTest 字段的 Crash 日志文件,打开查看,发现有 __cfi_check 字段。例如:运行 IntentionServiceTest 用例时,出现 RUN 字段后就异常退出,如下图。经过搜索 cfi 字段发现,待测试模块存在 cfi 检查,而当前模块没有,相互调用时报告异常。

2025-06-08 19:00:37 443

原创 【PREPARE工作准备】OpenHarmony 代码上库

到达这一步好比临门一脚,意义很大!您的代码被合入 OpenHarmony 平台,这是最后的一道关口,保证合入的是正确的,并且不会对系统造成意外。

2025-06-06 21:31:56 645

原创 【PREPARE工作准备】2.RK3568 开发板镜像烧录指南

如果手里不是 RK3568 这块开发板就不用往下看了。烧录开发板是每个开发者的必修课,每次对系统的修改务必进行烧录测试,确保修改正确和不会引入新问题。本文基于 Windows10,以 RK3568 开发板为例,指导如何烧录 OpenHarmony 镜像,镜像也叫固件。Hihoop(润和)是开发板集成商,Dayu200 是开发板型号,RK3568(瑞芯微)是芯片型号, 很多地方名称不同却指的是同一块开发板。

2025-06-06 20:18:49 1056

原创 【PRPARE工作准备】1.烧录Hi3516DV300开发板

如果手里不是 Hi3516DV300 这块开发板就不用往下看了。烧录开发板是每个开发者的必修课,每次对系统的修改务必进行烧录测试,确保修改正确和不会引入新问题。本文基于 Windows10,以 Hi3516DV300 开发板为例,指导如何烧录 OpenHarmony 镜像,镜像也叫固件。这块开发板是 OpenHarmony 最早完全支持的开发板,属于小型系统和标准系统的开发板,整个烧录、IPOP 测试的过程较为繁琐和原始。

2025-06-06 17:29:47 998

原创 【SUBJECT技术】探索 OpenHarmony libudev 设备热插拔机制

现有多模输入子系统框架中,设备原始输入事件要经由 libinput 处理,封装成 libinput 的事件类型。单个配置文件解析得到的规则项是按序连续排列的,其中第一项(如下图的蓝色项)记录了一些从相应规则配置文件解析得到的规则项的信息,包括规则项的个数等。udev 支持广泛的设备类型,为此定义了一整套复杂的规则来处理设备热插拔事件。未提供事件通知的接口和设备信息获取的接口,如果多模依赖 ueventd 实现设备热插拔,则需要增加实现这些接口。不同的输入设备支持不同的输入事件和属性的组合。

2025-06-06 16:45:25 693

原创 【SUBJEC技术】(MSDP) 探索OpenHarmony 拖拽动画的技术实现

涉及动画的地方为开始拖拽,拖拽过程中,拖拽成功,拖拽失败。

2025-06-06 15:35:14 899

原创 【移植】OpenHarmony 轻量级系统之移植验证

OpenHarmony 芯片移植完成后,需要开展 OpenHarmony 兼容性测试以及芯片 SDK 功能性测试。OpenHarmony 兼容性测试是 XTS(OpenHarmony 生态认证测试套件)之一,详见 OpenHarmony 兼容性测试。定位问题时,可在“test/xts/acts/build_lite/BUILD.gn”中,将不需要的测试项注释,以便调试。芯片移植完成后需要客户验证 SDK 自身功能,例如 Wi-Fi,蓝牙,OTA 等基础能力是否正常。

2025-06-06 14:32:30 341

原创 【移植】OpenHarmony 轻量级系统之启动恢复子系统移植

在 startup 子系统中有部分部件(如:syspara_lite 等),会依赖“$ohos_product_adapter_dir/utils”中的模块。其中“ohos_product_adapter_dir”就是在 config.json 文件中配置的“product_adapter_dir”,我们通常配置其为“vendor/MyVendorCompany/MyProduct/hals”。启动恢复子系统负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程的功能。

2025-06-06 13:47:40 263

原创 【移植】OpenHarmony轻量级系统之配置其他子系统

此库中提供了“mbedtls_platform_entropy_poll”、“mbedtls_hardclock_poll”、“mbedtls_havege_poll”、“mbedtls_hardware_poll”等几种产生随机数的方式。厂商需要根据芯片适配“mbedtls_hardware_poll”方式。根据代码我们可以看出需要配置“MBEDTLS_NO_PLATFORM_ENTROPY”、“MBEDTLS_ENTROPY_HARDWARE_ALT”两个宏,才能编译硬件随机数的相关代码。

2025-06-05 21:18:08 792

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除