我是編程簡單的遊戲。繪製/更新會拋出實時模型,所以CPU總是高負載。線程看起來是這樣的:Android遊戲,電池使用量非常高
@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上同時充電要快。
我做錯了什麼,或者遊戲沒關係?
你打電話onDrawcanvas)或渲染(畫布)? onDraw()應該利用硬件屏幕緩衝區,所以它不是純粹的CPU硬循環。看看:http://stackoverflow.com/questions/6970987/android-surfaceview-displays-blank-when-locked-canvas-is-not-null – garlicman
至於USB充電,S2是USB 2.0,從筆記本電腦/臺式機充電。 USB電纜中有一條專用的5v線,但該規範是在2000年針對設備發佈的。您的S2會嘗試爲CPU,WIFI,藍牙,屏幕等等提供更多功能。再加上你的S2是舊的,電池可能無法完全充電了。 Android設備通常存在收費問題。我的Google Nexus 10不能比WIFI更快地收費,網頁瀏覽將耗盡。我可以建議的是你比較你的排水率與3DS或PSP Vita。 (使用WIFI 3小時) – garlicman