从 Android测试体系之内存篇

发表于:2016-7-21 09:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗测试 王政达    来源:51Testing软件测试网原创

  一、引言
  相信很多小伙伴在做Android App测试的时候都遇到过这些情况:App Crash了、APP由于内存暴涨导致OOM了、APP运行卡顿不流畅了、APP流量电量耗费过快了等。我们如何在测试阶段及时的发现并定位问题的原因呢?正所谓工欲善其事必先利其器,要解决这些问题,我们必须要利其器,而且要全方位的利:功能测试性能测试自动化测试、兼容性测试、安全测试、覆盖率测试,一个都不能少。今天我们就先从性能测试的内存谈起,以后也会逐步完善这一系列的其他部分。
  二、基本概念
  在开始我们的内存测试之前,先不要着急,让我们从最开始的地方出发,一步一步的弄清楚我们要测什么、怎么测、以及如何分析。首先了解一些相关的基本概念吧。既然我们是在Android系统上做内存测试,那么就先从Android系统的分层架构谈起吧。
  1.Android分层架构
  Android的系统从上层到底层共包括四层,分别是应用程序层、应用框架层、系统库和Android运行时和Linux内核层。
  1)应用层主要是提供核心应用程序包,如发邮件,日历等,由java语言实现;
  2)应用框架,包括窗口管理器,内容提供者,视图系统等,开发可以访问提问的api进行程序设计,由java语言实现;
  3)系统库和Android运行时也叫native层,主要是本地服务和链接库,包含了java语言所需要调用的函数和虚拟机等,c或者c++实现效率高;
  4)linux内核,提供相应的协议和驱动。
   
  那这跟我们的内存测试有什么关系呢?请大家注意上图中的dalvik virtual matchine,这是个什么东西呢,通常我们简写为DVM,现在大家是不是觉得熟悉多了,就是Android虚拟机,是Android系统中java 虚拟机,我们的程序就运行在这里面。看来我们还有必要了解一下JVM的内存模型。
   ... ...
   查看全文内容,请点击下载:http://www.51testing.com/html/09/n-3710809.html
  3.Dalvik heap和native heap
  到这里是不是有小伙伴已经在心里默默呐喊:证据呢、证据呢!不信看下图:
   
  我们先不要管笔者是如何得到的这张图(相信很多机智的小伙伴都知道这张图的来历,当然不知道也没关系,先卖个关子,让丑媳妇先躲一会),从图中可以清晰的看到heap的组成:dalvik heap和native heap。Dalvik heap是dalvik虚拟机中java代码占用的heap,那native heap呢?既然dalvik虚拟机只是整个Android系统中的一部分,那么必然会涉及到很多的本地库、第三方库调用,当调用了C程序时,占用的heap就是native heap了。
  聊到这里很多机智的小伙伴肯定已经了然于心中:所以咯,Android内存测试主要就是测dalvik heap和native heap咯(请原谅我的港台腔)。你真的很机智!
   ... ...
   查看全文内容,请点击下载:http://www.51testing.com/html/09/n-3710809.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号