我的安卓应用是否耗尽了电池电量?

2022-08-31 13:33:08

我正在为Android开发一款游戏。它使用曲面视图,并使用提供的标准 2D 绘图 API。当我第一次发布游戏时,我正在做各种愚蠢的事情,比如在每帧上重新绘制9个补丁,同样用文本。从那以后,我通过绘制到位图对象并在每帧上绘制它们来优化其中的大部分内容,仅在需要时重新绘制到位图对象上。

我以前收到过关于电池消耗的投诉,在我的修改之后,我想知道(科学地)我是否做了任何改进。不幸的是,我没有任何以前的数据,所以将性能与其他游戏进行比较是最有用的。

我一直在运行 Traceview,并且主要使用它的结果来识别 CPU 耗时的方法。

那么,确定我的应用程序电池性能的最佳方法是什么,什么是好的基准测试?

我知道我可以通过设置查看不同应用程序的%s,但这又是不科学的,因为我从中获得的数字也取决于所有其他应用程序中发生的情况。我已经浏览了(大多数)Google的文档,尽管该消息很清楚您应该节省电池(并且偶尔会给出有关如何操作的提示),但几乎没有迹象表明我如何衡量我的应用程序的性能。我最不想要的就是更多关于Android市场电池消耗的抱怨!

提前致谢。


编辑

感谢您所有有用的建议/建议。我真正想知道的是如何使用来自Traceview的数据(即:在游戏的每一帧上花费的CPU时间(以毫秒为单位)来确定电池使用情况(如果可能的话)。回过头来读我最初的问题,我发现我有点含糊不清。再次感谢。


答案 1

这是我的建议:

我在使用PowerTutor开发应用程序时观察功耗(有时以<25ns的速率轮询传感器)。检查一下,听起来可能是你正在寻找的,该应用程序会告诉你在mW,J或相对于系统其余部分使用的内容。此外,结果按CPU,WiFi,显示器(安装的其他无线电)细分。唯一的问题是它是为特定的手机型号编写的,但我在我的EVO 4G,Galaxy S(Sprint Epic)和Hero上使用它取得了巨大的成功。

祝你好运,史蒂夫


答案 2

您的游戏可能会耗尽电池电量。我认为这取决于几个原因,其内容如下:

  • 您的应用程序是一个游戏。游戏会迅速耗尽电池电量。
  • 您正在从 .您是否限制了FPS以使CPU跳过不必要的迭代?由于您正在使用2D,因此我假设您正在使用.60 FPS对于实时游戏来说就足够了。ThreadSurfaceView
  • 当应用程序终止时,您不会停止。因此,当应用程序不处于活动状态时,请重申代码。Thread
  • 您是否有一个迭代,在 期间执行?wait();onPause

评论您的游戏电池泄漏的人可能是针对您的应用程序未使用时的目标。否则,这将是奇怪的,因为Android Market上的每个游戏都会耗尽电池 - 或多或少


推荐