
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
前两天 UI 设计师在群里大发雷霆,说我做出来的页面在真机上全乱套了。仔细一看确实惨不忍睹:顶部的背景图被状态栏的电池电量遮挡,底部的输入框在弹出软键盘后被顶飞到了屏幕之外,还有侧边的返回手势和页面里的侧滑控件严重冲突。这三大顽疾,是每个鸿蒙开发者都必须跨过的深水区。 处理状态栏与导航栏 要想页面全屏沉浸,首先得在 EntryAbility 里把系统栏设为透明。 typescript import
这听起来很酷,但它的开发形态与传统 App 有巨大的差异,尤其是在包体积和卡片联动的限制上,极其苛刻。设置后,在本地调试时,你必须使用特定的元服务签名,且需要在 DevEco Studio 的启动配置里勾选“Deploy as Atomic Service”。否则,打包出来的依然是普通 HAP 包,无法测试免安装拉起的效果。在一个全新的鸿蒙工程里,创建一个元服务模块,并在里面放置一个静态的文本卡片
这听起来很酷,但它的开发形态与传统 App 有巨大的差异,尤其是在包体积和卡片联动的限制上,极其苛刻。设置后,在本地调试时,你必须使用特定的元服务签名,且需要在 DevEco Studio 的启动配置里勾选“Deploy as Atomic Service”。否则,打包出来的依然是普通 HAP 包,无法测试免安装拉起的效果。在一个全新的鸿蒙工程里,创建一个元服务模块,并在里面放置一个静态的文本卡片
上个月,公司决定把最核心的“扫码乘车”功能,剥离出来做成鸿蒙的元服务。元服务不需要用户去应用市场下载安装,扫一扫或者碰一碰就能直接拉起。这听起来很酷,但它的开发形态与传统 App 有巨大的差异,尤其是在包体积和卡片联动的限制上,极其苛刻。 元服务的瘦身与工程配置 元服务的核心理念是“即用即走”。如果你的包体积超过了几兆,系统会直接拒绝上架。我们在剥离代码时,把底层的三方统计库、复杂的图片渲染库全部
在开发即时通讯模块时,最让人抓狂的不是消息收发写错,而是网络稍微一波动,比如从 Wi-Fi 切到 5G,或者进入电梯再出来,WebSocket 就彻底没声了。表面上看连接还在,实际上底层早就断了,这就是典型的“假死”。为了解决这个问题,这周我对 @ohos.net.webSocket 的封装进行了彻底的重构。 基础连接与心跳包的设计 原生 API 的使用非常简单,但如果没有心跳机制,连接注定短命。
上周在做一款实时滤镜相机应用时,遇到了严重的性能瓶颈。在 ArkTS 层使用 Image 结合 Canvas 进行像素级图像处理,处理一张 1080P 的图片耗时超过了 2 秒,界面直接卡死。要解决这种计算密集型与渲染密集型叠加的需求,唯一的出路就是下沉到 Native 层,用 C++ 结合 OpenGL ES 来接管渲染管线。 构建跨语言的渲染桥梁 要在 ArkTS 中嵌入原生的 OpenGL
最近在接手一个金融理财类鸿蒙应用的底层安全重构时,遭遇了上架审核的滑铁卢。安全扫描报告直接指出:本地数据库与偏好设置中的敏感字段(如银行卡号、身份证哈希)使用了软加密,且密钥硬编码在代码中,存在极大的反编译泄露风险。这就逼迫我们必须放弃传统的 cryptoFramework 纯软件加解密,全面拥抱系统级的 HUKS(通用密钥库系统)以及国密算法。 告别硬编码,让密钥永不落盘 以前为了图方便,很多开
地铁里没信号是常态。如果在没网的时候,用户点击“发布评论”直接弹一个“网络异常”,他们的第一反应绝对是卸载。现代应用架构的标准是“离线优先”:无论有没有网,操作立刻在本地完成,剩下的交给后台悄悄同步。 把本地数据库当成唯一真相 传统的写法是:点击发布 -> 转圈圈 -> 发请求 -> 成功 -> 把数据加进 UI 数组。这套逻辑在弱网下必死无疑。 离线优先的核心原则是:UI
列表滑动帧率(FPS)是检验应用体验最直观的标尺。当一个列表的数据量达到几千甚至上万条时,如果你还在用 ForEach 去渲染,那每一帧的渲染压力足以让旗舰机掉帧。要解决这个问题,必须深入理解 ArkUI 的渲染管线与虚拟列表机制。 虚拟列表的基础 IDataSource LazyForEach 并不是简单地把数组传进去就行,它要求你提供一个数据源对象,实现 
测试同学发来一个截图,红色的内存溢出(OOM)日志极其刺眼。她只是简单地点了一下“修改头像”,从相册选了一张用单反相机拍的高清原图,整个 App 就瞬间闪退了。 移动端处理图片,最忌讳的就是“不解压直接上”。一张在硬盘上只有 20MB 的 JPEG 图片,在内存里解压成未压缩的位图时,体积会膨胀几十倍。这就是为什么明明手机有 8G 内存,却连一张图都加载不了的原因。 算一笔内存账 我们来看一下内存







