-
基于 ArkTS 实现客户预警详情震源动画功能1.1 问题说明在客户预警类鸿蒙原生应用的地图 / 可视化场景中,需通过震源动画直观展示预警事件的核心位置。传统静态 Marker 标记无法体现预警的动态提醒特性,而基于鸿蒙原生动画能力实现震源动效时,易出现动画与 Marker 绑定不精准、缩放过渡不流畅等问题。1.2 原因分析 Marker 与动画绑定逻辑缺失直接创建 Marker 后未关联动画对象,导致动画无法作用于震源标记。· 动画参数初始化不合理未在 RotateAnimation 构造函数中精准设置初始缩放倍数,导致动画启动时出现跳变、卡顿。· 动画生命周期管理不足动画执行完成后未重置状态,多次触发预警时动画叠加异常。1.3 解决思路 核心方案先创建预警震源对应的 Marker 标记,再构造 RotateAnimation 对象,通过构造函数指定动画启动时的水平(scaleX)、垂直(scaleY)缩放倍数,绑定动画到 Marker 实现基础缩放旋转动效。· 动画参数标准化统一初始缩放倍数(如从 0.1 倍开始)、动画时长,确保动效流畅无跳变。 生命周期管控动画启动前停止旧动画,避免多次触发时的动画冲突。1.4 解决方案Marker 创建与动画对象构造 动画绑定与启动控制 多设备适配处理 1.5 总结 问题与痛点:静态 Marker 无法体现预警动态特性;动画与标记绑定不精准;初始缩放参数不合理导致动效卡顿;多次触发动画叠加冲突;锚点偏差造成位置偏移。· 技术要点:核心为 “新建 Marker + 构造 RotateAnimation”,通过构造函数指定初始缩放倍数;设置 Marker 居中锚点确保动画定位精准;启动前停止旧动画管控生命周期;基于屏幕密度适配多设备。· 实现效果:震源 Marker 从 0.1 倍(适配后倍数)开始旋转缩放,循环 “放大 - 缩小” 无卡顿;动画精准围绕震源中心展开,定位无偏移;多次触发预警无动画叠加异常,多设备视觉效果一致
-
如题,为什么LTS的ListLogHistogram接口我调试总报LTS.0003 Invalid role,而我帐号是有日志读取权限的
-
我有一个站想用到华为云,不知道能不能在不动里面文章的同时,放到华为云吗?想提升一下速度,但是这个网站系统可能不一样,哪位大神帮我看下,如何转到华为云,域名 gzfynm.com
-
vmcore-dmesg.txt:..............................................................................................[1643233.717506] Iptables-HTTP/S-IN: IN=bond0 OUT= MAC=b8:ce:f6:f1:f0:ce:7c:d9:a0:d8:52:22:08:00 SRC=10.151.10.139 DST=10.147.95.5 LEN=52 TOS=0x02 PREC=0x00 TTL=122 ID=5414 DF PROTO=TCP SPT=56560 DPT=443 WINDOW=64240 RES=0x00 CWR ECE SYN URGP=0 [1643248.444334] Unable to handle kernel paging request at virtual address 000000030000004c [1643248.444336] Mem abort info: [1643248.444336] ESR = 0x96000004 [1643248.444338] Exception class = DABT (current EL), IL = 32 bits [1643248.444339] SET = 0, FnV = 0 [1643248.444339] EA = 0, S1PTW = 0 [1643248.444340] Data abort info: [1643248.444341] ISV = 0, ISS = 0x00000004 [1643248.444342] CM = 0, WnR = 0 [1643248.444344] user pgtable: 4k pages, 48-bit VAs, pgdp = 00000000624182e4 [1643248.444345] [000000030000004c] pgd=0000000000000000 [1643248.444348] Internal error: Oops: 96000004 [#1] SMP [1643248.449378] Process conn309482 (pid: 34986, stack limit = 0x0000000067723cd1) [1643248.456655] CPU: 16 PID: 34986 Comm: conn309482 Kdump: loaded Tainted: G OE 4.19.36-vhulk1907.1.0.h729.eulerosv2r8.aarch64 #1 [1643248.469288] Hardware name: Huawei S920S00K/BC82AMDGM, BIOS 1.77.K 06/28/2021 [1643248.476477] pstate: 60400009 (nZCv daif +PAN -UAO) [1643248.481424] pc : __kmalloc_node_track_caller+0x214/0x348 [1643248.486885] lr : __kmalloc_node_track_caller+0x6c/0x348 [1643248.492258] sp : ffff0000b38ebbe0 [1643248.495730] x29: ffff0000b38ebbe0 x28: ffffa03fdf779f00 [1643248.501192] x27: 0000000000000000 x26: 000000000000003c [1643248.506654] x25: ffff803f7f407800 x24: ffff803f7f407800 [1643248.512116] x23: ffff000080861568 x22: 00000000ffffffff [1643248.517578] x21: 00000000000001c0 x20: 0000000000410200 [1643248.523040] x19: 000000030000004c x18: 0000000000000000 [1643248.528502] x17: 0000000000000000 x16: 0000000000000000 [1643248.533962] x15: 0000000000000000 x14: 0000000000000000 [1643248.539423] x13: 0000000000000000 x12: 0000000000000010 [1643248.544885] x11: 0101010101010101 x10: 7f7f7fffffffff7f [1643248.550347] x9 : 44670b96a6e5cbff x8 : 7fff7f7fff7f7f7f [1643248.555809] x7 : fffdfeffb1ff3137 x6 : ffff802123aaa000 [1643248.561270] x5 : 0000000018ee63ee x4 : ffff803f7fa72660 [1643248.566732] x3 : ffff000080861568 x2 : 0000803efeb6c000 [1643248.572194] x1 : 0000803efeb6c000 x0 : 0000000000000000 [1643248.577657] Call trace: [1643248.580268] __kmalloc_node_track_caller+0x214/0x348 [1643248.585385] __kmalloc_reserve.isra.9+0x54/0xb0 [1643248.590067] __alloc_skb+0x90/0x1b0 [1643248.593717] cn_netlink_send_mult+0x148/0x268 [1643248.598227] cn_netlink_send+0x40/0x50 [1643248.602133] proc_comm_connector+0xd0/0xf8 [1643248.606387] __se_sys_prctl+0x3e0/0x520 [1643248.610379] __arm64_sys_prctl+0x28/0x38 [1643248.614458] el0_svc_common+0x78/0x130 [1643248.618363] el0_svc_handler+0x38/0x78 [1643248.622269] el0_svc+0x8/0xc [1643248.625312] Code: 9400634f aa0003f9 17ffff9c b9402320 (f8606a66) [1643248.631550] kernel fault(0x1) notification starting on CPU 16 [1643248.637441] kernel fault(0x1) notification finished on CPU 16 [1643248.643335] [kbox] catch die event on cpu 16............................................................................................
-
华为官网 反馈远程模拟器一会能用一会不能用,跟抽疯一样
-
过滤器从请求取requestid若没有则生成,随后放入MDC上下文中MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。确保了多进程下进程之间在MDC存放的值是没有相互的影响的MDC的介绍package com.jerry.log;import org.slf4j.MDC;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.UUID;/* * 在日志上下文增加参数,在日志中可以打印该参数,如RequestId,则日志配置:%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{RequestId}] [%thread] %-5level %logger{36} - %msg%n * 则 RequestId 会打印在中括号里,%X{参数名} 是格式 **/@Componentpublic class MDCFilter implements Filter { /** * 设置响应头,响应头名字(惯例是大写) */ private static final String REQUEST_ID_HEADER = "RequestId"; /** * 设置到 MDC 里的key(惯例使用小驼峰,为了统一这里也用大写) */ private static final String REQUEST_ID = "RequestId"; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String requestId = httpRequest.getHeader(REQUEST_ID_HEADER); if (requestId == null) { requestId = UUID.randomUUID().toString(); } // 还有更加准确的方法 String ip = getRequestSourceIp(httpRequest); MDC.put(REQUEST_ID, requestId); MDC.put("IP", ip); httpResponse.setHeader(REQUEST_ID_HEADER, requestId); try { chain.doFilter(request, response); } finally { MDC.clear(); } } @Override public void destroy() { } /** * 获取请求来源的IP,可以适应前置部署有Nginx等反向代理软件等的情况. HTTP_CLIENT_IP 无法伪造,所以放在第一个 * * @param request * @return */ public static String getRequestSourceIp(HttpServletRequest request) { String ip = request.getHeader("HTTP_CLIENT_IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-FORWARDED-FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }}配置过滤器(web.xml)<filter> <filter-name>MDCFilter</filter-name> <filter-class>com.jerry.log.MDCFilter</filter-class></filter><filter-mapping> <filter-name>MDCFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>日志文件配置(log4j,properties)log4j.rootLogger = debug,stdout,E,I,Clog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}|[%X{RequestId}][ %t:%r ] %m%n此处可以取到之前mdc上下文中的参数requestid和线程id转载自https://www.cnblogs.com/ruosu0909/p/RuoSuMDCRequestId.html
-
Drain:一种基于固定深度树结构的在线日志解析方法论文名称:Drain: An Online Log Parsing Approach with Fixed Depth Tree作者:Pinjia He , Jieming Zhu , Zibin Zheng , and Michael R. Lyu发表时间:2017/6/30论文链接:http://www.cse.cuhk.edu.hk/lyu/_media/conference/pjhe_icws17.pdf?id=publications%3Aconference2&cache=cache推荐原因1、本文提出了一种高效的树结构来在线解析日志数据,将日志解析工作拆解为5个步骤,即根据具体的业务场景对日志进行简单的预处理、根据日志长度来搜索日志事件、根据日志第一个词来搜索日志事件、根据句子相似度来搜索日志事件,匹配日志事件或者更新日志事件,与大多数树结构的方法一样,作者也设计了一些剪枝的方法2、 作者提出的方法十分直观,并且灵活,与其说是一种日志分析算法,更多的是一种基于树结构的日志分析思路,一些其他基于树结构的日志处理方法亦可以很方便的整合到作者的模型中。
-
Drain:一种基于固定深度树结构的在线日志解析方法论文名称:Drain: An Online Log Parsing Approach with Fixed Depth Tree作者:Pinjia He , Jieming Zhu , Zibin Zheng , and Michael R. Lyu发表时间:2017/6/30论文链接:http://www.cse.cuhk.edu.hk/lyu/_media/conference/pjhe_icws17.pdf?id=publications%3Aconference2&cache=cache推荐原因1、本文提出了一种高效的树结构来在线解析日志数据,将日志解析工作拆解为5个步骤,即根据具体的业务场景对日志进行简单的预处理、根据日志长度来搜索日志事件、根据日志第一个词来搜索日志事件、根据句子相似度来搜索日志事件,匹配日志事件或者更新日志事件,与大多数树结构的方法一样,作者也设计了一些剪枝的方法2、 作者提出的方法十分直观,并且灵活,与其说是一种日志分析算法,更多的是一种基于树结构的日志分析思路,一些其他基于树结构的日志处理方法亦可以很方便的整合到作者的模型中。转自,AI研习社,https://www.leiphone.com/category/academic/Is2BSkPUrXDA4Qt9.html
-
目的:通过工具,能分析出播放器常见的问题并给出解决建议。主要分析场景:1、 错误码统计分析。主要针对分析播放器日志中的错误码,整理出播放器的问题,并给出解决建议。一般现网问题80%都会有播放器错误码,通过错误码统计分析可以定位出绝大部分问题。错误码分析主要如下:a) 错误码规则说明; b) 错误码统计信息,包括日志中播放器总的错误日志数,关键错误统计及解决方案。2、 播放器主要流程分析,明确是否有异常流程日志或其他流程,进行说明。比如:DRM 的License 流程,在UI调用prepare接口之前需要设置DRMInfo信息给播放器。3、 起播分析,主要针对现网起播慢的情况进行分析,分析起播过程中每个阶段的耗时情况。4、 播放过程分析(关键事件响应:码率切换,音轨、字幕切换,seek、暂停/继续/停止等播放过程中的操作。 5、 UI 设置给播放器的参数信息。通过分析日志整理出UI设置给播放器的参数信息,如:播放URL,CAtype,视频类型,流类型,解码类型等。
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签