logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【HarmonyOS开发小实践】ArkTS 运行时全貌四个子系统怎么协作

写完 ArkTS 代码,点运行,代码就跑起来了。中间发生了什么?ArkTS 源码先被编译工具链编译成方舟字节码(.abc文件),再由 ArkTS 运行时在设备上执行。运行时内部不是一坨代码,而是分成四个子系统各管一摊。这篇就把这四个子系统的职责、它们之间怎么协作、以及解释器/AOT/JIT 三种执行模式的关系讲清楚。

#harmonyos#华为
【HarmonyOS开发小实践】ArkTS相比于TypeScript扩展了什么,限制了什么

先开 TS 严格模式再迁。在 TS 项目里把配上,能过的代码迁到 ArkTS 就轻松大半。过不了的部分就是真正要改的。别直接拿松散的 TS 代码往 ArkTS 塞,报错会多到劝退。解构赋值是最容易踩的坑。TS 里太常见了,迁到 ArkTS 全得改。批量替换可以用正则,但复杂解构(嵌套、默认值、rest)得手动改。别指望 structural typing 帮你省代码。TS 里两个类结构一样就能互相

#harmonyos#华为
【HarmonyOS开发小实践】ArkTS 从 TypeScript 到方舟语言的演进

别把 ArkTS 当 TS 写。语法像不代表习惯能照搬。ArkTS 的类型约束更严,any不能用,对象字面量要标类型,解构赋值不支持。从 TS 项目迁过来要先过类型检查这一关。状态管理装饰器是 ArkTS 的核心。写 HarmonyOS 应用,@State@Prop@Link这套机制要吃透。它不是可选的语法糖,而是 ArkUI 刷新 UI 的基础。理解了状态变量的依赖追踪,才能写出性能好的组件。并

#harmonyos#华为
【HarmonyOS开发小实践】ArkUI 底层自定义与 NDK:FrameNode、RenderNode 与 C++ 构建 UI

API定位用途FrameNode声明式组件的底层节点在声明式外获取、操作组件节点,实现动态增删RenderNode渲染节点自定义绘制,绕过组件直接操作渲染属性构建节点把 Builder 内容挂到任意位置,动态插入 UIRenderNode@Entry@Component// 渲染命令:绘制一个圆形});build() {// RenderNode 挂载到组件上显示Stack() {}RenderN

#harmonyos#华为#ui
【HarmonyOS开发小实践】ArkUI 自定义组件与 Modifier:把界面拆成可复用的单元

最基础的封装用@Componentbuild()// 定义一个可复用的"评分条"组件@Component// 评分,0-5build() {Row() {// 小于等于 score 的星是实心的'★' : '☆')// 使用@Entry@Componentbuild() {RatingBar({ score: 4 }) // 4 星RatingBar({ score: 5, maxScore: 1

#harmonyos#华为#ui
【HarmonyOS开发小实践】ArkUI 交互事件与手势:从触摸到组合手势

手势会拦截组件默认行为。给组件加了gesture可能影响其默认手势(如列表的滚动)。需要时用让手势优先,或用并行。拖动注意坐标累积。PanGesture的是单次增量,要累加到@State上。直接赋值会跳动不跟手。组合手势用对模式。并行、顺序、互斥三种模式语义完全不同,用错模式手势会互相冲突,出现"怎么都不触发"或"同时触发"的奇怪现象。触摸和手势别叠加混用。同一组件既用onTouch又用gestu

#harmonyos#华为#性能优化 +1
【HarmonyOS开发小实践】ArkUI 转场动画组件出现、消失与页面切换的过渡

属性动画管的是"值怎么变",转场动画管的是"组件怎么出现、怎么消失"。元素插入界面、删除界面、页面之间切换,都需要转场来避免生硬的瞬间跳变。ArkUI 的转场分两类:组件转场(组件出现和消失)和页面转场(页面之间切换)。

#harmonyos#华为#性能优化 +1
【HarmonyOS开发小实践】ArkUI 动画系统属性动画、显式动画与路径动画

静态界面能用,但缺了动画的过渡会显得生硬。ArkUI 提供了从简单到复杂的动画能力:属性动画、显式动画、路径动画,以及组件内置动画。这篇把常用动画类型讲清楚。

#harmonyos#性能优化#ui
【HarmonyOS开发小实践】ArkUI 应用级状态AppStorage 与跨页面共享、持久化

区分数据生命周期再选型。页面内临时数据用@State,组件树内共享用@Provide@Consume,全局共享用AppStorage,要持久化再加。别所有数据都往 AppStorage 里塞。的 key 要统一管理。持久化 key 散落各处容易冲突,建议集中定义常量。同步引用时注意 type。的类型要和声明一致,类型对不上会有隐式转换问题。持久化数据只存可序列化的。存的是可序列化数据,函数、回调、

#harmonyos#华为#性能优化 +1
【HarmonyOS开发小实践】ArkUI 组件内状态@State、@Prop、@Link 的父子传递

子组件改的是自己那份,父组件不知道。适合"父组件的数据子组件只读展示,子组件可以基于它做本地调整"的场景。短期可以用方式 2 快速解决,长期和团队规范应该用方式 1,否则代码里到处是别扭的整体替换。是组件自己的状态,只有声明它的组件能读取和修改。它是所有状态管理的起点。嵌套对象改属性不刷新是状态管理里最隐蔽的问题之一。反过来讲,如果子组件需要改父组件的数据,却用了。,那是个 bug——子组件改了父

#harmonyos#华为
    共 271 条
  • 1
  • 2
  • 3
  • 28
  • 请选择