**css动画代码**
.animation-alarm {
margin-left: 2px;
width: 200px;
height: 200px;
background: salmon;
animation: a-alarm 3s linear infinite;
animation-delay: 3s;
}
@keyframes a-alarm {
0% {
transform: translateY(0%);
}
99% {
transform: translateY(-100%);
}
100% {
transform: translateY(0%);
}
}
**uni.createAnimation代码**
animation.value = uni.createAnimation();
setInterval(() => {
animation.value.translateY(0).step({
duration: 0,
timingFunction: 'linear',
delay: 0
});
animation.value.translateY(-childHeight.value).step({
duration: timeGap.value,
timingFunction: 'linear',
delay: 0
});
animation.value.translateY(0).step({
duration: 0,
timingFunction: 'linear',
delay: 0
});
animationData.value = animation.value.export();
}, 10 * 1000);
- 发布:2022-07-27 17:39
- 更新:2023-07-12 14:53
- 阅读:626
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.4.18
手机系统: Android
手机系统版本号: Android 8.0
手机厂商: 安卓设备
手机机型: 模拟器和安卓设备
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
1、app端使用css的animation或者使用uni.createAnimation实现简单动画轮播效果;
2、打包安装或者直接运行到安卓基座时,通过adb指令**adb shell dumpsys meminfo io.dcloud.HBuilder**观察到**Native Heap**的值逐渐增大;
3、不使用动画后**Native Heap**的值维持在正负100kb的正常范围内波动;
4、两种动画方式都会导致内存逐渐增大
注:项目里所有的定时器均已关闭,测试时控制的唯一变量就是动画的打开和关闭。个人怀疑编译成安卓平台时,动画引擎相关源码有内存泄漏
1、app端使用css的animation或者使用uni.createAnimation实现简单动画轮播效果;
2、打包安装或者直接运行到安卓基座时,通过adb指令**adb shell dumpsys meminfo io.dcloud.HBuilder**观察到**Native Heap**的值逐渐增大;
3、不使用动画后**Native Heap**的值维持在正负100kb的正常范围内波动;
4、两种动画方式都会导致内存逐渐增大
注:项目里所有的定时器均已关闭,测试时控制的唯一变量就是动画的打开和关闭。个人怀疑编译成安卓平台时,动画引擎相关源码有内存泄漏
预期结果:
打开app长驻,无操作情况下,动画正常执行,内存只在一定范围内波动
打开app长驻,无操作情况下,动画正常执行,内存只在一定范围内波动
实际结果:
无操作情况下,无操作放置一个晚上后堆内存不断增大,最终导致app崩溃(安卓系统弹窗提示“应用无响应”)。
关闭动画的情况下,无操作放置一个晚上,第二天app依旧正常运行(已反复测试了4次)
无操作情况下,无操作放置一个晚上后堆内存不断增大,最终导致app崩溃(安卓系统弹窗提示“应用无响应”)。
关闭动画的情况下,无操作放置一个晚上,第二天app依旧正常运行(已反复测试了4次)
bug描述:
app端使用css的animation或者使用uni.createAnimation实现轮播效果时导致内存泄漏(uniapp核心包版本3.0.0-alpha-3040820220424001)
1 个回复
8***@qq.com - 80后
有什么解决方案吗,官方自己的 uni-notice-bar 也是这样。
公司场景是展示屏,经常卡死没响应,就是文字不滚动,右上角的每秒刷新的时间也不会动了。