1

私は簡単なゲームをプログラミングしています。Draw/Update はリアルタイム モデルをスローするため、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に接続しているのと同じ瞬間に、充電よりも速く消耗します.

私は何を間違っていますか、それともゲームには問題ありませんか?

4

2 に答える 2

3

PC の USB ポートからの充電は非常に遅くなります (USB は電力だけでなくデータも転送します)。PC の USB ポートに接続したときに、ゲームが受け取っているよりも多くの電荷を使用しても問題ないと思います。

于 2013-06-23T23:07:35.943 に答える
1

電話からの放電電流は、その動作 (特にアプリの動作) によって異なります。通常、画面は電力の大部分を消費し、アプリの色 (白と黒は大きな違いです) と明るさのレベルが大きな影響を与えます。また、CPU (および場合によってはデータ) を同時に消費している場合、それらは確実に影響を与えます。

Angry Birds の電力をプロファイリングするテストでは、動作が非常に良好であり、電力 (CPU 消費を含む) をあまり消費しないことがわかりました。また、通常は少し暗い色も使用します。そして、彼らのデータ消費は通常、広告があるときだけです (これは大きな消費者であり、最近確実に増加していることに気付きました)。

アプリのどのコンポーネントがバッテリーを消耗しているかを確認し、最適化できるかどうかを確認します。興味がある場合は、Little Eye (免責事項: 私はこのツールを作成した会社の共同設立者です) などのプロファイリング ツールを試して、アプリケーションのどの部分 (またはハードウェア コンポーネントの使用) がバッテリーを消耗しているかを確認してください。

于 2013-06-25T02:43:00.393 に答える