Android游戏,电池使用率非常高

时间:2013-06-23 22:25:56

标签: android battery 2d-games

我正在编写简单的游戏。绘制/更新抛出实时模型,因此CPU总是高负载。线程看起来如此:


    @Override
    public void run() {
        while (true) {   
            if (!mRun) {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {};
            } else {
                Canvas c = null;
                try {
                    c = mSurfaceHolder.lockCanvas(null);
                    synchronized (mSurfaceHolder) {
                        ..update game objects..
                        if (canvas != null) {
                        ..draw to canvas...
                        }
                    }
                } finally {
                    if (c != null) {
                        mSurfaceHolder.unlockCanvasAndPost(c);
                    }
                }
            }                
        }
    }

问题是工作所以应用程序会吃电池。在我的Galaxy S2上,它在PC USB的同一时刻消耗得比充电快。

我做错了什么,或者游戏没问题?

2 个答案:

答案 0 :(得分:3)

从PC中的USB端口充电将非常慢(USB也在传输数据,而不仅仅是电源)。我认为游戏使用的电量比连接到PC USB端口时的电量要好。

答案 1 :(得分:1)

手机的放电电流取决于它的作用(特别是应用正在做什么)。通常屏幕消耗大部分功率,应用程序的颜色(白色与黑色是一个很大的区别),亮度级别会产生很大的影响。如果你同时消耗CPU(可能还有数据),肯定会产生影响。

在我们对“愤怒的小鸟”进行性能分析的测试中,我们已经看到它表现得非常好并且不会消耗太多的功率(包括CPU消耗)。而且它们通常也使用稍暗的颜色。而且他们的数据消费通常只有在有广告的时候(这是一个很大的消费者,而且我们注意到他们最近确实增加了广告)。

我会检查您的应用的哪些组件正在耗尽电池,看看它是否可以进行优化。如果您有兴趣,请尝试使用像Little Eye这样的分析工具(免责声明:我是构建此工具的公司的联合创始人),以查看应用程序的哪个部分(或部件使用情况)耗尽电池。