无需物理设备即可检查 Android 应用程序的速度?

Posted

技术标签:

【中文标题】无需物理设备即可检查 Android 应用程序的速度?【英文标题】:Checking speed of Android apps without needing physical devices? 【发布时间】:2010-02-23 09:21:04 【问题描述】:

我正在为 android 编写游戏。我想针对尽可能多的设备。我知道 Droid 用户购买了大约 50% 的应用程序,其余的则是 G1 和 HTC 设备的混合体。

到目前为止,我一直在模拟 Droid 手机(我得到大约 40 fps)以及实际 Droid 手机(我得到大约 60 fps)的模拟器中测试我的应用程序。

我想知道我的应用在 G1 等较慢设备上的运行速度。除了自己获得 G1 或让 G1 的人为我测试之外,我还有什么办法可以做到这一点?

例如,我有什么方法可以使用模拟器大致了解它在 G1 上的运行情况?

【问题讨论】:

@DrEmulator:+1,我也想知道 Android。 1.5 到 3 年前左右,我在手机的 J2ME/C++/Obj-C 领域做了一些工作:Java、Brew 和 iPhone 的游戏和应用程序开发(我记得我们得到的第一部 iPhone)。遗憾的是,在我们的案例中,现有的模拟器无法轻易地重新创建“测试”:我们实际上有成百上千种不同的手机(包括一些预发布的手机),我们对自己进行了分析以了解它们的性能。然后我们有自己的模拟器来近似地重新创建各种设备的“速度”。很有趣:) 【参考方案1】:

是 除此之外我还有什么办法可以做到这一点 自己获得 G1 或询问他人 让 G1 帮我测试一下?

今天不行。

对于简单的“它慢 50%”的答案,变量太多了。例如,DROID 具有浮点硬件 (FPU),而 G1 则没有。如果您进行大量浮点计算,DROID 和 G1 之间的差异将大于相对 CPU 速度所显示的值。

同样,板载闪存、图形硬件加速等的访问速度都可能在与 CPU 速度无关的方面有所不同。而且,不同的应用程序会以不同的方式使用这些功能——您的应用程序可能全部从 RAM 运行,而其他应用程序则不断地从板载闪存加载(或者更糟糕的是,从 SD 卡加载,其速度差异更大)。

从性能的角度来看,模拟器与真实硬件几乎没有相似之处。例如,根本没有图形硬件加速。使用模拟器测试你的游戏是否可以运行是一回事;用它来衡量性能对我来说似乎毫无意义。哎呀,我无法让模拟器在四核 PC 上可靠地播放视频。

现在,如果有一个工具可以衡量您的应用使用某些功能(例如,某些 OpenGL 操作)的程度,以及不同设备在执行这些操作时的执行情况的数据库,您或许可以得出一个相当准确的答案.唉,这些都不存在,AFAIK。也许有一天它会存在,由众包数据库或其他东西提供。

在此期间,您最终将不得不像游戏开发人员在其他硬件不同的平台(例如 Windows)上所做的那样——测试几个实际配置并制定一些“最低”和“推荐的”硬件级别。

【讨论】:

另外,别忘了还有一些服务,如 DeviceAnywhere 和 Perfecto Mobile,旨在让您远程访问硬件。不时有免费访问优惠 - 例如,索尼爱立信通过bit.ly/coUR5D提供7小时免费访问Perfect Mobile@ 感谢您的信息!我没有做任何复杂的事情。我只是在一帧中绘制 60 多个小精灵(没有 OpenGL),每个精灵都使用一些浮点计算(例如点积、距离计算、碰撞检测)来控制。我通常听说模拟器比在 G1 上运行还要慢。我试图衡量我在 Droid 上获得的 60+ fps 有多少可以放入图形效果中(在游戏过程中瞄准大约 30fps),但我希望它也能在 G1 上工作。与这里的模拟器/Droid 相比,G1 可以应对什么粗略的建议? “我通常听说模拟器比在 G1 上运行还要慢”——这取决于你在什么上面运行模拟器,但是,是的,模拟器很慢。它必须将 ARM 操作码转换为 Intel 操作码等。 “与这里的模拟器/机器人相比,对于 G1 可以应对的问题有什么粗略的建议吗?”再说一次,很难说。 DROID 具有 2 倍的有效 CPU 速度,但我不知道图形加速将如何影响问题,更不用说在 Android 操作系统版本之间对 Dalvik 运行时的可能改进了。 我希望我不会绕圈子,但是:我在模拟器上获得 40fps,在 Droid 上获得 60+fps。我没有做任何对浮点和图形征税的事情,所以我预测我将在 G1 上获得 40 到 50 fps,因为 G1 应该比模拟器有更好的性能。根据经验,这似乎是正确的吗?我不要求保证,只是一个粗略的指导,直到我用更多的设备进行最终测试。如果有一个“模拟 G1”模式并通过某种方式从中获取粗略的时间,那就太好了。【参考方案2】:

你看过Device Anywhere吗?

【讨论】:

以上是关于无需物理设备即可检查 Android 应用程序的速度?的主要内容,如果未能解决你的问题,请参考以下文章

Android 4.4:低功耗蓝牙;无需扫描 BLE 设备即可连接

iOS 和 Android 无需连接即可访问的蓝牙设备是不是有唯一标识符?

无需用户干预即可自动更新 Android 应用程序

仅在物理设备而非模拟器上运行 Android 应用程序

无需拔下插头即可重新连接 USB 设备 (ACR122U)

无需硬编码访问密钥即可从 android 应用程序访问 AWS S3