携帯電話用のアプリケーションを作成する人にとって、エネルギー効率を改善するためにどのようなバグ/問題を修正しましたか?また、修正はどの程度改善されますか?
フォローアップの質問:モバイルアプリを作成するとき、エネルギー効率は機能と同じくらい重要であり、機能のバグを回避することが重要ですか?
携帯電話用のアプリケーションを作成する人にとって、エネルギー効率を改善するためにどのようなバグ/問題を修正しましたか?また、修正はどの程度改善されますか?
フォローアップの質問:モバイルアプリを作成するとき、エネルギー効率は機能と同じくらい重要であり、機能のバグを回避することが重要ですか?
最初にフォローアップの質問に答えるために、特定のアプリを使用した場合のエネルギー効率やバッテリー寿命の違いに気付く顧客はほとんどいません。これは、AppStoreのレビューではほとんど言及されていません。私は主に、アプリのテストと使用中に自分のデバイスのバッテリーを使い果たしたくないため、電力効率の高いコードを記述しています。
iPhoneアプリに関するいくつかの提案:
最も遅いOS(3Gでは4.x)を備えた最も遅いデバイス(iPhone 2Gまたは3G)で正常に動作するようにアプリを作成します。その後、はるかに高速な現在のデバイスではほとんどアイドル状態になる可能性があります。
グラフィックルーチンでは、すでに描画されているものを再描画しないようにしてください。ローカライズされたグラフィックの更新/変更には、小さなCALayerまたはサブビューを使用します。
アプリがほとんどの時間CPUで実行されないように、可能な限り非同期メソッドを使用してください。
可能であれば、アプリのワーキングセットが非常に限られたARM CPUデータキャッシュに完全に常駐できるように、(Foundationオブジェクトの代わりに)プレーンなCデータ構造を使用してパックします。
必要以上にネットワーキングを行わないでください。一度に可能な限り最大のデータ転送を実行して、アプリのネットワークを使用する間、大量の継続的な小さな転送ではなく、無線をより長くオフにできるようにします。
モバイル開発におけるエネルギー効率は、組み込みシステムのメモリ制約と同等です。
特に、私はGPSアプリが好きなので、GPSが最小限の時間だけオンになっていることを確認してください。もちろん、GPSを長時間オンにしておくバグが発生した場合は、リストの一番上に移動して修正します。
つまり、簡単な答えは次のとおりです。はい、エネルギー効率は機能と同じくらい重要です。
EEは、アプリケーションが常にバックグラウンドで実行されている場合は特に重要です。
可能な限り、ポーリングメソッドをイベントベースのメソッドに置き換える必要がありました。それが不可能な場合は、ポーリングの頻度を減らしました。
また、ファイルの読み取り/書き込みを最小限に抑えると、バッテリーの消費量が大幅に削減されます。
私のopenglベースのライブ壁紙では、バッテリー寿命は重要な問題です.
センサーの使用を最小限に抑えてください。さまざまなプロファイルがたくさんあります。必要な遅延を使用してください。
LWP でバッテリーを最大化するために、私は通常、デフォルトで 5 ミリ秒のフレーム遅延を強制します。これは、フレーム間で CPU をリラックスさせ、使用率を適度に低く保つのに十分な時間のようです。現在の FPS に基づいてタイムアウトを管理し、FPS プロファイルに固定することもできます。たとえば、デバイスは 60 fps でレンダリングできますが、30 fps でレンダリングし、半分の時間をスリープしているだけです。
同じことができるゲームの場合は、エンジンに fps 制限を設定し、それを超えないようにしてください。
筋金入りになりたい場合は、多くの Android デバイスで使用されている OLED は、暗い色ではなく明るい色を表示するために多くの電力を使用することに注意してください。LCD には同等のバックライトがありますが、OLED では黒いピクセルが事実上オフになり、電力を使用しません。したがって、画面が暗いほど、バッテリーの寿命が長くなります。物事のバッテリー側で本当にハードコアになりたい場合は、特定の状況で考慮すべきこと.
GPS を使用しないでください。3G を使用しないでください。また、すべてをローカルにキャッシュする場合も同様です。