- 博客(315)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 技能补全之proto文件语法概要
Protocol Buffers(简称 Protobuf)是一种由 Google 开发的语言中立、平台中立、可扩展的序列化结构数据格式。.proto文件是定义消息结构和 RPC 服务的接口描述文件。基于程序员的视角,proto 文件就跟 sh 文件、py 文件和 Java 文件一样,就是一种代码脚本,能借助特定的可执行程序完成特定的操作,而对于 proto 文件来说,这个特定程序便是protoc基于proto文件生成符合目标编程语言语法规范的、实现了pb对象定义的脚本文件。
2025-11-09 09:45:15
675
原创 技能补全之Python AES GCM 加密存储
本文介绍了使用Python实现AES GCM加密存储的技术方案。主要内容包括: 加密算法选型:通过对比分析选定AES GCM作为加密算法,因其兼具安全性和性能优势。 压缩算法选择:选用GZIP压缩算法,因其具备优秀的兼容性和压缩效率。 序列化方式:采用Protocol Buffers(PB)进行二进制序列化,保证数据安全和处理效率。 实现步骤:详细说明从PB对象序列化、GZIP压缩到AES GCM加密的完整流程,以及反向解密过程。 实践指导:提供了.proto文件定义、protoc编译命令及Python代码
2025-11-08 11:30:42
1047
原创 鸿蒙原生系列之手势事件自定义处理
本文分享了在鸿蒙NDK UI中实现手势事件自定义处理的方法。首先介绍了native_gesture.h中定义的手势类型和识别模式,包括点击、长按、滑动等6种单一手势以及顺序、并行、互斥3种组合手势模式。然后详细讲解了代码实践过程:通过新建ArkUIColumnNode.h定义Column组件作为手势操作载体,在TestGestureExample.h中创建Column节点并设置基本属性后,实现手势事件处理逻辑。最后指出需要先判断设备是否支持手势操作,为后续具体手势处理代码提供基础。全文结合理论讲解与代码实践
2025-11-01 16:27:35
1052
原创 鸿蒙NEXT系列之NDK UI监听组件事件
本文介绍了鸿蒙NDK中UI组件事件监听的方法。由于ContentSlot组件无法直接使用ArkTS的事件处理方法,需要在Native侧通过C++代码实现事件监听。主要使用了addNodeEventReceiver()和registerNodeEvent()等API来注册事件监听器和指定监听事件类型。文章详细阐述了事件监听的完整流程,包括监听器的添加、事件的注册与处理、监听器的移除等步骤。同时提供了代码实践部分,展示了如何在Native侧保存ArkTS回调引用,实现UI更新功能。通过文中方法,开发者可以在C+
2025-10-25 15:17:00
678
原创 编程素养提升之EffectivePython(Builder篇)
本文探讨了如何将Java中的Builder设计模式迁移到Python中。Java通过内部类实现Builder模式,而Python则可以利用模块特性替代内部类。作者以NutritionFacts类为例,展示了Java和Python的实现对比:Java使用嵌套Builder类构建对象,Python则通过独立的Builder类实现相同功能。两种语言都支持链式调用设置可选参数,但Python版需要显式返回self来实现链式调用。该模式适用于具有必选和可选属性的复杂对象构造,能有效简化对象创建过程,提高代码可读性和可
2025-10-24 21:28:42
529
原创 编程素养提升之编程语言经验如何融会贯通(Python为例)
本文探讨了如何将不同编程语言的经验融会贯通,实现技术能力的迁移与提升。文章指出,虽然编程语言表现形式各异,但底层技术本质相同,都基于冯诺依曼体系结构。作者从编译器角度分析,指出大多数现代编程语言的基本概念都源自C语言。在学习新语言时,建议从输入/输出等基础功能入手,这些核心概念在不同语言中具有高度相似性。进阶阶段应选择行业通用框架学习,掌握方法封装等关键技能。最后作者坦言,要达到编程高级水平需要开发岗位的实战磨练。文章为技术人员跨语言学习提供了实用思路,强调基础概念相通性这一核心观点。
2025-10-19 11:30:48
1044
原创 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置)
本文深入解析了鸿蒙NDK UI API中节点增删和属性设置的关键方法。通过对比ArkTS与C++实现差异,重点剖析了OH_ArkUI_NodeContent_AddNode和OH_ArkUI_NodeContent_RemoveNode两个核心API,详细说明节点挂载与移除的C++实现方式。同时分析了ArkUI_NodeType枚举类型,列举了可创建的各类UI组件节点。文章还指出节点属性设置采用统一模式实现,为开发者掌握鸿蒙NDK UI开发提供了实用指导。
2025-10-12 09:51:41
1095
原创 鸿蒙NEXT系列之探索鸿蒙PC
本文分享了作者对搭载纯血鸿蒙系统的笔记本电脑的探索体验。从普通用户视角看,鸿蒙电脑应用安装仅支持应用商店,操作逻辑与手机类似,支持多端协同和常用快捷键,但PC端功能尚不完善,建议当大屏手机使用。开发者视角下,鸿蒙电脑表现较差,缺乏主流IDE、编程语言环境、数据库支持及sudo权限,终端功能有限,无法充当服务器。总结认为该设备适合生活场景,办公场景需借助虚拟机或仅能完成简单文字处理。
2025-10-03 20:50:59
890
原创 编程素养提升之探析用户数据去重
本文探讨了在分布式应用中如何实现用户数据同步去重。首先介绍了MySQL、Redis和MongoDB等数据库的自身去重能力:MySQL通过主键和复合主键实现去重;Redis利用键的唯一性自动去重;MongoDB则通过唯一索引保证数据唯一性。随后提出业务层面的优化措施:采用版本跟踪机制确保数据一致性,以及通过防抖处理控制数据同步频率。文章强调,完善的去重机制需要数据库特性和业务逻辑的协同配合,在客户端和云端都要建立相应的去重策略,以确保数据同步的准确性和系统性能。
2025-09-21 11:04:41
922
原创 技能补全之正则表达式
对于程序员职业,无论是全职的开发,还是自动化测试,都少不了进行文本校验操作。而诸多文本校验操作,有笨拙的,也有高效的。高效的文本校验操作,少不了使用正则表达式,因为它本身就是根据字符串内容的组成规律而概括得来的模式。因为正则表达式的魅力,Python 内置相应能力进行支持,比如re模块,再比如unittest框架的 assertRegex 方法和 assertNotRegex 方法。下面,就结合 Python 的这两个模块,带领屏幕前的你,进行正则表达式的系统性学习。
2025-09-14 15:12:31
936
原创 技能补全之Python操作MongoDB
摘要: 本文介绍了Python操作MongoDB的方法,涵盖MongoDB的数据存储形式(文档型数据库,类似JSON格式)及其操作符分类(比较、逻辑、数组等)。重点演示了通过pymongo库连接本地MongoDB的步骤:创建客户端MongoClient、获取数据库和集合对象,对目标文档集合进行增删改查,以及如何在筛选条件中使用操作符。
2025-08-31 15:47:46
653
原创 HarmonyOS NEXT系列之元服务框架ASCF
本文介绍了鸿蒙开发者平台新推出的ASCF框架插件,用于元服务开发。ASCF项目目录包含ascf_src和rawfile两大核心部分,其中ascf_src由pages和component组成,采用HXML、CSS、JS和JSON四种文件实现页面逻辑。与传统的ArkTS开发相比,ASCF更接近Web开发模式,虽便于前端开发者上手,但将功能分散到多个文件中。文章详细解析了项目结构、页面实现方式及部署注意事项,指出ASCF框架为开发者提供了另一种轻量化的元服务开发选择。
2025-08-24 15:34:10
1178
原创 HarmonyOS NEXT系列之编译三方C/C++库
本文介绍了如何将C/C++三方库编译为HarmonyOS NEXT平台可用的动态库文件(.so)。主要内容包括:1)新建CMake管理的C/C++项目,配置目录结构和CMakeLists.txt文件;2)编写示例代码并编译生成arm64-v8a架构的动态库;3)在HarmonyOS NEXT项目中通过NDK模块集成预编译库,包括头文件引入和库文件配置。文章详细说明了从项目创建到最终集成的完整流程,为开发者提供了将C/C++库移植到HarmonyOS NEXT平台的实用指南。
2025-08-10 16:33:01
1271
2
原创 HarmonyOS NEXT系列之定制化构建制品
上一周,为了让自己开发的工具 EasyRouter,在 ohpm 中心仓中获得满分,所以针对评分规则添加了带 example 目录的 v1.1.0 版本,然而,等到审核成功并上架后,却发现仍旧没有拿到满分,而后我在 ohpm 中心仓上找一个已经获得满分的、其他人制作的工具,查看对应的源码工程,发现 example 目录必须在 src 目录同级,才能被扫描和识别。
2025-08-02 10:47:01
922
原创 HarmonyOS NEXT 系列之规范开发三方共享包
构建成完整的应用上架到相关软件商店中,构建成三方软件包发布到中心仓库,鸿蒙生态这边也是如此,只不过,对于个人开发者来说,上架到华为的鸿蒙应用商店并不容易,因为必须提供软著证书等有效证件,而这个软著的申请本来就很费事,相比之下,发布共享包到 ohpm 中心仓库,就显得简单可行了。如图所示,我已经成功上架两个软件包到 ohpm 中心仓库上了,因而积累了一定的经验,下面就让我向大家阐述如何规范地开发鸿蒙共享包。
2025-07-27 10:11:55
869
原创 从零开始开发纯血鸿蒙应用之探析仓颉语言与ArkTS的差异
摘要:本文对比了鸿蒙原生应用开发中的两种推荐语言——ArkTS与仓颉语言的主要差异。首先,仓颉语言需通过插件支持,而ArkTS在DevEco Studio中默认可用。其次,仓颉语言使用内置组件时必须显式导包,而ArkTS无需导入;仓颉中可通过internal修饰符优化导包冗余。此外,仓颉采用类似Jetpack Compose的包声明结构,且页面路由无需在配置文件中注册,推测其package语句隐含路由定义功能。这些差异显示ArkTS更简洁,而仓颉语言在模块化管理上更灵活。开发者可根据需求选择适合的语言。
2025-07-05 12:51:22
1256
原创 从零开始开发纯血鸿蒙应用之发布共享包
摘要:本文介绍了如何发布鸿蒙har包到三方中心仓的完整流程。首先讲解了ohpm工具的作用及环境搭建,详细说明了注册中心仓账号、配置SSH密钥等准备工作。接着以日志模块为例,阐述了构建har包的关键步骤,包括添加README文档、完善oh-package.json5配置文件、处理依赖关系等。最后介绍了使用ohpm publish命令发布制品的操作过程,以及制品审核状态检查方法。全文为开发者提供了从配置环境到成功发布的完整指南,帮助开发者快速掌握鸿蒙模块的发布技能。
2025-06-29 09:07:15
1387
原创 从零开始开发纯血鸿蒙应用之用户首选项
本文介绍了鸿蒙API 18中用户首选项的新特性——支持GSKV存储类型,相比传统的XML存储具有实时落盘优势。作者详细对比了新旧版本差异,并基于StorageType枚举类和isStorageTypeSupported接口,分享了如何封装一个兼容两种存储类型的PreferenceUtil工具类。该工具类通过二次封装解决了数据类型解耦问题,提供了初始化、增删改查等完整接口,并自动处理XML类型所需的flush操作,为开发者提供了更便捷的用户首选项管理方案。
2025-06-15 09:29:34
855
原创 从零开始开发纯血鸿蒙应用之网络检测
本文详细介绍了如何在纯血鸿蒙应用中实现网络检测功能。使用@ohos.net.connection模块,可以获取设备网络状态:如获取默认网络的NetHandle实例,及其网络能力信息(包括连接状态、类型和速度等)。文章重点讲解了NetCap枚举值的7种网络能力判断标准,以及蜂窝/ WiFi等网络类型的识别方法。该功能特别适用于需要网络状态提示的场景,如无网时显示错误页面,以及在IoT场景判断设备直连状态。
2025-06-07 15:30:39
1440
原创 前沿探索之Kuikly框架
腾讯开源的Kuikly是一款基于Kotlin MultiPlatform的跨端开发框架,其UI描述采用函数式风格,通过attr和event闭包分离样式与事件逻辑。框架内置常用组件,支持观察者模式实现UI动态更新,并提供Module机制统一封装原生API能力。路由功能通过RouterModule实现参数传递,页面和组件均有明确的生命周期管理。整体设计借鉴了Flutter思想,同时保持Kotlin语言特性,为跨平台开发提供了新的解决方案。
2025-05-25 11:37:21
2419
原创 从零开始开发纯血鸿蒙应用之RSS阅读器
本文介绍了如何从零开始开发一个简易的纯血鸿蒙应用——RSS阅读器。文章首先回顾了如何在鸿蒙应用中解析XML格式的数据,并以优快云博客的RSS链接为例进行了实践演示。接着,详细阐述了RSS阅读器的两个关键步骤:解析RSS源下发的XML文档以提取文章标题和链接,以及使用WebView在APP界面中渲染文章链接指向的网页。文章还介绍了如何改造起始页、新增文章列表页,并对文章列表页进行装饰美化,包括日期格式转换、摘要字数控制和背景图片的使用。最后,文章展示了如何通过点击文章列表项来展示文章详情。
2025-05-18 10:49:07
926
4
原创 从零开始开发纯血鸿蒙应用之XML解析
文章介绍了如何在鸿蒙应用开发中处理XML格式数据。虽然JSON是主流的数据传输格式,但XML在某些场景(如RSS订阅)中仍在使用。鸿蒙SDK提供了两个主要API来处理XML数据:@ohos.xml用于XML的解析与生成,@ohos.convertxml用于将XML转换为JavaScript对象。文章详细解析了这两个API的使用方法,并推荐使用ConvertXML.fastConvertToJSObject方法将XML数据转换为JavaScript对象,以便在ArkTS中更方便地处理数据。最后,文章通过解析C
2025-05-11 11:59:01
1104
原创 从零开始开发纯血鸿蒙应用之NAPI
本文以数据在C/C++ 侧和 ArkTS 侧的流转为抓手,详略得当地介绍了 NAPI 在鸿蒙原生开发中的使用。
2025-05-05 20:10:56
2024
4
原创 从零开始开发纯血鸿蒙应用之无框截图
截图,或者说截屏,已经是每部手机必备的功能了,通常使用关机键+音量减键触发,只是这种截屏会将整个屏幕、包括消息提示横幅弹窗、任务栏状态……总而言之,就是屏幕所显示的一切内容一并截进去,如果你只是像截取指定应用的指定页面的指定区域的内容,这种系统截屏功能就无法满足了。在鸿蒙 NEXT 系统中,允许应用对自身进行组件截图,也就是局部区域截图,这就有效地避免截图时,将本不该截取的屏幕内容叶一并截取,不得不在截完图之后重新进行一番图片编辑、或者不得不重新截图。下面就让我来说明一下,如何在纯血鸿蒙应用中集成。
2025-03-16 12:51:13
1328
1
原创 从零开始开发纯血鸿蒙应用之网页浏览
本篇围绕如何在纯血鸿蒙应用中,实现网址打开操作,先后介绍了带参数的自定义构建函数的使用,调用系统浏览器的实现,以及如何封装 WebViewPage。值得重点学习的,理当首推封装 webViewPage 的部分,基于该部分,可以扩展地探索开发浏览器的实现方案。
2025-02-22 16:31:48
1837
原创 鸿蒙NEXT API使用指导之文件压缩和邮件创建
针对鸿蒙NEXT API中的 startAbilityByType 和 zlib 模块进行介绍,帮助读者夯实自身的鸿蒙开发能力。
2025-02-09 11:42:22
1492
原创 Hypium UIViewer 让 MacOS 与鸿蒙NEXT手机实现多屏协同
本篇介绍当电脑不是华为品牌时,如何利用Hypium 的 UIViewer,与搭载了鸿蒙NEXT系统的手机,进行多屏协同。
2025-01-11 15:22:47
2841
原创 从零开始开发纯血鸿蒙应用之处理外部文件
本篇记录纯血鸿蒙应用,如何进行外部文件的处理;利用 picker.DocumentViewPicker 主动处理外部文件,在 OnNewWant 函数中完成应用热启动状态时的外部文件处理,以及如何用AppStorage应对应用冷启动时的外部文件的FileUri 的透传。
2025-01-11 10:38:44
1926
2
原创 从零开始开发纯血鸿蒙应用之实现内部文件处理页
本篇记录 TxtEdit 内部文件处理页的实现,并在文中分享了鸿蒙组件 TextPicker 的使用,以及 Text 组件如何提供文本复制能力,和如何解决输入法键盘顶起布局的问题。
2025-01-04 17:11:06
1155
原创 从零开始开发纯血鸿蒙应用之实现起始页
本篇主要记录 TxtEdit 的起始页的实现,以及实现过程中涉及到的UI编程思路,并介绍了相关 HarmonyOS NEXT API 的使用,如使用系统分享面板进行文件分享。
2025-01-04 10:52:59
1423
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