Android之内存溢出(Out Of Memory)的总结

图片越来越多,内存溢出已经成了不得不注意的问题了。

错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

内存溢出主要由以下几种情况引起:

 

1.数据库的cursor没有关闭。

2.构造adapter没有使用缓存convertview。

3.调用registerReceiver后未调用unregisterReceiver()。

4.未关闭InputStream/OutputStream。

5.Bitmap使用后未调用recycle()。

6.Context泄漏。

前5种情况容易发现和解决,只要把该关的及时关闭,该调用的方法及时调用,就不会有太多问题,另外java里还有软引用帮助管理内存:

SoftReference<Bitmap> bitmap;
bitmap = new SoftReference<Bitmap>(pBitmap);
if(bitmap != null){

if(bitmap.get() != null && !bitmap.get().isRecycled()){
bitmap.get().recycle();
bitmap = null;
}
}

下面着重介绍Context泄漏。

这是一个很隐晦的内存泄露的情况。先看一个Android官网提供的例子:

private static Drawable sBackground;@Overrid

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没有什么是日本牛郎店做不到的......

1 第一眼你看见了啥&#xff1f;▼2 确实很悲伤&#xff08;dy&#xff1a;李逍遥&#xff09;▼3 貌似真是这样▼4 我不爱打麻将咋办&#xff1f;▼5 短短十几个字&#xff0c;满满的江湖纷争▼6 少了男主的朋友不要轻易尝试▼7 哦吼▼8 双十一如你所愿&#xff0c;哈哈…

持续集成、持续交付(CI/CD)开篇,先来唠唠嗑

前言现在稍微有点规模的系统&#xff0c;很多都是采用分布式/微服务架构&#xff0c;将一个大系统拆分为很多个功能模块进行开发、测试、发布、管理等&#xff0c;如果全部流程都采用人工的形式进行的话&#xff0c;效率肯定是超级不高效滴。而且现在很多项目都采用极限编程的模…

100例经典炒菜_Python3经典100例(②)

实例6题目&#xff1a;斐波那契数列&#xff1b;分析&#xff1a;利用递归计算斐波那契数列&#xff0c;输入斐波那契数列的n位&#xff0c;调用递归计算出第n位的数列值&#xff1b;代码&#xff1a;#!/usr/bin/python3 # -*- coding: utf-8 -*- # Time : 2018-10-3 21:10 …

分享10个2012年最新发布的jQuery插件

为什么80%的码农都做不了架构师&#xff1f;>>> 日期&#xff1a;2012-5-9 来源&#xff1a;GBin1.com 本文收集了最新的jQuery社区发布的jQuery插件&#xff0c;绝对是你没有见过的&#xff0c;希望大家喜欢&#xff01; 1. SearchMeme 一个即时搜索的jQuery插件…

监考

中国近现代史纲要人资150230逸夫楼A2012016年1月11日周一14:00-15:50国际结算国金130430逸夫楼A2072016年1月11日周一16:20-18:10高等数学4会统专150130逸夫楼A4102016年1月12日周二14:00-15:50建筑结构与选型城规120131逸夫楼A2092016年1月12日周二16:20-18:10转载于:https://…

Android之解析XML总结(SAX、Pull、Dom三种方式)

常见的解析xml的方式有一下三种&#xff1a;SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器&#xff0c;用到了其中的两种&#xff08;sax,pull&#xff09;&#xff0c;今天对android解析xml的这三种方式进行一次总结。 今天解析的xml示例&#xff08;channels.x…

博士毕业的人也会交“智商税”?现实远比我们想象的残酷……

全世界只有3.14 % 的人关注了爆炸吧知识2018 年的那个多事之秋&#xff0c;我终于在人生快要过半的时候拿到了博士学位。大毛和小鱼是我博士期间玩得最好的兄弟&#xff0c;我们三人水平差不多&#xff0c;志向差不多&#xff0c;博士毕业后都进了双非高校。现实不像是想象中那…

UVA-1045 - The Great Wall Game(二分图最佳匹配)

题意:在一个n*n的棋盘上有n个棋子&#xff0c;要求通过移动棋子使棋子的排布满足以下情况之一&#xff1a;呈横行排列&#xff1b;呈纵行排列&#xff1b;呈对角线排列(有两条)。 棋子移动一个单元格的费用为1&#xff0c;总费用为所有棋子的移动费用之和。求最小费用。 分析:因…

