Android的内存优化「建议收藏」

Android的内存优化

大家好,又见面了,我是全栈君。

腾讯公司在五月三十一日开展【腾讯Bugly移动开发人员沙龙】大会。大会上面叶方正老师解说了 关于Android的内存优化的问题,只是我感觉叶老师许多其它的站在了測试的角度上去解释了这一方面,叶老师给我们介绍了许多的工具去測试Android应用在各种情况下的内存占用情况。只是好像对我们开发的帮助并非特别的大。我在这里总结叶老师所说的重点和自己对内存优化的一些理解,希望可以对大家有所帮助。


Android应用优化主要集中在内存和UI流畅度上。从内存占用与泄露、UI流畅度的帧数和响应时间到IO的堵塞式响应时间等。
内存优化

首先。为什么要优化内存?主要体如今OOM(Out of Memory)和导致UI不流畅上。对于手机来说。内存是一个很稀缺的资源,即使是如今普遍拥有着很大内存的Android手机也不可避免。

而造成内存泄露或者说引发OOM主要是由于下面四个原因:

  • 1、万恶的Static(通常见到在单例模式)
  • 2、大胖子bitmap位图
  • 3、多线程生命周期过长。导致本该释放的资源没有的到释放
  • 4、变量生成没有被关闭(I/O流。Cursor)

这些原因都会导致我们的应用程序内存被大量的占用。知道了原因之后自然也就有个处理的办法。

应用之中假设存在大量的static变量。假设这些static的变量在Activity被结束的时候得不到销毁。那么它就会一直占用着内存空间,特别是一些数组。假设这些静态变量许多的话。那么它占用的内存就是一个很可观的数目。那么解决的方法是什么那?
1、除非这个变量会在整个应用之中被大量的反复使用
2、假设这个变量以后都不会再被使用到了。那么记得把他销毁掉

而对于bitmap位图我们可以通过BitmapFactory.Options的inSampleSize属性使他占用更小的空间。

第三个第四个问题,就仅仅能自己记得释放他。比方在onStop()或者onDestory()方法里面把它滞空。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116513.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月20日 下午12:00
下一篇 2022年1月20日 下午12:00


相关推荐

  • deb 安装_Ubuntu下安装软件的几种方法

    deb 安装_Ubuntu下安装软件的几种方法1,使用UbuntuSoftware进行软件安装打开UbuntuSoftware应用程序,查找要安装的软件并进行安装,方法与使用软件管家在Windows下安装软件的过程一致。2,使用APT(软件包管理系统)进行软件安装apt是一款安装包管理工具,在Ubuntu下,我们可以使用apt命令进行软件包的安装、删除等操作。例如使用apt-get安装git软件,打开终端,输入sudoapt-…

    2022年5月31日
    39
  • 全网最硬核解读计算机启动原理

    全网最硬核解读计算机启动原理

    2020年11月20日
    203
  • 【已解决】node.dll丢失怎么办?计算机丢失node.dll是什么意思?

    【已解决】node.dll丢失怎么办?计算机丢失node.dll是什么意思?node dll 丢失怎么办 计算机丢失 node dll 是什么意思 大家都知道 node dll 是存放在 windows 系统下的一个非常重要的 dll 文件 DLL 英文全称 DynamicLinkL 中文意思是 动态链接库 DLL 是一个作为共享函数库的可执行文件 它使进程可以调用不属于本身可执行代码中的函数 函数的可执行代码位于一个独立的动态链接库文件中 这样可以节省内存和磁盘的存储空间 同时使程序更易于升级对于系统的稳定性至关重要 缺少它可能会造成部分软件或游戏无法正常运行 缺少该文件 当你运行软件的

    2026年3月18日
    3
  • Mysql端口设置

    Mysql端口设置1.查看showglobalvariableslike’port’;2.修改修改配置文件(注意重启MySQL)

    2022年10月3日
    5
  • 动态规划之背包问题——01背包

    动态规划之背包问题——01背包文章目录一、01背包问题二、二维dp数组解决01背包问题1.确定dp数组以及下标的含义2.确定递推公式3.dp数组初始化4.确定遍历顺序5.举例推导dp数组三、一维dp数组解决01背包问题1.确定dp数组以及下标的含义2.一维dp数组的递推公式3.一维dp数组如何初始化4.一维dp数组遍历顺序5.举例推导dp数组四、leetcode例题讲解01背包问题416.分割等和子集1049.最后一块石头的重量II494.目标和474.一和零背包问题中我们常见的就是01背包和完全背包。在l

    2022年7月26日
    11
  • 模型范围/可用模型列表

    模型范围/可用模型列表

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号