登录社区云,与社区用户共同成长
邀请您加入社区
当设备完成启动后,用户最先看到并持续使用的界面,通常就是 Launcher。它可能表现为桌面、首页、仪表主界面或应用入口,但它承担的职责远不止“显示几个图标”。 Launcher 连接着系统状态、用户操作和各类功能页面,是整个图形界面的入口。理解 Launcher 的设计,可以帮助初学者认识一个长期运行的界面应用如何组织页面、处理数据、响应系统事件,并保持稳定的用户体验。 本文不讨论某个具体项目的
mbedtls编译报错 编译报错日志如下: [OHOS ERROR] [NINJA] ../../../third_party/mbedtls/library/platform_util.c:261:2: error: #error "No mbedtls_ms_time available" [OHOS ERROR] [NINJA] 261 | #error "No
概述 大屏应用中快速走焦切换导航页时,卡顿的主要原因是每次焦点变化都触发了一次网络请求和页面重建。如果能让数据提前准备好,用户切换页面时直接读取缓存,就能消除等待时间。预加载的思路就是——不等用户切到页面才请求,而是提前把相邻页面的数据拿过来存着。 说明 预加载需要做三件事:一个缓存容器存数据、一个触发时机拉数据、一个降级逻辑兜底。触发时机选在焦点变化时,只预加载当前页前后各一到两页
概述 在 HarmonyOS 应用开发中,经常会遇到"大部分 UI 结构固定,局部需要调用方自定义"的场景。比如一个列表项,左侧固定显示头像和昵称,右侧的按钮则由不同业务决定——有的要"关注",有的要"删除"。如果每种情况都在组件内部写条件分支,组件会越来越臃肿。`@Builder` 和 `@BuilderParam` 就是为了解决这个问
TL;DR 本文深入剖析 OpenHarmony appspawn 的 sandbox 环境构建系统。核心脉络可概括为:三段时序(服务预加载建模、父进程 pre-fork 准备、子进程 execute 构建)、四块配置(global 定义根目录与命名空间、required 提供基础视图、conditional 按权限/标志/包名动态装配、name-groups 复用挂载组)、关键映射(JSON
文档概述说明:1.文章由移远通信技术股份有限公司提供2.以下内容包含了个人理解,仅供参考,如有不合理处,请联系笔者修改 1. 说明与范围 本文承接前两篇启动梳理,主题收敛到 foundation/systemabilitymgr。 这篇只关注标准系统下下面这条链: init 如何把 samgr 和具体 SA 进程拉起来;samgr 如何建立系统能力注册中心;safwk 如何解析 profile、装
如何使用 TaskPool? 它的使用方式很直接,适合处理短时、分散的独立任务。 编写并发函数:用 @Concurrent装饰器标记你的耗时函数。 执行任务:通过taskpool.execute()提交任务,系统会自动调度到工作线程执行,结果通过 Promise 返回 import { taskpool } from '@kit.ArkTS'; // 1. 定义并发函
文档概述说明:1.文章由移远通信技术股份有限公司提供2.以下内容包含了个人理解,仅供参考,如有不合理处,请联系笔者修改 1. 说明与范围 本文是上一篇 init 启动结构梳理的续篇,主题收敛到 base/startup/appspawn。 这篇不再展开系统总启动流程,而是只回答下面几个问题: appspawn 在标准系统里处于什么位置;appspawn 是怎么被 init 拉起来的;客户端请求是怎
文档概述说明:1.文章由移远通信技术股份有限公司提供2.以下内容包含了个人理解,仅供参考,如有不合理处,请联系笔者修改 1. 说明与范围 本文只讨论标准系统启动主线,关注 base/startup/init 及其直接拉起的关键组件。 几个边界先说明清楚: 这里的主入口是 PID 1 的 init,不是 bootstrap_lite。bootstrap_lite 面向小型系统,是另一套启动路径。标准
文档概述说明:1.文章由移远通信技术股份有限公司提供2.以下内容包含了个人理解,仅供参考,如有不合理处,请联系笔者修改 1. 工具链组件总览 为了避免在后续章节中混淆“编译器” “链接器” “运行时库” “标准库”这些概念,先给出一张工程上最常用的总览表。评审、选型和问题定位时,可以先按这一章确定自己讨论的是哪一层。 1.1 编译器总览 类别常见实现典型平台主要特点主要短板GNU 编译器gcc、g