本周公司项目解决内存泄漏,使用Android studio profiler工具进行分析。

在人工monkey测试点击管理页面各项菜单后,工具内存查看页面看到内存有增长不是释放的情况。但是dump后未发现哪个页面 或明确的对象没有释放。多次对比dump发现内存并没有明显增加。

持续几天未找到原因,后仔细发现,增加的内存属于Others部分,该部分官方解锁是:未知分类的不。这部分在dump后也没有明确的对象对应,因此更难找到内存泄漏的地方了。如下图

今天在朋友的帮助下得到了解决。朋友提醒可能是raw资源泄漏,然后就是仔细观察什么操作会使Others部分增加。根据该思路分析,发现是点击菜单都会有点波动,说明是每个菜单的公用逻辑出了问题。仔细分析发现公用逻辑就是切面点击拦截事件,果断去掉拦截,测试发现正常。然后再认真分析拦截里面的逻辑:播放按键音,记录日志,放重复点击三个主要逻辑。想到朋友提醒的raw资源,果断怀疑是播放按键音的问题。进入方法查看,发现每次播放都会使用系统的 SoundPool load一次按键音资源,然后播放。播放结束未释放。找到根本原因,改之。

总结本次问题难发现原因是第一次遇到系统加载raw等资源类导致的oom,其增长的内存可能无法分类,放在了Others里面,dump也无法明确发现。

PS:若有其他更好的方式揪出此类泄漏点,请留言互相讨论学习。

Android Others部分内存泄漏 OOM分析相关推荐

  1. Android常见的内存泄漏分析

    内存泄漏原因 当应用不需要在使用某个对象时候,忘记释放为其分配的内存,导致该对象仍然保持被引用状态(当对象拥有强引用,GC无法回收),从而导致内存泄漏. 常见的内存泄漏源头 泄漏的源头有很多,有开源的 ...

  2. Android内存泄漏的分析和避免

    内存泄漏 Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同时防止未释放的内存把堆栈(heap)挤爆而导致程序 ...

  3. Android中的内存泄漏

    ** Android中的内存泄漏 ** Android中的内存泄漏: 概念:程序在申请内存后,当该内存不需再使用但却无法被释放 & 归还给程序的现象,对应用程序的影响,容易使得应用程序发生内存 ...

  4. 谈谈android中的内存泄漏

    写在前面 内存泄漏实际上很多时候,对于开发者来说不容易引起重视.因为相对于crash来说,android中一两个地方发生内存泄漏的时候,对于整体没有特别严重的影响.但是我想说的是,当内存泄漏多的时候, ...

  5. RK3588 Android12 DMABUF内存泄漏问题分析

    RK3588 Android12 DMABUF内存泄漏问题分析 什么是DMABUF DMABUF是多媒体设备之间共享内存的一种特定buffer结构,不同设备可以通过DMABUF的fd进行跨进程共享内存 ...

  6. 关于Android应用程序内存泄漏 你需要知道的一切

    关于Android应用程序内存泄漏 你需要知道的一切 原文:https://blog.aritraroy.in/everything-you-need-to-know-about-memory-lea ...

  7. android 内存分析 郭霖_android 内存泄漏(OOM)问题总结

    对于Java来说,就是new出来的Object 放在Heap上无法被GC回收 Paste_Image.png Context Context Context类本身是一个纯abstract类,它有两个具 ...

  8. android内存泄漏原因分析,Android Studio3.6的内存泄漏检测功能 VS LeakCanary

    2020年2月,谷歌发布了Android Studio 3.6版.它包括一个新的"内存泄漏检测"功能.这是否意味着我们不再需要流行的内存泄漏检测库"Leak Canary ...

  9. android内存泄漏原因分析,android 内存泄漏问题

    内存泄露问题在一些压力测试的场景很容易暴露,例如一些常用应用场景反复操作(eg:反复切换前后摄像头,反复进入退出相机应用.压力拍照等等). 内存泄露一般表现为: ①内存分配释放,导致进程空间虚拟地址被 ...

最新文章

  1. usaco Overfencing 穿越栅栏(BFS)
  2. 基于python的证件照_20行代码教你用python给证件照换底色的方法示例
  3. java网页爬虫xml_基于webmagic的java网页爬虫,抓取网页指定节点,然后使用dom4j分析xml数据...
  4. js模块化编程之CommonJS和AMD/CMD
  5. Kafka Eagle 源码解读
  6. (转载)TL-WN725N V3无线网卡驱动移植与wireless工具wpa_supplicant-2.6
  7. Angular中使用双向数据绑定操作表单的input、checkboc、radio、select、textarea实现简单的人员登记系统实例
  8. Java Excel导出
  9. pagerank数据集_从小白视角理解数据挖掘十大算法
  10. python word2vec 移植_真实资讯语料下的Word2Vec的迁移实践:Tag2Vec
  11. java编译器源码详解_已更新至第8章 | LLVM 编译框架详解
  12. 2017-2018-2 1723《程序设计与数据结构》第三周作业 实验一 总结
  13. 移动办公平台2015年年度盘点
  14. Oracle数据库实验报告六 PL/SQL基础
  15. 人工智能电力行业应用,人工智能的需求分析
  16. 修改oracle用户资源限制,oracle用户登陆失败次数限制修改
  17. 如何利用云流送(Cloud Streaming)构造一个全三维、沉浸式的数字化虚拟景区
  18. 开源免费的C/C++网络库 c/c++ sockets library 七剑下天山
  19. play框架使用起来(6)
  20. html3d轮播图片效果,CSS3,3D效果轮播图

热门文章

  1. 用Python批量修改hex文件的内容
  2. bzoj1754: [Usaco2005 qua]Bull Math
  3. 2022跨年烟花代码、用Python送你一场跨年烟花秀
  4. 聊天室案例,模仿QQ,微信群聊
  5. HDFS Router-based Federation
  6. Stanford cs140 Pintos Project2实验目标
  7. zjs-my-diary-20191227
  8. The Earth Rover
  9. 中医四季养生法 冬季补肾汤
  10. 利用清华镜像快速安装Python第三方库