使用工具检测你的app:模拟器和真机测试 之一
在本章,你将学到下面这些内容:
模拟器和真机测试环境的不同。
内存管理是如何影响一个app的性能。
检测app的工具和技术包括:
1)基本的测试内存和性能的工具。
2)测试内存管理方面比较复杂的工具,比如内存泄露和bad access。
3)测试计算过程中性能方面比较复杂的工具,比如电池,文件加载,显示信息等。
如何把你的程序分割成更小的部分,这样能够更简单的定位性能的瓶颈。
为了提升性能,你需要非常小心的运行测试来查看问题出现在哪里。为了执行一个有用的测试,你需要知道程序或代码段可能运行慢的原因。
在一开始,你应该注意两种基本的选择:模拟器和真机环境,内存优化和性能优化之间的平衡。
首先,你需要知道模拟器和真机环境的不同。
模拟器和真机
iPhone应用性能的主要问题是他们运行在一个受限的,处理慢的环境中。iPhone模拟器开发环境比真机环境要更快;事实上,模拟器的环境跟在mac机器上运行它一样快。
因此,你可能会非常的惊讶,当你的程序在模拟器上运行比较快,而在真机上比较慢。我观察到很多人抱怨在手机网络上应用比较慢。在某些情况下确实如此。但是,在很多情况下app的性能可能会下降很多,由于代码实现本身,而不是网络的问题。因此,用基本的工具何标准环境仔细的测试你的app,会使得你的app在性能和用户体验上更加自信。
为了演示模拟器和真机的不同,我在模拟器和真机上测试了一个程序,结果让人吃惊。
在模拟器上花了0.5秒完成了主要的计算。
在真机上同样的计算花了7秒。
程序很简单:我用两个数组中进行一个简单的测试,每个数组有1000个元素。然后,代码循环这两个数组,发现两个数相同就打印“hello”。在真实环境中,你可能不需要在一个数组中处理1000个元素或你可能不会选择循环一个数组来找到相同的数。但是,这不是重点。我主要是为了演示真机比模拟器运行慢的多。
这引出了我在本书中将会多次提到的一个非常重要的点:你总是需要在模拟器和真机上同时测试。那为什么不只是在真机上测试呢?因为模拟器有以下优点:
在模拟器上运行比较快,这意味着可以减少开发者被耽误的时间。
比较好测试内存泄露和内存分配问题。
内存和性能
内存和性能是不同的。内存通常是指随机存储器,它代表了你使用了多少存储空间,以及你还剩多少存储空间。性能是指你运行一个指定的功能你的app有多快。
内存可能会对性能产生巨大的影响。当你的设备有更多的RAM和更多的存储空间,你可以预加载和缓存更多的数据。相比文件存储和网络,RAM访问是非常快的。通过在RAM上预加载和缓存更多的数据,在很多情况下你可以显著的提升你的程序性能。例如,如果你的app是一个游戏,需要加载很多图片,你可以在必要的时候预加载和显示他们。从RAM中加载比从文件中加载要快10倍。
但是,内存使用好并不意味着性能就好。有一些app不需要使用很多内存;因此,如果你只是优化内存,性能可能并不会提升。反之就不好了:一个app为了达到一个比较好的性能而使用了所有的内存,很快app就会把内存耗尽。
因此,你应该总是要对内存和运行时性能进行仔细的测试,确保在内存使用和运行时性能有一个好的权衡。
转载于:https://blog.51cto.com/ikinglai/1263879
使用工具检测你的app:模拟器和真机测试 之一相关推荐
- app测试模拟器和真机区别
转载1: 平时测试过程中,经常有组内同学们问,使用模拟器测试完之后,是否可以代替真机的兼容测试了. 先来看看模拟器和真机的直观区别: 多点触摸(比如两个手指放大文本字体大小) 网络通话(没有真实的呼入 ...
- 制作模拟器和真机通用静态库
通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,因为Mac和iPhone的CPU不同,才造成了这种情况. 为了模拟器与真机之间切换调试的方便,制作通用版本非常有必要. 现在有 ...
- Appium移动端自动化测试--搭建模拟器和真机环境一
目录 模拟器--安装Android Studio及Android SDK 模拟器--更改VDM默认存储路径 真机(Android)环境设置 真机--开启开发者模式 真机-- 打开USB调试 真机连接- ...
- 移动端自动化测试appium(6)--搭建模拟器和真机环境
模拟器–安装Android Studio及Android SDK 推荐直接安装Android Studio,然后使用Android Studio安装SDK. 启动SDK Manager,安装自己所需要 ...
- Android识别模拟器,判断是模拟器还是真机
文章目录 前言 原理 禁止模拟器安装apk 代码识别 验证 最后 前言 对于android开发者来说,模拟器是开发工具,但是对用户来说,可能就是薅羊毛.找漏洞的赚钱工具. 不管是活动风控还是内容保护等 ...
- 【为什么要用真机】——谈模拟器与真机的差别
今天语音对话应用调试时要用两台手机,无奈模拟器打开不了app.网上查阅资料,发现我的问题应该是模拟器无法获取语音权限导致的.感觉这篇文章比较全面,分享给大家参考,同时也建议大家尽量用真机测试.转载地址 ...
- Android判断模拟器还是真机的方法
作为一个App,我们在做推广的同时,肯定会担心刷量的问题.一般常见的刷量手段就是通过安卓模拟器进行刷量. 那就会想到,怎么判断一个设备是模拟器还是真机. 先吐槽一下,百度上搜出来的都是什么垃圾答案.各 ...
- Android 判断模拟器还是真机的方法
作为一个App,我们在做推广的同时,肯定会担心刷量的问题.一般常见的刷量手段就是通过安卓模拟器进行刷量. 那就会想到,怎么判断一个设备是模拟器还是真机. 先吐槽一下,百度上搜出来的都是什么垃圾答案.各 ...
- Android开发,关于模拟器通知显示正常,真机测试真机通知无效问题
最近,小白弄一个通知,模拟器上通知显示还是正常的,但真机测试就出现通知不显示的问题,并且也不报错,嘿,可给它牛坏了. 百度半天也没解决问题,然后就在真机的应用权限设置里发现,原来通知权限是默认关闭的, ...
最新文章
- 8. 进制转化的函数
- MFC版本链表演示程序
- ORACLE TO_CHAR的一个问题
- 一、项目管理框架【PMP 】
- java iterator_Java ArrayDeque iterator()方法与示例
- 城市大轰炸(洛谷P1830题题解,Java语言描述)
- Python爬虫利器 ——代码转换
- linux数组fortran,[转载]FORTRAN中数组的定义及使用
- NCBI获取指定区域基因序列及其引物设计
- 【机器人学】机器人运动学基础
- 解决 前端Failed to decode downloaded font
- CAD文字快速添加框
- 堆排序(Heapsort)-全网最详细
- Alibaba(实习准备)—SOFARPC学习总结
- 考研复试(控制工程专硕)及大学本科(物联网工程)知识点回顾(三)——模拟电子技术
- Android 画中画模式
- 启动nginx报错/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot ope
- strm().filter().collect()和stream().map().collect()的作用
- 期末复习测试大题浅析(吐槽)
- 电商项目商品详情页架构设计