什么是内存泄漏?
程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。
内存泄露原因分析
垃圾回收机制
垃圾回收(garbage collection,简称GC)可以自动清空堆中不再使用的对象。在JAVA中对象是通过引用使用的。如果再没有引用指向该对象,那么该对象就无从处理或调用该对象,这样的对象称为不可到达(unreachable)。垃圾回收用于释放不可到达的对象所占据的内存。
内存泄漏对应用影响
内存泄漏对于app没有直接危害,即使有发现内存泄漏的情况,也不一定会引起app崩溃
但是
内存得不到释放,慢慢地会造成app内存溢出,导致崩溃
内存泄漏同时可能会触发系统频繁GC,会导致系统性能问题(卡顿不流畅)
测试场景选择
新页面打开
横竖屏切换
滑动屏幕
测试方式
有源码+Android Studio环境,借助Profiler --开发用得比较多
无源码,有debug版本的APK包
DDMS工具
ADB命令
adb shell dumpsys meminfo packageName adb shell am dumpheap packageName filePath
Leakcanary + Monkey(推荐)最优解 真的好用!
需要软件测试相关相关资料提升自我的朋友可以点击下面免费领取包含了基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试,面试时面试官必问的知识点,精选简历的大礼包哟