聊一聊声明式接口调用与Nacos的结合使用

背景 对于公司内部的 API 接口&#xff0c;在引入注册中心之后&#xff0c;免不了会用上服务发现这个东西。现在比较流行的接口调用方式应该是基于声明式接口的调用&#xff0c;它使得开发变得更加简化和快捷。.NET 在声明式接口调用这一块&#xff0c;有 WebApiClient 和 Refi…

三次握手和四次挥手图解_三次握手和四次挥手简单理解

TCP三次握手TCP标志位TCP在其协议头中使用大量的标志位或者说1位&#xff08;bit&#xff09;布尔域来控制连接状态&#xff0c;一个包中有可以设置多个标志位。TCP是主机对主机层的传输控制协议&#xff0c;提供可靠的连接服务&#xff0c;采用三次握手确认建立一个连接&#…

分布式搜索ElasticSearch单机与服务器环境搭建

先到http://www.elasticsearch.org/download/下载最新版的elasticsearch运行包&#xff0c;本文写时最新的是0.19.1&#xff0c;作者是个很勤快的人&#xff0c;es的更新很频繁&#xff0c;bug修复得很快。下载完解开有三个包:bin是运行的脚本&#xff0c;config是设置文件&…

Android之基于BaseAdapter和SimpleAdapter的GridView

GridView 第一种方式:用SimpleAdapter 先来贴出本文代码运行的结果: 本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。 main.xml源代码如下,本身是个GirdView,用于装载Item: <?xml version="1.0" encoding="utf-8"?> <…

IOS开发CAKeyframeAnimation的基本使用与keypath的列举

2019独角兽企业重金招聘Python工程师标准>>> CAKeyframeAnimation跟CABasicAnimation的区别是&#xff1a;CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue)&#xff0c;而CAKeyframeAnimation会使用一个NSArray保存这些数值 - (void)value {CAKe…

少女为什么会身上香香的?

1 一旦接受这个设定苏打窃瓦辛格&#xff08;via.煎甜担担面&#xff09;▼2 有被冒犯到▼3 哈哈哈哈哈▼4 就差了难忘今宵▼5 还是挺在理的▼6 欣慰中带着点点悲伤▼7 原来是你的错▼8 哈哈哈哈哈▼你点的每个赞&#xff0c;我都认真当成了喜欢

Android之Android Studio三种方式导入外部资源 以及 报错处理

Android Studio三种方式导入外部资源 以及 报错处理 android studio提供了三种方式导入外部资源: 1. Library dependency – 在线添加、需联网下载 、 2. File dependency – 从本地添加一些jar包(要先将jar包</

linux系统服务设置命令--chkconfig命令参数及用法详解

chkconfig(check config) 功能说明&#xff1a;chkconfig命令主要用来更新&#xff08;启动或停止&#xff09;和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务&#xff0c;它只是简单的改变了符号连接。 语  法&#xff1a;chkconfig [--add][--…

android飞翔的小鸟游戏素材包_开心消消乐×愤怒的小鸟:为开心而战

手机里总有那么一些游戏&#xff0c;是你一旦不小心打开&#xff0c;就完全停不下来的。在这份“一直玩一直爽游戏清单”里&#xff0c;绝对少不了开心消消乐和愤怒的小鸟的身影。神奇的是&#xff0c;在2020的夏天&#xff0c;它们合体了&#xff01;在接到开心消消乐的brief时…

查看Nginx,Apache,lighttpd,Mysql,Php的编译参数

查看一些常见服务的在编译安装时的参数&#xff1a; 1.Nginx 编译安装时的参数 [roottest ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/0.7.65 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48) TLS SNI support disabled configure arguments: --userwww --grou…

使用原生js写ajax

// 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){if(typeof XMLHttpRequest ! "undefined"){ // 非IE6浏览器return new XMLHttpRequest();}else if(typeof ActiveXObject ! "undefined"){ // IE6浏览器var version ["MSXML2.XMLHttp…

RabbitMQ 处理过慢,原来是一个 SQL 缓存框架导致的 GC 频繁触发

一&#xff1a;背景 1. 讲故事上个月底&#xff0c;有位朋友微信找到我&#xff0c;说他的程序 多线程处理 RabbitMQ 时过慢&#xff0c;帮忙分析下什么原因&#xff0c;截图如下&#xff1a;这问题抛出来&#xff0c;有点懵逼&#xff0c;没说CPU爆高&#xff0c;也没说内存泄…