Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不需要物理设备的情况下检查Android应用程序的速度?_Java_Android_Optimization_Mobile_Profiling - Fatal编程技术网

Java 在不需要物理设备的情况下检查Android应用程序的速度?

Java 在不需要物理设备的情况下检查Android应用程序的速度?,java,android,optimization,mobile,profiling,Java,Android,Optimization,Mobile,Profiling,我正在为Android编写一个游戏。我希望尽可能多地瞄准设备。我知道Droid用户购买了大约50%的应用程序,其余的是G1和HTC设备的混合 到目前为止,我一直在模拟器中测试我的应用程序,模拟Droid手机(我的速度大约为40 fps)和实际的Droid手机(我的速度大约为60 fps) 我想知道我的应用程序在较慢的设备(如G1)上运行的速度有多快。除了自己拿一个G1或者让G1的人帮我测试之外,我还有什么办法可以做到这一点吗 例如,是否有任何方法可以使用emulator大致了解它在G1上的运行情

我正在为Android编写一个游戏。我希望尽可能多地瞄准设备。我知道Droid用户购买了大约50%的应用程序,其余的是G1和HTC设备的混合

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

我想知道我的应用程序在较慢的设备(如G1)上运行的速度有多快。除了自己拿一个G1或者让G1的人帮我测试之外,我还有什么办法可以做到这一点吗

例如,是否有任何方法可以使用emulator大致了解它在G1上的运行情况

是 除此之外,我还有别的办法吗 自己找一个G1或者问别人 用G1s帮我测试一下

今天不行

对于简单的“慢了50%”答案来说,变量太多了。例如,DROID有浮点硬件(FPU),而G1没有。如果你正在做大量的浮点运算,DROID和G1之间的差异将大于相对CPU速度所显示的差异

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

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

现在,如果有一个工具可以测量你的应用程序使用了多少特定功能(例如,某些OpenGL操作),以及一个不同设备在执行这些操作时的表现的数据库,你也许能够做出一个相当准确的答案。唉,这些都不存在,阿福。也许有一天它会存在,这是由一个众包数据库或其他什么提供的


在此期间,你将不得不做游戏开发者在硬件不同的其他平台(如Windows)上所做的事情——测试一些实际配置,并制定一些“最低”和“推荐”硬件级别。

你看过了吗?

@DrEmulator:+1,我想知道Android的情况。大约1.5到3年前,我在J2ME/C++/Obj-C手机领域签了一份合同:Java、Brew和iPhone的游戏和应用程序开发(我记得我们得到的第一台iPhone)。可悲的是,我们的“测试”不容易被现有的模拟器重新创建:我们有成百上千种不同的手机(包括一些预发布的手机),我们通过自我介绍来了解它们的性能。然后我们有了自己的仿真器,大致可以重新创建各种设备的“速度”。很有趣:)另外,别忘了还有像DeviceAnywhere和Perfecto Mobile这样的服务,它们旨在让您远程访问硬件。不时会有免费访问的交易——例如,SonyEricsson提供7小时免费访问Perfect Mobile的机会,感谢您提供的信息!我没有做任何复杂的事情。我只是画了60多个小精灵一帧(没有OpenGL),每个精灵都是通过一些浮点运算控制的(例如点积、距离计算、碰撞检测)。我通常听说模拟器甚至比在G1上运行还要慢。我正在尝试评估我在Droid上获得的60多帧每秒的图像效果(在游戏过程中目标是30帧每秒),但我希望它也能在G1上工作。关于G1与emulator/Droid相比能应付什么,有什么粗略的建议吗?“我通常听说emulator比在G1上运行还要慢”——这取决于你在什么平台上运行emulator,但是,是的,emulator很慢。它必须将ARM操作码转换为Intel操作码等等。“与这里的模拟器/机器人相比,G1能应付什么,有什么粗略的建议吗?”同样,很难说。DROID的有效CPU速度是DROID的2倍,但我不知道图形加速会对问题产生什么影响,更不用说在Android操作系统发布之间对Dalvik运行时的可能改进了。我希望我不是在兜圈子,但是:我在模拟器上的速度是40fps,在DROID上的速度是60+fps。我没有做任何让浮点运算和图形运算费力的事情,所以我预测G1的速度将在40到50 fps之间,因为G1应该比模拟器有更好的性能。作为经验法则,这似乎是正确的吗?我不是在要求保证,只是一个粗略的指导,直到我用更多的设备做最后的测试。如果有一种“模仿G1”模式,并能从中获得粗略的计时,那就太好了。