栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2010年3月20日 星期六

Random RGB v1.0


  10fps 的雪花 Live Wallpaper ,為了 Random data 而狂 load CPU,機身很快就變得暖和起來,自己寫完自己都唔敢用。寫不寫免責聲明好呢?
  拿著 Android 2.1+ 機去 Android Market ,找「Random RGB」/「隨機RGB」/「RGB」,就可以免費下載。
  另外,要 source 的話,可以去 github ,或:
git clone git://github.com/luzi82/Random-pixel-Live-wallpaper.git


  這個 Live Wallpaper 唯一的難度,是 Android 本身的 Java Random generator 超慢。去 Android src 看一下,你就會看到真理。
protected synchronized int next(int bits) {
seed = (seed * multiplier + 0xbL) & ((1L << 48) - 1);
return (int) (seed >>> (48 - bits));
}
public void nextBytes(byte[] buf) {
int rand = 0, count = 0, loop = 0;
while (count < buf.length) {
if (loop == 0) {
rand = nextInt();
loop = 3;
} else {
loop--;
}
buf[count++] = (byte) rand;
rand >>= 8;
}
}

  靠 XD 。
  為了解決速度上的問題,結果我用 NDK 來寫隨機數的部份。 code 和 Android src 沒有大分別,但在 C 上跑是快了很多。

  打開這個東西,你就會看到人生的無聊。

沒有留言: