Tom*_*m R 74 java optimization android battery
我正在为Android开发游戏.它使用表面视图并使用提供的标准2D绘图API.当我第一次发布游戏时,我正在做各种愚蠢的事情,比如在每个帧上重新绘制9个补丁,同样用文本.我已经通过绘制到Bitmap对象并在每个帧中绘制它们来优化大部分内容,只在需要时重新绘制到Bitmap对象上.
我之前收到过关于电池耗尽的投诉,并且在我修改之后,我想知道(科学地)我是否做了任何改进.不幸的是,我没有任何先前的数据,因此将性能与其他游戏进行比较将是最有用的.
我一直在运行Traceview,并使用它的结果主要是为了识别CPU耗时的方法.
那么 - 确定我的应用程序电池性能的最佳方法是什么,以及什么是良好的基准测试?
我知道我可以通过设置查看不同应用程序的%s,但这又是不科学的,因为我从中得到的数字也取决于所有其他应用程序中发生的情况.我查看了(大部分)谷歌的文档,虽然消息很清楚,你应该节省电池(并且它偶尔提供了如何提示),但几乎没有迹象表明我如何衡量我的应用程序是多么好执行.我想要的最后一件事是更多关于Android Market中电池耗尽的抱怨!
提前致谢.
感谢您提供的所有有用的建议/意见.我真正想知道的是我如何使用来自Traceview的数据(即:在游戏的每个帧上花费的CPU时间)来确定电池使用情况(如果可能的话).回想我原来的问题,我可以看到我有点模糊.再次感谢.
Kin*_*lmn 41
这是我的建议:
我在使用PowerTutor开发我的应用程序(有时以低于25ns的速率轮询传感器)时观察功耗.看看它,听起来这可能是你正在寻找的,该应用程序告诉你你在mW,J或相对于系统其他部分使用的是什么.此外,结果由CPU,WiFi,显示器(安装其他无线电)分解.唯一的问题是它是针对特定手机型号编写的,但我在EVO 4G,Galaxy S(Sprint Epic)和Hero上使用它取得了巨大成功.
祝你好运,-Steve
Wro*_*lai 20
您的游戏可能会耗尽电量.我认为这取决于几个原因,其内容如下:
Thread.您是否限制了FPS以使CPU跳过不必要的迭代?由于您正在使用2D我假设您正在使用SurfaceView.60 FPS足以用于实时游戏.Thread,当你的应用程序终止.因此,当您的应用程序不活动时,您会重复代码.wait();时onPause?人们评论说你的游戏正在泄漏电池可能是因为你的应用程序没有被使用.更多-否则,因为在Android Market每场比赛水渠电池这将是奇怪的或更少.
如果您正在尝试衡量"比以前的版本有所改进",我认为与其他游戏进行比较并不合理!除非这两场比赛做到了确切的事情,否则这是不科学的.
相反,我会从源代码控制中获取应用程序的先前版本,运行它,测量它,然后使用最新代码运行它并再次进行比较.
为了进行比较,您可以使用命令行工具"top"(如果您的手机已植根,则可以在busybox中使用,不确定它是否附带有手机.可能不是).这将显示您的进程的CPU使用率百分比.
“我知道我可以通过设置查看不同应用程序的%s,但这又是不科学的,因为我从中得到的数字还取决于所有其他应用程序中发生的情况。”
我要做的第一件事就是寻找一个已有的应用程序,该应用程序具有已知的、一致的电池使用情况,然后您可以使用它作为参考来确定您的应用程序的使用情况。
如果没有这样的应用程序,您将不得不希望从其他人那里得到答案......如果您成功制作了这样的应用程序,我建议出售您的新“电池使用参考”应用程序,以便其他程序员可以使用它。:)
| 归档时间: |
|
| 查看次数: |
18794 次 |
| 最近记录: |