Tjenare,
Började skriva lite på ett live wallpaper för Nexus. Iom att jag inte har någon aning om hur man skall göra började jag kolla på lite exempel, och ville veta lite om vilka frame-rates man kan förvänta sig.
Tyckte att det hela gick lite sisådär i emulatorn (och lite mjukare i min N1). Började kolla vad det var som tog tid, och kom fram till att det är surfaceHandler.lockCanvas() 
I mitt test tog jag till slut bort allt, och har bara en loop som gör detta:
Kod:
long start = 0;
long end = 0;
while (run) {
try {
start = SystemClock.elapsedRealtime();
c = surfaceHolder.lockCanvas();
end = SystemClock.elapsedRealtime();
Log.i("f1.wallpaper", "Acquire lock took " + (end - start));
// synchronized (this.surfaceHolder) {
// doDraw(c);
// }
} finally {
if (c != null) {
surfaceHolder.unlockCanvasAndPost(c);
}
}
Att köra koden ovan i en loop (dvs utan att rita något) tar i min emulator 50-70 ms i porträttläge. Ca 150-170 ms i landskapsläge 
Hmm... Skall det vara så här? Skall man inte göra så? Vilka fps borde man kunna räkna med?