
移动开发
文章平均质量分 86
普通网友
这个作者很懒,什么都没留下…
展开
-
【鸿蒙OH实战开发】OpenHarmony组件内状态变量使用:@State装饰器
State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。@State装饰的变量拥有以下特点:● @State装饰的变量与子组件中的@Prop、@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。● @State装饰的变量生命周期与其所属自定义组件的生命周期相同。原创 2025-02-11 13:49:24 · 696 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony定义可动画属性:@AnimatableExtend装饰器
● 不可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值不能生效animation属性的动画效果,这个属性称为不可动画属性。● 可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值可以生效animation属性的动画效果,这个属性称为可动画属性。@AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的属性。在动画执行过程时,通过逐帧回调函数修改不可动画属性值,让不可动画属性也能实现动画效果。原创 2025-02-10 22:22:29 · 881 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony自定义构建函数:@Builder装饰器
● 允许在自定义组件内定义一个或多个自定义构建函数,该函数被认为是该组件的私有、特殊类型的成员函数。● 自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。● 在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。● 全局的自定义构建函数可以被整个应用获取,不允许使用this和bind方法。● 如果不涉及组件状态变化,建议使用全局的自定义构建方法。原创 2025-02-10 13:53:23 · 425 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony自定义组件介绍
在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。自定义组件具有以下特点:● 可组合:允许开发者组合使用系统组件、及其属性和方法。● 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用。原创 2025-02-09 21:41:18 · 742 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony系统能力SystemCapability
SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失,也会随着DevEco Studio一起提供给开发者做联想。开发者可以在SysCap列表中查询OpenHarmony的能力集。原创 2025-02-09 19:02:52 · 877 阅读 · 0 评论 -
【鸿蒙OH实战开发】应用间HSP开发指南
应用间HSP用于不同应用间的代码、资源共享。应用间HSP的宿主应用是一种特殊状态的应用,只能由一个HSP组成,不会独立运行在设备上,而是被普通应用模块的依赖项引用。2. 随应用发布,即用户在应用市场下载应用时,如果应用依赖了一个或者多个应用间HSP,同时设备上没有安装这个其依赖的应用间HSP时,应用市场会为用户同时下载普通应用以及其依赖的应用间HSP。1. 应用间HSP的代码会运行在开发者应用的进程中,调用相关代码时,需要做好异常捕获与容错处理,防止由于应用间HSP功能异常导致的稳定性问题。原创 2025-02-08 21:34:50 · 997 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony应用 ArkUI 状态管理开发案例
StorageProp(key)是和AppStorage中key对应的属性建立单向数据同步,我们允许本地改变的发生,但是对于@StorageProp,本地的修改永远不会同步回AppStorage中,相反,如果AppStorage给定key的属性发生改变,改变会被同步给@StorageProp,并覆盖掉本地的修改。当参数改变时,UI作为返回结果,也将进行对应的改变。AppStorage是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。原创 2025-02-08 14:58:19 · 807 阅读 · 0 评论 -
【鸿蒙OH实战开发】图形驱动在OpenHarmony上的使用和落地
由于从驱动角度,OpenHarmony富设备的内核是基于Linux的,故首先介绍下Linux开源驱动的整体架构。整个驱动的架构可以分为2D和3D两个部分,2D部分的比较老的框架是基于X11,而比较新的框架是基于Wayland。3D的部分驱动通过mesa,将OpenGLES或者Vulkan的API以及shader转化为硬件的ISA。而2D的DDX驱动通过glamor也可以走到mesa层,这样避免了2D和3D分岔的驱动路线(过去曾经是分岔的,2D走DDX)。原创 2025-02-07 21:36:42 · 1059 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony应用实现二维码扫码识别
二维码的应用场景非常广泛,在购物应用中,消费者可以直接扫描商品二维码,浏览并购买产品,如图是购物应用的扫描二维码的页面。本文就以 橘子购物示例应用 为例,来讲解OpenHarmony应用二维码开发相关的技术点。我们先看下二维码相关的几个概念。● 二维码生成OpenHarmony应用框架提供了 QRCode组件 ,用于显示单个二维码的组件。该组件只能用于显示二维码,无法显示条码与解析码内容。● 二维码解析。原创 2025-02-07 13:39:58 · 1199 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony面向万物智联的应用框架的探索
不过,Flutter 的整体设计哲学偏向底层的灵活性 – 主要通过底层的细粒度的能力供开发者自由组合,另外,Google 对 Dart 语言的简洁度的改进较少,整体上开发的简洁度以及对用户的友好度不足。此外,跨 OS 平台,动态内容部署能力也是重要的需求。包括 W3C 相关的标准组织(ArkUI 类 Web 范式的进一步标准化,WebAssembly 的融合探索等),ECMAScript 标准组织(ArkTS 的增强语言特性的进一步标准化等),软件绿色联盟(应用质量标准,原子化服务标准的完善/互通等)。原创 2025-02-06 21:30:30 · 445 阅读 · 0 评论 -
【鸿蒙OH实战开发】OpenHarmony标准系统开机时长优化
万物互联时代,产品性能至关重要,而系统启动时间是系统性能的重要组成部分,因为用户必须等待系统启动完成后才能使用设备。对于经常需要进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等待几十秒后才能输入导航目的地),在金融交易设备、电子商务服务器、实时通信设备同样也有较高的应用场景,那我们该如何在OpenAtom OpenHarmony(简称OpenHarmony ) 标准系统现有的能力下,完成秒级开机?原创 2025-02-06 14:02:51 · 1003 阅读 · 0 评论 -
【鸿蒙OH实战开发】ArkUI框架开发-ImageKnife渲染层重构
综上可知,此次重构渲染层,一共新增了6个基础能力,适配了IDE最新版特性自定义组件可链式调用通用属性和方法,并且采用适合的设计模式保留了自定义组件绘制部分的拓展能力。展示了部分常用场景下使用代码的方式,帮助开发者更快上手开发。最后在OpenHarmony不断推陈出新之际,三方库ImageKnife也应该激流勇进,不断地提升组件的实用性和适用性,为开发者创造一个良好的开发体验。原创 2025-01-23 16:20:45 · 814 阅读 · 0 评论 -
【鸿蒙OH实战开发】稀疏镜像在OpenHarmony上的应用
稀疏镜像数据格式:首先是sparse_header占用28byte,然后是12byte的chunk_header,同样这chunk_header的类型决定了后面跟着的数据,如果读到数据是0xCAC1意味着后面是本身的raw_data,如果是0xCAC3,则后面num为0,接着再0xCAC2意味着后面填充4byte的内容。本文介绍了OpenHarmony系统中实现稀疏镜像升级的方法,理解稀疏镜像原理及稀疏镜像还原方法可以快速在自己的系统中应用稀疏镜像升级,提高系统升级速度。增加稀疏镜像类声明及相关变量定义。原创 2025-01-23 13:58:29 · 755 阅读 · 0 评论 -
【鸿蒙OH实战开发】如何实现OpenHarmony的OTA升级
随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。OTA(Over the Air)提供对设备远程升级的能力。升级子系统对用户屏蔽了底层芯片的差异,对外提供了统一的升级接口。基于接口进行二次开发后,可以让厂商的设备(如IP摄像头等)轻松支持远程升级能力。OpenHarmony OTA升级主要是搭建搜包服务器,制作升级包,了解OTA下载包管理,包解析,包管理的代码逻辑。同时,对于常见问题知道如何快速定位!原创 2025-01-22 21:54:20 · 1002 阅读 · 0 评论 -
【鸿蒙OH实战开发】玩转OpenHarmony PID:教你打造两轮平衡车
此次为大家带来的是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统与PID控制算法相结合并落地的平衡车项目。PID控制算法是一种经典的,并被广泛应用在控制领域的算法。类似于这种:需要将某一个物理量保持稳定的场合,比如维持平衡,稳定温度、转速等,PID都会适用。在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。通过本样例的学习,开发者能够对OpenHarmony系统设备端开发有进一步的认识,还能够掌握PID控制算法的使用。原创 2025-01-22 13:45:45 · 897 阅读 · 0 评论 -
【鸿蒙OH实战开发】LiteOS-A内核中的procfs文件系统分析
procfs是类UNIX操作系统中进程文件系统(process file system)的缩写,主要用于通过内核访问进程信息和系统信息,以及可以修改内核参数改变系统行为。需要注意的是,procfs文件系统是一个虚拟文件系统,不存在硬盘当中,而是系统启动时动态生成的文件系统,储存在内存中。procfs文件系统通常挂载在/proc目录下。LiteOS-A是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统中使用的轻量系统内核,实现了procfs文件系统。原创 2025-01-21 21:43:18 · 1060 阅读 · 0 评论 -
【鸿蒙OH实战开发】在DAYU200上实现OpenHarmony视频播放器
本文介绍了如何使用ArkUI框架提供的video组件,实现一个具有简易播放器。通过VideoController控制器来控制倍速、全屏、进度调节等功能。由于使用本地视频文件会影响App的包大小,所以通常我们的视频文件来源于网络地址,记得需要在config或者module.json对应的"abilities"中添加网络使用权限ohos.permission.INTERNET。本文介绍了如何使用ArkUI框架提供的video组件,实现一个具有视频播放、倍速控制、进度调节的播放器。原创 2025-01-20 13:49:33 · 1119 阅读 · 0 评论 -
【鸿蒙OH实战开发】应用HAP包签名
DevEco Studio开发工具为开发人员提供了非常友好的HAP自动签名功能及非常便捷的Debug包。由于IDE的安全密码要求,对于Release包的发布我们暂时需要手动签名,尤其是系统级的应用。原创 2025-01-19 21:21:55 · 1086 阅读 · 0 评论 -
【鸿蒙OH实战开发】标准设备应用开发(二)——布局、动画与音乐
希望通过上面这些布局的演示,可以让大家学到一些部分控件在 OpenHarmony 中的运用,这里使用的 Arkui 布局和 HarmonyOS* 是一致的,目前 HarmonyOS* 手机还没有发布 Arkui 的版本,大家可以在 OpenHarmony 上抢先体验。我们同样希望在本小节中,可以让大家看到更多的 ArkUI 中的组件和布局在 OpenHarmony 中的使用,如何模块化的使用布局,让自己的代码更简洁易读,以及在应用中实现页面间的转场动画效果。该部分对应图片中的显示播放时间那一栏的控件。原创 2025-01-13 21:21:49 · 860 阅读 · 0 评论 -
鸿蒙开发实战案例:背景模糊效果的自定义TabBar实现案例
在一些主页的场景中,为了实现更好的视觉体验,会给TabBar加上透明的背景模糊效果。本示例主要讲解如何使用系统提供的背景设置的能力,实现背景模糊的效果。原创 2024-12-23 20:23:46 · 323 阅读 · 0 评论 -
鸿蒙开发实战案例:多媒体发布
本示例主要介绍使用@ohos.file.photoAccessHelper实现访问系统相册获取媒体资源的多媒体发布场景。 该场景多用于社交软件朋友圈、评论动态发布的场景。原创 2024-12-23 13:55:49 · 273 阅读 · 0 评论 -
鸿蒙开发实战案例:地图大头针选择位置并显示弹窗组件案例
本示例提供了大头针选择位置并显示弹窗组件的解决方案。该大头针组件分为三个状态,分别是静止态(地图移动过程中,大头针无动画)、加载态(地图停止移动,等待获取地址信息,大头针展示波纹动画表示数据加载中)、显示态(数据加载完成,弹窗显示地址相关信息)。开发者可根据需要直接引入该组件,根据具体使用场景,传入不同的数据,组件根据传入数据的情况显示不同的状态。由于使用场景中,大头针动画需要随时停止,因此选用@ohos.animator实现大头针的波纹和跳动动画。原创 2024-12-22 21:34:28 · 768 阅读 · 0 评论 -
鸿蒙开发实战案例:组件随软键盘弹出避让案例
本示例介绍使用TextInput组件和LazyForEach实现组件随软键盘弹出避让场景。该场景多用于需要用户手动输入文字类应用。原创 2024-12-22 19:03:45 · 673 阅读 · 0 评论 -
鸿蒙开发实战案例:自定义动效tab
本示例介绍使用List、Text等组件,以及animateTo等接口实现自定义Tab效果。原创 2024-12-21 22:17:53 · 702 阅读 · 0 评论 -
鸿蒙开发实战案例:折叠面板案例
本示例通过定义层级实现多层折叠面板,并在首页性能文章tab实际使用跳转到对应文章的web页面。原创 2024-12-21 20:32:17 · 405 阅读 · 0 评论 -
鸿蒙开发实战案例:HEIF软解码器案例
高效图像文件格式HEIF(High Efficiency Image File Format)具有更高的图像质量,更高效的压缩算法,在应用中大量使用,有些应用静态图90%以上都是HEIF图片(.heic后缀)。本示例介绍将 libheif 编译移植到鸿蒙平台,通过网络库 curl 请求HEIF图片资源、libheif软解码HEIF图片,最后在瀑布流中加载解码后的HEIF图片的过程。本案例HEIF软解码方案可供开发者调试,硬解码不支持的设备也可以使用软解码方案。原创 2024-12-21 19:15:50 · 629 阅读 · 0 评论 -
鸿蒙开发实战案例:自定义性能脚本测试
DevEco Testing Hypium是HarmonyOS平台上的UI自动化测试框架,允许开发者使用Python编写测试脚本,具备原生控件、图像及比例坐标定位功能,支持多窗口及触摸屏、鼠标、键盘的模拟输入,并能实现多设备并行测试。此外,它还配备了提升开发效率的辅助插件,如控件查看和投屏操作,并能自动生成详细的测试报告,包括设备日志和执行步骤的截图,为测试过程提供全面的支持与分析工具。原创 2024-12-20 20:44:32 · 786 阅读 · 0 评论 -
鸿蒙开发实战案例:启动页实现案例
本示例介绍了使用资源匹配规则实现不同分辨率冷启动应用图标适配和启动广告页的实现。应用使用某资源时,系统会根据当前设备状态优先从相匹配的限定词目录中寻找该资源。只有当resources目录中没有与设备状态匹配的限定词目录,或者在限定词目录中找不到该资源时,才会去base目录中查找。rawfile是原始文件目录,不会根据设备状态去匹配不同的资源。原创 2024-12-20 18:00:50 · 566 阅读 · 0 评论 -
鸿蒙开发实战案例:H5页面资源离线缓存案例
用户的网络连接不稳定,经常断开,但应用仍需提供可用的功能。移动设备在网络覆盖较差的地区,仍然需要访问应用的功能。初次加载应用时,将所有资源下载并缓存起来,以后访问时直接从本地加载,提高加载速度。本模块结合内存缓存和磁盘缓存实现了一个H5页面资源离线缓存案例。原创 2024-12-20 16:13:23 · 971 阅读 · 0 评论 -
鸿蒙开发实战案例:AI图片文字智能识别
本示例使用CoreVisionKit智能识别图片中的文字,并使用NaturalLanguageKit自然语言处理工具集将识别的文字智能转换为姓名、手机、地址等信息。原创 2024-12-20 14:54:55 · 689 阅读 · 0 评论 -
鸿蒙开发实战案例:群头像拼接案例
本示例介绍使用组件截图实现组件的截图并获取pixelMap对象。该场景多用于通信类应用。原创 2024-12-20 14:00:38 · 315 阅读 · 0 评论 -
鸿蒙开发实战案例:纵向横向列表联动案例
本示例主要通过List组件绑定Scroller滚动控制器和LazyForEach数据懒加载来实现纵向横向列表联动,该场景多用于汽车参数对比,股票信息查看。原创 2024-12-19 22:22:07 · 708 阅读 · 0 评论 -
鸿蒙开发实战案例:状态栏动画实现案例
本案例展示了状态栏的动态交互效果。通过监听页面滚动事件 onDidScroll,随着页面的上下滚动,实现状态栏颜色的变化。搜索框会在滚动时流畅地展开或收起,并伴有自然的透明度过渡效果。原创 2024-12-19 21:18:35 · 390 阅读 · 0 评论 -
鸿蒙开发实战案例:自定义TabBar页签凸起和凹陷案例
本文基于已有的模块自定义TabBar思路,完善了凸起的选择时凸起点交界处的圆滑过度,并扩展了一个 凹陷选择时不遮挡原本内容。原创 2024-12-19 16:43:09 · 1017 阅读 · 0 评论 -
鸿蒙开发实战案例:编辑收货地址案例
本示例多用于表单填写场景:其中通过使用TextPicker滑动选择文本内容组件实现三级联动选择省市区,并回填到输入框。原创 2024-12-19 15:00:32 · 839 阅读 · 0 评论 -
鸿蒙开发实战案例:视频横竖屏切换及进度条热区拖动
本示例介绍了@ohos.multimedia.media组件和@ohos.window接口以及使用触摸热区实现视频横竖屏切换及进度条热区拖动的功能。该场景多用于横竖屏视频等媒体播放。原创 2024-12-19 13:48:36 · 646 阅读 · 0 评论 -
鸿蒙开发实战案例:滑动视频自动播放
本示例主要介绍视频列表滑动到屏幕中间自动播放场景,利用onScrollIndex获取List显示区域内中间子组件索引值的能力来判断播放,利用懒加载场景会预加载List显示区域外cachedCount的内容的能力来实现视频连续播放。原创 2024-12-18 21:39:15 · 801 阅读 · 0 评论 -
鸿蒙开发实战案例:使用ArkUI的FrameNode扩展实现动态布局类框架
本示例是使用ArkUI的FrameNode扩展实现动态布局类框架的示例代码,主要讲解如何使用ArkUI的FrameNode扩展实现动态布局类框架。原创 2024-12-18 20:31:11 · 426 阅读 · 0 评论 -
鸿蒙开发实战案例:蓝牙实现服务端和客户端通讯
本示例分为服务端和客户端两个功能模块。 服务端创建蓝牙服务实例,添加心率跳动服务。以心率跳动值作为特征值,通过notifyCharacteristicChanged接口将心率跳动特征值广播发送给连接到本服务端并订阅了该特征值变动通知的蓝牙客户端设备。原创 2024-12-18 18:01:52 · 1091 阅读 · 0 评论 -
鸿蒙开发实战案例:橡皮擦案例
本示例通过 @ohos.graphics.drawing 库和 blendMode颜色混合 实现了橡皮擦功能,能够根据手指移动轨迹擦除之前绘制的内容,并且可以进行图案的撤销和恢复。原创 2024-12-18 16:25:46 · 305 阅读 · 0 评论