Android内存监控与分析(四):内存分析实例演示

Android内存监控与分析(四):内存分析实例演示

APP测试中难免会有各种显式或者隐式的内存泄漏(Memory Leak)问题,如果不及时发现处理,可能会因为内存泄漏导致各种奇怪的问题(如,卡顿和闪退),甚至可能出现因内存不足(Out of Memory,简称OOM)而导致APP崩溃。
本文将通过实战分析内存泄漏和内存溢出问题,并在必要时说明原理或机制。结构分为四个模块,如图1:

这里写图片描述
图1 内存监控与分析

四、内存分析实例演示

(一)内存测试流程中的要点
1. 代码
通常用来进行内存测试的版本是纯净版本,不应该附加多余的Log和调试用组件。例如有些情况下,为了测试界面延迟/函数执行时间等性能,会加入一些桩点代码。在内存测试中这些代码是不必要的,它们可能会分配临时内存,引起更多的GC,导致应用出现运行缓慢、卡顿等现象。
2. 测试场景
测试场景通常有两类。一类是当前有新开发或改动的某项功能,需要对该功能进行性能测试。因此测试场景主要针对该功能组织,包括功能的开启前、运行、结束后等测试点。另一类是整体性能,考察应用的常见场景,在综合使用情况下的性能指标。测试场景应当包括启动后待机,切换到后台,执行主要功能,以及反复执行各功能后。
在各类场景中,经常作为测试重点的有:
·包含了图片显示的界面。
·网络传输大量数据。
·需要缓存数据的场景。
3. 场景转换成用例
选取了测试场景后,用例设计也要考虑内存测试的特点。一些常见的方法是:
·结合场景比较操作前后或不同版本的内存变化。
·显示多张图片的前台进程。
·多个场景来回切换。
·长时间运行进程的内存增长。
4. 执行
由于GC和广播机制的存在,应用内存通常都在不停地波动,幅度可能会达到几百KB,因此执行时需要考虑这种情况。在采集数据时,需要多次采集并计算平均值。
执行完成,我们就可以根据数据进行比较初步的分析以确定方向。一方面是我们熟悉的Dalvik Heap部分,即由Java代码直接分配的内存,可以通过IDE直接观察到使用情况,也可以使用MAT进行细致的分析。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android内存分析是指在开发过程中,对应用程序的内存使用情况进行监测和分析,以便优化应用程序的性能和减少内存泄漏的问题。下面是一些常见的Android内存分析方法和工具: 1. Android Profiler:Android Studio提供了一个内置的工具,称为Android Profiler,可用于监测应用程序的内存使用情况。它可以显示应用程序在运行时的内存分配情况,包括堆内存、Native堆内存和图形缓冲区等。 2. DDMS(Dalvik Debug Monitor Server):DDMS是Android开发工具包(SDK)中的一个调试工具,可以监测设备或模拟器上的应用程序的内存使用情况。它提供了堆转储、跟踪对象分配和垃圾回收等功能。 3. MAT(Memory Analyzer Tool):MAT是一个强大的Java堆转储分析工具,可以用于分析Android应用程序的内存泄漏问题。它提供了各种功能,如查找对象引用链、查看对象实例和计算对象占用的内存大小等。 4. LeakCanary:LeakCanary是一个开源库,专门用于检测Android应用程序中的内存泄漏问题。它可以自动监测和报告内存泄漏,并提供相关的堆转储文件和分析报告。 5. Android Studio Memory Profiler:Android Studio的内存分析器是一个强大的工具,可以帮助开发者监测应用程序的内存使用情况。它可以显示内存分配的实时数据、堆转储和内存泄漏问题。 这些工具和方法可以帮助开发者定位和解决Android应用程序中的内存问题,并优化应用程序的性能。在开发过程中,建议经常进行内存分析,以确保应用程序的内存使用情况良好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值