@weather 曇時々晴
@title あさ〜
@category 生活
@s
0630充電開始、1100再起動。
@title Androidいろいろ話
@category Android
@s
今日一日でわりとtweetしたのでまとめ。
@ul
手許のAndroid NDK環境をr8bに上げる作業。gcc4.6が入った関係でわりと変わっちゃってるのね…ってそういう変更なら名前をr8bじゃなくてr9とかにすべきだろう・・・。
ちなみにNDKアップデート時は複数バージョンインストールして環境変数で切り替えるようにしておくのが簡単だし実用的。リビルドできないライブラリがある環境とかだったりすると特に。
@s
追記。案の定r8とはわりと非互換な部分がある上に、コンパイラが内部エラーで落ちる様に遭遇したりしたので、不採用。
@ul
そういえば4.1でサウンドレイテンシが小さくなる話。確かにNexus Sを4.1に上げたら4.0より小さくなってた。URL:www.gizmodo.jp
対象コードはNDKでOpenSL ESにリアルタイム生成波形を流し込むものだけど、4.0まではVSYNCで2-3f分(≒40-50ms程度)あったと思われる遅延が1f以内で収まるようになってる
Androidでよく話題になる発声遅延だがこれは2種類あって、「発声命令を出してから実際に発声されるまでの時間」と「波形を送ってからその波形が鳴るまでの時間」。前者はパフォーマンスが上がれば改善されるが、後者はデバイスドライバレベルから発声バッファ処理を見直さないと改善されない
後者は簡単にいうと「10分間ごとに10個のデータを受け取る」作業を「1分ごとに1個のデータを受け取る」作業にすることに相当する
ただこれはメリットばかりでもなくて、前者はたとえば「9分間データが来なくても最後の1分で10個のデータが来れば滞らない」が、後者は「毎分確実に1個データが来ないと滞る」
音声だとこれは「他の作業で重くなると音声ノイズが出る」ことに相当する。そうならないようにするためにはそれなりの技術が必要