Android Bazaar and Conference 2009 Spring
日本アンドロイドの会主催の Android Bazaar and Conference 2009 Spring に行ってきた。午前中の docomo や Google の講演は申し込み時にすでに満員で入れなかった。無料とはいえ、平日の昼間に数百の人間が集まるんだから、Android への関心の高さが分かる。デザインのセッションでこないだのGoogleが配ったAndroid携帯を持っている人と言ったら、2、3割の人が手を挙げたから、あっちから雪崩れ込んできた参加者も相当いたみたい。
駅からイベント会場に向かう道や会場前の広場でワイシャツにスラックスという夏のビジネスマンの格好をした人をたくさん見かけたので、さすがdocomo 関連は客層が違うなぁと関心してたら、別のセミナーの参加者だった。国立オリンピック記念青少年総合センターは大きくて、いろんな団体が会合をやってるのでした。
Androidのオープンソースアプリ戦略 佐々木 陽 株式会社GClue 代表取締役
Google側の戦略の話ではなくて、Android に群がるハードソフトメーカー側の話。というか、GClue自身や関連する China Moblie の製品紹介が主でした。大手はオープンソースで標準化を狙い、弱小企業はクローズドソースで差別化を狙う、というまぁ当たり前の結論ながら、これまで弱小では手が出せなかったミドルウェアやフレームワークの開発も、オープンソースの上に乗っかればなんとかなりそうという話もあり。
China Mobile が開発している Android ベースのスマートフォン OPhone は、Linuxカーネルを最適化し、TV やら WAP ブラウザやら既存のJavaVMやら(AndroidはGoogle製のJVM) をなんだかんだぶっこんで1年で開発したそーな。
アプリデザイン、色使いで差を付けろ! 矢野 りん デザイナー/ライタ
いいアプリを作っても、アイコンがダメだと Android Market で目立たないと選んでもらえない。逆にアイコンがよければ、CDのジャケ買いのようにアイコンデザインのみでユーザーに選んでもらえるかもしれない。なるほど。
・Android Market の背景は黒。これでは原色でも目立たない。白っぼい色(パステル調)がよい。
・寒色(青系)は引っ込んで見えるの。
・アイコンの中身と同系色で暗い色の外枠をつけると立体感が出る。
・光が当たる位置を明るく塗った3Dデザインの方がかっこいい。
・同じメーカーが出すアプリの色を統一してブランド化するという手もあり。
・文字は小さいとつぶれるのでよくない。
・目立つ色のキャラものがいい。
・色を設定するときは、RGBよりも色相と明度で調節した方がいい。
セカイカメラのつくりかた 近藤 純司 頓智ドット株式会社
セカイカメラとは、モバイル機の位置情報をキーにしてサーバーに写真やテキストなどを格納しておき、現地で取り出して実際の景色にそれらの情報を重ねて表示するもの。
開発における具体的な手法の話が多くて面白かった。
センサ
・加速度やコンパスの現データは値が細かく変動して安定していない。ソフト的なローパスフィルタを入れて使っている。
・位置測定には GPS 以外に PlaceEngine (koozyt) を使っている。PlaceEngine は無線LANの電波から位置を判定するもので、室内でも有効。
・GPS の読み出しは無線LANからの位置測定の10倍の電力を使う。
カメラ
・android.hardware.Camera の autoFocus() で設定するコールバックから呼び出される onPreviewFrame で指定したフォーマットでデータが読み出せない。
性能チューニング
・起動時間は logcat の出力で測定。 フレームレート onDraw() の呼び出し間隔で見る。
・セカイカメラは Activity はひとつだけで、View をとっかえて表示している。背後のカメラキャプチャ映像を絶やさないため。起動時に全ての View を必要としないので、起動時に展開しないView を ViewStub で指定。 起動時間が 4.59s -> 4.15s に短縮。
・Hierarchy Viewer で View の構造を調査して、不要な View を探す。
・NoBackground style で @null を指定して不要な背景を描画しないようにしたら、フレームレートが向上。 21.2fps -> 30fps
・GC! DDMS の Allocation Tracker でメモリ消費量を調査。実行中のメモリ割付をやらないようにする。
・XmlPullParser がメモリを食うので、JSON とかに置き換えることを検討。
Androidで3Dグラフィクスを極める道 Vol.2 高橋 憲一 日本Androidの会 幹事
3D に興味はあるが、OpernGL とかやってないので半分以上ちんぷんかんぷん。
圧縮テクスチャ
・メモリ使用効率向上
・ハードウェアで伸張。ATITC方式とPVRTC方式がある。
・HTC 製 Android では ATITC が使えるが、定数が未定義なので裏技っぽい。
0x8c92 - ATITC_RGB 0x8c93 - ATITC_RGBA
Matrix Palette
・間接で繋がっているモデルにおいて、間接の先の部品の位置を自動的に計算してくれるもの。現在未サポート。
Vertex Buffer Object (VBO)
・頂点データをGPU側メモリに置くことでデータ転送のオーバーヘッドを節約。形状の変化しない背景データの描画などに有効。
・プログラムでの具体的な使い方の例が紹介されたが、よく分からず。
GLSurfaceView
・onPause onResume で使えるという話は先日Googleでも聞いた。
NDK
・native-code サポートキットが出た。次回はこの話?