一、简介 在[《鸿蒙性能优化之卡顿优化》](https:ost.51cto.composts32617)一文中介绍卡顿优化,除了卡顿外,还有应用无响应,用户在使用应用时会出现点击没反应、应用无响应等情况,其超过一定时间限制后即被定义为应用无响应。当发生卡顿,用户还能使用应用;当发生无响应,用户将无法使用应用,系统会杀死应用。本文将介绍应用无响应检测原理、应用无响应的日志获取方式以及日志信息。二、应用无响应检测原理 当前应用...
2025-05-05 21:00:28 2365浏览 1点赞 0回复 1收藏
一、简介 应用启动可以分为冷启动和热启动,冷启动指的是应用启动,后台没有该应用的进程,系统会重新创建应用进程。热启动是当应用程序已经在后台运行,用户再次打开应用程序时,系统可以直接从内存中加载并继续之前的状态。当应用冷启动时延大于1100ms时,可以认为是应用启动缓慢。二、ProfileLaunch分析启动耗时ProfilerLaunch可以拆解应用冷启动过程,抓取不同阶段的耗时数据。从上图可以看到Launch将应用的冷启动过程拆...
2025-05-05 09:30:33 3656浏览 1点赞 0回复 0收藏
一、简介  应用发布上线,随着用户量越来越大,各种隐藏的性能问题不断的报出来,严重影响了应用的稳定性。为此需要需要一款线上性能监控框架,当发生问题时,能够将堆栈等各种信息保存下来,并及时的上报给服务端。  子衿是鸿蒙系统上的一款线上性能监控框架,目前支持监控崩溃、不响应、踩内存、启动时长、CPU高负载、主线程超时、资源泄露、滑动丢帧等。当发生这些异常,会将异常信息、堆栈信息保存在本...
2025-05-03 23:08:02 2733浏览 0点赞 0回复 1收藏
一、VBO  VBO是顶点缓冲对象,顶点缓冲对象在GPU中存储数据,加速渲染过程。1、1VBO优点减少数据从CPU到GPU的传输,提升渲染效率。在[鸿蒙OpenGL入门,绘制三角形](https:ost.51cto.composts29791)中介绍了绘制三角形,其实当时绘制的三角形性能并不高。三角形的顶点数据和颜色数据都是从CPU获取,如果图形复杂,数据每次都从CPU拷贝到GPU,性能就太低。更好的方式是一次性将全部数据从CPU拷贝到GPU,之后需要数据的...
2025-05-02 23:45:13 1905浏览 0点赞 0回复 2收藏
一、简介 hvigor构建工具是一款基于TS实现的构建任务构建工具,鸿蒙使用构建工具hvigor来完成HAPAPP的构建打包。hvigor将工程解析为一个树形结构,项目为树的根节点,hvigor将项目或模块称为一个节点。本文将详细的介绍hvigor生命周期、hvigor任务、hvigor插件。二、hvigor生命周期 hvigor生命周期分为初始化、配置和执行。2、1初始化根据命令参数和hvigorconfig.json5文件中的配置,设置hvigor的构建参数,并构造出hvigo...
2025-04-30 01:01:32 4696浏览 2点赞 0回复 2收藏
一、简介各位代码侠、调试特种兵,今天咱们要挑战的是程序员界的“哥德巴赫猜想”——鸿蒙卡顿优化!诸位可知,李白要是用上卡顿的手机,怕是写不出“朝辞白帝彩云间”——刚打开导航应用就白屏,他老人家早迷路在三峡了!再看《孙子兵法》有云:“兵贵神速”,咱们程序员也得牢记:“码贵流畅”——毕竟用户等待加载时长的耐心,比张飞绣花还稀缺啊!送诸位一副对联共勉:上联:鸿蒙在手岂容卡顿作妖下联:代码如飞且看帧率登...
2025-03-25 23:00:44 8815浏览 9点赞 1回复 9收藏
一、简介  在[鸿蒙NDK开发入门](https:ost.51cto.composts29745)中介绍了ArkTS与CC\++相互调用流程,本文承接上文,介绍使用OpenGL绘制一个三角形,通过绘制三角形来熟悉OpenGL的绘制流程。CPU和GPU都能用于图形渲染,部分场景下如果使用CPU渲染,性能就非常差。但GPU可以大大提高渲染速度,OpenGL可以操作GPU,是一个2D3D图形库,用于视频渲染、视频编辑、视频特效、游戏引擎等。除了OpenGL外,ValKan、Metal、Direc...
2024-08-26 19:57:26 1.7w浏览 1点赞 1回复 3收藏
一、NDK简介  NDK(NativeDevelopmentKit)是鸿蒙提供的NativeAPI、编译脚本和编译工具链的集合,方便开发者使用CC\++实现应用的关键功能。一般情况下应用开发使用ArkTS,ArkTS已经能满足大部分的功能开发,但有些功能还是需要用CC\++来实现,像音视频、直播、美颜、地图、AI等功能就需要使用CC\++来实现。学习NDK的前提是熟悉CC\++,重点掌握指针。二、NodeAPI  NodeAPI为开发者提供了ArkTSJS与CC\++模块...
2024-08-21 00:30:24 2.2w浏览 0点赞 0回复 0收藏
一、前言  你如果正在从事或者学习鸿蒙开发,那一定在用装饰器。你如果熟悉注解,那你第一眼看到装饰器,你肯定会想装饰器是不是就跟注解一样?装饰器到底是什么?它有什么作用?本文将带你探究装饰器的秘密。二、定义  装饰器就是一个方法或者函数,可以注入到类、方法、属性。大家请记住,装饰器就是一个函数,装饰器就是一个函数,装饰器就是一个函数。装饰器在不修改原有类、方法、属性的基础上添加额...
2024-08-18 23:58:42 6967浏览 1点赞 0回复 0收藏
  当未处理的JS异常导致应用意外退出时,应用会生成对应的JS崩溃日志文件,开发者可通过错误日志查看引起崩溃的代码位置及分析应用崩溃的原因。本文将分别介绍JS崩溃分析思路以及典型分析案例。一、日志信息  以下是崩溃日志信息中对应字段解释。Deviceinfo:emulator设备信息Buildinfo:emulator5.0.0.31(SP37DEVC00E31R4P11log)版本信息Fingerprint:983250ec758a62f9a6c4049e5d22210791fa49c6c91c321e61942...
2024-08-05 22:56:53 8351浏览 1点赞 0回复 0收藏
一、申请权限的一般步骤判断是否有权限,如果有权限,直接进行下一步。如果没有权限,则开始申请权限。如果用户授权,进行下一步。如果用户拒绝授权,后面再次申请权限,系统为了不打扰用户,将不会出现系统的权限弹窗。在用户拒绝授权后,需要弹窗提示用户必须授权才能访问当前功能,并引导用户到系统设置中打开相应的权限。每次申请权限的时候,都需要经过以上几个步骤,当申请的权限越来越多,大量的重复代码就出现了。为了...
2024-07-08 22:25:58 1.2w浏览 5点赞 4回复 2收藏