手机性能测试课件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android 手机性能测试 测试工具 DDM(S Dalvik Debug Monitor Service ) 安装与配置 1、 首先安装 JDK,1.5 以上的版本(目前 java vuser 不支持 JDK1.7 ) 2、 在安装完 JDK 后,就需要下载及安装 Android SDK ,即: android-sdk-windows ,压缩 包大约有 551M左右 3、 解压缩 android-sdk-windows ,放在 C盘的根目录下,配置系统变量 path 的值为: C: \android-sdk-windows\tools 启动 DDMS 1、 可以在开始 -- 运行中进入 DDMS 2、 也可以在 C: \android-sdk-windows\tools 目录下启动 ddms.bat 连接 DDMS 1、 使用数据线连接安卓系统的手机,确认手机是处于“ USB 调试”模式。 a) 在手机上按下“ Menu”键,在弹出的菜单中选择“ Setting (设置)”; b) 选择“应用程序”; c) 在此界面勾选“未知来源”,然后选择“开发”; d) 勾选“USB调试”,“保持唤醒状态”; 2、 在 ddms的左边框中会显示手机已经打开的应用程序 (APP)进程,如果不显示,可以多连 接几次,或者换个手机试 操作 DDMS 1、 点击选中想要监测的进程,比如 system_process 进程; 2、 点击选中 Devices 视图界面中最上方一排图标中的“ Update Heap”图标; 3、 点击 Heap视图中的“ Cause GC”按钮; 4、 此时在 Heap视图中就会看到当前选中的进程的内存使用量的详细情况。 分析 DDMS 如何才能知道我们的程序是否有内存泄漏的可能性呢。这里需要注意一个值: Heap视图中 部有一个 Type 叫做 data object ,即数据对象,也就是我们的程序中大量存在的类类型的 对象。在 data object 一行中有一列是“ Total Size ”,其值就是当前进程中所有 Java 数 据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断: 1、 不断的操作当前应用,同时注意观察 data object 的 Total Size 值; 2、 正常情况下 Total Size 值都会稳定在一个有限的范围内,也就是说由于程序中的的代 码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成 很多对象,而在虚拟机不断的进行 G C的过程中,这些对象都被回收了,内存占用量会 会落到一个稳定的水平; 3、 反之如果代码中存在没有释放对象引用的情况,则 data object 的 Total Size 值在每 次 GC后不会有明显的回落,随着操作次数的增多 Total Size 的值会越来越大,直到到 达一个上限后导致进程被 kill 掉。 4、 此处已 system_process 进程为例, 在我的测试环境中 system_process 进程所占用的内 存的 data object 的 Total Size 正常情况下会稳定在 2.2~2.8 之间,而当其值超过 3. 55 后进程就会被 kill 掉 Android 程序的内存泄漏与规避方法 造成 Android 应用程序内存泄漏的原因 1、引用没释放造成的内存泄露 a) 注册没有取消造成的内存泄漏 这种 Android 的内存泄露比纯 Java 的内存泄漏还要严重,因为其他一些 Android 程序可能引用系统的 Android 程序的对象 ( 比如注册机制 ) 。即使 Android 程序已经 结束了, 但是别的应用程序仍然还有对 Android 程序的某个对象的引用, 泄漏的内 存依然不能被垃圾回收。 b) 集合中对象没有关闭造成的内存泄漏 通常把一些对象的引用加入到了集合中, 当我们不需要该对象时, 并没有把它的引 用从集合中清理掉, 慢慢地这个集合就会越来越大。 如果这个集合是静态的话, 那 情况就会更严重。 2、资源对象没有关闭造成的内存泄漏 资源对象比如 Cursor 、File 文件等往往都用了一些缓冲,在不使用的时候应该及时关 闭它们,以便它们的缓冲及时回收内存。这些缓冲不仅存在于 Java 虚拟机内,还存在 于 Java 虚拟机外,如果仅仅是把它的引用设置为空 , 而不关闭它们,那么往往会造成内 存泄漏。 3、一些不良代码造成的内存压力原因如下: c) Bitmap 没有调用 recycle( ) ; d) 构造 Adapter 时,没有使用缓存的 convertView ; e) ThreadLocal 使用不当; 内存泄漏的检测及定位 1、内存泄漏的检

文档评论(0)

liuxiaoyu98 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档