Logcat 总提示D/dalvikvm : GC_FOR_ALLOC freed

2024-05-03 18:18

本文主要是介绍Logcat 总提示D/dalvikvm : GC_FOR_ALLOC freed,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

出现这总情况一般是界面不停的加载和释放图片的原因。
若不知道是哪里不停的加载和释放图片,可以用DDMS追踪抓出元凶。

例如我的程序启动后,Logcat里面不停的打印下面的信息:

12-07 08:15:18.514: D/dalvikvm(19719): GC_FOR_ALLOC freed 921K (22), 34% free 4222K/6332K, paused 20ms, total 20ms 12-07 08:15:18.532: D/skia(19719): Flag is not 10 12-07 08:15:18.813: D/dalvikvm(19719): GC_FOR_ALLOC freed 921K (23), 34% free 4222K/6332K, paused 24ms, total 24ms 12-07 08:15:18.859: D/skia(19719): Flag is not 10 12-07 08:15:19.148: D/dalvikvm(19719): GC_FOR_ALLOC freed 921K (20), 34% free 4222K/6332K, paused 27ms, total 27ms 12-07 08:15:19.169: D/skia(19719): Flag is not 10 12-07 08:15:19.450: D/dalvikvm(19719): GC_FOR_ALLOC freed 921K (22), 34% free 4222K/6332K, paused 24ms, total 24ms 12-07 08:15:19.494: D/skia(19719): Flag is not 10 12-07 08:15:19.780: D/dalvikvm(19719): GC_FOR_ALLOC freed 921K (23), 34% free 4222K/6332K, paused 24ms, total 24ms


打开 DDMS, 选择设备及当前运行的应用,然后点击右边的“Start Tracking”,几秒后点“Get Allocations”, 仔细查看发现,不停的出现一个“android.graphics.drawable”的类不停的分配内存,点击该条目后,看到一个跟自己应用相关的条目出现,双击后自动定位到对于的代码,这时才发现如下的代码:

mImgLogo.setBackgroundResource(logo_res[mLogoIndex]);

这是我开机用换图的方式实现开机动画。用一个handler+runnable和图片资源数组实现的。本以为在activity退出的时候会自动停止,现在才发现它不会停……所以在activity结束的时候,把runnable从handler移除即可。

@Override protected void onDestroy() {mHandler.removeCallbacks(mChangeLogoRunnable);super.onDestroy(); }

之后Logcat就没出现不停打印 D/dalvikvm : GC_FOR_ALLOC freed 之类的信息了。

这篇关于Logcat 总提示D/dalvikvm : GC_FOR_ALLOC freed的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957349

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

HTML提示属性的使用

1、placeholder。属性规定描述文本区域预期值的简短提示,该提示会在文本区域为空时显示,当字段获得焦点时消失。 代码如下图所示: 显示效果如下图所示: 2、title。该属性规定关于元素的额外提示信息,这些信息通常会在鼠标移到元素上时显示一段工具提示文本(tooltip text)。 代码如下图所示: 显示效果如下图所示:

Typora配置PicGo时,提示Failed to fetch

Typora配置PicGo时,提示Failed to fetch 两者配置的端口不一致造成的 打开Typora,选择文件-偏好设置-图像-验证图片上传选项,点击验证图片上传选项 会提示错误:Failed to fetch,此时可以发现typora中设置的上传端口为36677 打开PigGo,选择PicGo设置-设置server,会发现监听端口为36678 修改监听接口为366

Android的logcat日志详解

Android log系统 logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息。下面介绍 adb logcat中的详细参数命令以及如何才能高效的打印日志,或把日志保存到我们指定的位置。 可以输入 adb logcat --help,查看一下一些简单的数据格式: adb logcat --help 输出结果: Usage: logcat [

企业网银登录提示请确认您已插入工商银行U盾证书的解决方法

昨天受人之托帮小企业财务解决上网银的问题 因为不是专业做这个的,所以只能安装“常识”行事,但结果实在是令人意想不到。 排错的步骤: 同一台电脑上尝试不同浏览器,发现360浏览器的接受度相当普遍;给U盾换不同的连接线;在不同的电脑上安装银行的插件,再重复上面的步骤1和步骤2;最终的结果,在一台电脑上可以走到下一步,但时好时坏,无法解决问题;到知乎上找答案,在一篇说明里有提到定制的qq浏览器,最后

Windows11上使用WSL2,提示:系统尚未使用systemd作为初始化系统(PID 1)启动

前言 略 报错信息 System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 解决方法 使用如下命令 # windows终端,执行如下命令wsl --update# 登录ubuntu系统,执行如下命令s

一次性解决 | 网站被提示“不安全 ”

当网站被提示“不安全”时,这通常意味着用户的个人信息、登录凭证和其他数据可能面临风险。为了一次性解决这个问题,可以从一下方面入手。 一、检查并启用HTTPS协议 检查URL:确保网站地址以“https”开头,而非“http”。HTTPS协议通过SSL/TLS对数据进行加密,从而保护数据在传输过程中的安全。 部署SSL证书:如果网站尚未部署SSL证书,需要获取一个由权威证书颁发机构(CA)签

app提交到腾讯开发平台,提示无法获取签名信息,请上传有效包(110506)

最近提交APP时遇到的,一般情况下是因为打包时至勾选v2没有勾选v1的原因,如下图: 这个时候将v1勾选即可。 但是在打包时ˉv1和v2都勾选了也可能会出现这个报错,那就要看一下gradle的 minSdkVersion,如果这个版本在24-26之间也可能会提示这个错误,所以降低这个版本就可以了