常见的测试方法包括Monkey/UIAutomator类的常规压力测试,大数据/操作的峰值压力测试,长时间运行的稳定性测试等。

前提:

  测试准备:版本是纯净版本,不应该附加多余的log和调试用组件。

一,测试场景

1.当前新开发或改动的某项功能,包括功能开启前,运行,结束后等测试点。

2.另一类是整体性能,考察应用的常见场景,再综合使用下的性能指标,包括启动后待机,切换到后台,执行主要功能,以及反复执行个功能后。

二,测试重点:

1.包含了图片显示的页面

2.网络传输大量数据

3.需要缓存数据的场景

三,测试用例

1.结合场景比较操作前后或不同版本的内存变化

2.显示多张图片的前台进程

3.多个场景来回切换

4.长时间运行进程的内存增长

四,dalvik heap的常见问题

1.随着功能的反复执行,heap内存一只再持续增长,这种情况通常是出现了内存泄漏,适合用leak-canary等泄漏检查工具进行测试分析。

2.代码执行时出现了频繁的GC,heap alloc内存大幅度波动。这种情况通常时分配了许多临时变量或数组,随后又被迅速回收,这种情况再确定具体场景后适合使用heap viewer/allocation tracker工具来查看具体分配的对象。

3.每次启动应用后,heap内存相比以前版本稳定增长。这种情况通常出现再启动后待机或使用某功能后,可能时有新功能即代码改动引入的固定内存增长。这种情况适合获取heap dump后进行多版本或功能使用前后的对比,能够迅速找到增长原因。

4.heap alloc变化不大,但进程的dalvik heap pss内存明显增加。这种情况比较少见,时由于分配了大量小对象造成的内存碎片。

五,dalvik heap的原理

待完善

移动App性能评测与优化-Android内存测试 ,DVM原理的更多相关文章

  1. 移动APP性能评测与优化

    本文是<移动App性能评测与优化>的读书笔记. PS:说是读书笔记,其实就是摘录. 移动App的性能测试主要包括:内存使用情况.电量消耗.功能的流畅度等: 1. 内存 1.1 内存的主要组 ...

  2. 《移动App性能评测与优化》读书笔记

    第一章:内存   内存的主要组成索引: Native Heap:Native代码分配的内存,虚拟机和Android框架本身也会分配 Dalvik Heap:Java代码分配的对象 Dalvik Oth ...

  3. Android App性能评测分析-流畅度篇

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  4. Android App 性能评测与调优

    要点: 1. 内存优化的目的以及工具介绍 2. Android APP 内存的主要问题分析与总结 3. UI 绘制原理以及量化工具 - UI 流畅度的主要问题分析以及 UI 绘制原理. 4. 如何获取 ...

  5. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...

  6. 【App性能监控】:Android studio环境的搭建(以及遇到个各种坑)

    今天搭建app性能测试环境,使用的是android studio的Android Device Monitor抓取trace日志分析: 1,下载最新的android studio安装,这一步没啥问题: ...

  7. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  8. Android 内存泄露测试数据处理--procrank,setprop,getprop(转)

    1.Android内存测试常用的几个概念. VSS--virtual set size 虚拟耗用内存(包含共享库占用的内存)RSS--Resident set size实际使用的物理内存(包含共享库占 ...

  9. android app性能优化大汇总(内存性能优化)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

随机推荐

  1. C++ ActiveX开发的问题讨论

    最近在一个项目中需要开发一个ocx插件,在开发过程中发现了一些问题,所以在此记录一下. 我想讨论的主要是函数的参数问题,我分别使用c++,JavaScript,C#对ocx插件做了测试,发现不同的参数 ...

  2. AppCrawler运用总结

    一.环境 1.环境准备:安装安卓SDK + 真机 + appcrawler-2.1.3.jar 在放 appcrawler-2.1.0.jar 的文件夹下执行以下命令: 1.生成yml的demo:ja ...

  3. jquery swiper自定义pagination的方法

    jquery swiper自定义pagination的方法<pre><script>var swiper = new Swiper('.swiper-container', { ...

  4. .net webapi跨域 web.config配置

    <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...

  5. [基础]C++:名字的作用域

    每个名字都有自己的活动空间,同一个名字在不同的作用域可能指向不同的实体. 作用域:通常是以{}为分隔. 名字的有效区域开始于名字的声明,以声明语句所在的末端为结束. #include<iostr ...

  6. SQL学习-SQL Server

           

  7. mysql 免费的图形管理工具

    在学习go语言开发时,使用了mysql 使用了两天mysql命令行,感觉实在是无法忍受, 找到了一个免费好用的 图形数据库管理工具SQLyog Professional 版本: 注册名:luoye25 ...

  8. C# HtmlAgilityPack+Selenium爬取需要拉动滚动条的页面内容

    现在大多数网站都是随着滚动条的滑动加载页面内容的,因此单纯获得静态页面的Html是无法获得全部的页面内容的.使用Selenium就可以模拟浏览器拉动滑动条来加载所有页面内容. 前情提要 C#HtmlA ...

  9. TFTP(Trivial File Transfer Protocol,简单文件传输协议)

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小.这时候有人可能会纳闷,既 ...

  10. go语言实现分布式锁

    本文:https://chai2010.cn/advanced-go-programming-book/ch6-cloud/ch6-02-lock.html 分布式锁 在单机程序并发或并行修改全局变量 ...