"鸿蒙系统"相关的文章
告别应用卡死焦虑:鸿蒙系统冻屏回调能力重磅上线

告别应用卡死焦虑:鸿蒙系统冻屏回调能力重磅上线

应用使用过程中,点击屏幕后毫无反应是件让人抓狂的事。手指点在屏幕上,界面却像凝固了一样,既不知道应用是在认真处理,还是已经彻底卡死。这种情况有个专门的名字:AppFreeze(应用冻屏)。 对开发者来说,冻屏问题一直是个麻烦事。系统检测到冻屏后生成的日志,常常缺少足够的上下文。看到日志只知道"线程卡住了",却不知道"为什么卡住",定位问题像在雾里摸索。
AppFreeze案例:FFRT 与 std::mutex 混用导致的死锁分析

AppFreeze案例:FFRT 与 std::mutex 混用导致的死锁分析

近期,某三方应用在鸿蒙系统上发生了多例 AppFreeze(应用无响应)事件。系统检测到主线程超时阻塞,强制终止了应用。通过抓取 AppFreeze 日志并结合 FFRT(Function Flow Runtime Kit)的基础理论,我们定位到了导致这一现象的根本原因:在 FFRT 并发模型中错误地使用了 C++ 标准库同步原语(std::mutex 和 std::condition_variable),导致 FFRT Worker 线程陷入内核态阻塞,进而引发任务堆积和死锁。