第7回丸山先生Android勉強会

第7回の報告です。
今回はGoogleの方々が参加されるということでいつもよりも早く座席が埋まっているように思いました。

相変わらずのいい加減なメモですので正確性には期待しないで頂きたいのですが、とりあえずメモを取ってきましたので晒したいと思います。

ただ本日非常に疲れてまして内容がいつにも増していい加減です。
そこのところご理解の上、ご覧ください。

iPhone

iPhone向けの開発について某社の方から発表がありましたがNDAのためにあまり有益な発表とはいかなかったようです。
本日は結構多くの機会においてiPhoneの話題が出たのですが、やはりNDAはこのようなオープンな勉強会には似わないものだと強く感じた発表でした。


実は先日、別の勉強会にてある方がiPhoneSDKを実際に見せてくださいました。
そのときにはAndroidに比べても遜色がない上に画面上にてiPhoneの向きを変更できるよくできたSDKに感心したのですが、NDA騒動のせいで少くとも趣味のレベルで開発している私は絶対にiPhone向けの開発はするまいと思わせるだけの寂しい発表であったと思います。


Android勉強会では多くのiPhone開発者に声をかけたようですが、皆NDAによりAppStoreでの販売権を剥奪されることを怖れて良い返事を頂くことはできなかったようです。
最近ネット上でNDAに対する様々な意見を目にするようになりました。Appleには一日も早くこのような状態を改善してほしいと思いました。

Google

Googleから石原さん、若狭さん、高岡さんの御三方が勉強会に参加してくださいました。
今回Googleに意見を言おうという企画でかなり煽りのある前振だったのですがよくぞ参加してくださったという感じです。


最初にadvocateの石原さんより本日の狙いについて3点説明がありました。
1. プレゼンは短くしてフィードバックの受付を長めに
2. プレゼンの内容はアーキテクチャ
3. グッズを持ってきました(w

御三方とも本業はAndroidではないとのことが示されました。
そのまえにも本日はQ&AならぬQ&Qであり、回答は期待しないでほしいとの旨が説明されておりました。
ここらへんに今のAndroidの難しさが感じられると思います。


発表は若狭さんより、GoogleIOの資料を元にAndroidの低レイヤーの技術について説明が行われました。

耳目を引いた内容としましては、

  • Zygoteはでかくてこのせいで起動が遅いという話もある
  • ProtocolBufferは社内のいたるところで使われている
  • IPC的な考えかたを好む人が多い
  • AIDLとprotocolBufferが似ている??
  • AndroidのIPCはX-WindowsやSUN RPCのようだ
  • だが地道な工夫が施されている
  • Parcelの実装ソースを読んでいないが、怖らく大したことはやっていない
  • 若狭さんでもソースを読めない。簡単には読めない状態。
  • 携帯以外の構想については日本が一番熱心である
  • 深くは言えない

ここらへんでGoogleに向けた刺客の方々によるライトニングトークがありました。
秀逸だったのはまたしてもゲームメーカーの方々でした。

インタラクティブブレインズ 笠井さん

携帯環境での3Dゲーム開発の歴史について教えて頂きました。
携帯の開発環境では現在の結論としてKhronosのOpenGL/ESが本命だけど、上位レイヤーが必要との現場の意見が示されました。
現在のOpenGL/ESv2では生産性の点で問題があるという意見だと思います。

現在の上位レイヤーのAPIには以下のものがあるようです。

  • JSR184:nokia陣営
  • MascotCapsule: エイチアイ
  • XForge

携帯の3D環境の性能の歴史が興味深かったです。

2003年 SH53 リッジレーサー 800-1000ポリゴン 8-10/fps

2004年 V602SH T4G 100万ポリゴン カタログスペック
実際には1000-1200ポリゴン 12-14fps前後
OSなどが重い

2007 P905i (Uniphier ReCS + ARM11
Doja5.1 OpenGL/ES
ハードウェアレンダリング Uniphier統合アクセラレータReCS
WVGA 2000 ポリゴン 15-20fps
どうしても組込系実装依存ボトルネックがあってカタログスペックより大きく見落とる

Andoridの最低スペックはSH53レベルとのことです。

さてこっからさらに面白い話題があったのですが、ここだけの話と強調されていたのでどこまで書いてよいのかわかりません。

肝心のタイトルはぼかして書きますと、あるタイトルに関してAndroidにて実際に開発を行なわれたようです。

  • OpenGL/ESでSurfaceViewにて実装
  • 固定小数点演算を高速化のために用いたがAPIが不動小数点を要求する
  • エミュレータ遅すぎ&不安定すぎ
  • ゲーム演算60%+描画30%+その他10%
  • 最初の実装は数秒かけて1フレーム

ここでもまたエミュレータの遅さが指摘されてしまいました。
これを聞くのは3度目です。
しかしGoogleも対応をしているようです。
次のSDKではエミュレータがハードウェアアクセラレータを利用するとの噂があります。

http://www.anddev.org/next_sdk_will_have_hardware_acceleration_of_views_and_2d-t2546.html

この記事によりますとGoogle開発者のRomain Guyさんは次のSDKにてハードウェアアクセラレータのサポートを明言されているようですね。

さて話が横道にそれましたが、笠井さんのまとめは以下になります。

  • まずは開発環境をなんとかしてほしい
  • DalvikVMの挙動は規定されている
  • DalvkVM部分は解析次第であるていど汎用的なノウハウ化が期待できそう←アプリ屋さんの頑張張どころ
  • OpenGL/ESの下は組込屋さんの頑張りどころ
  • 最終的にプロファイリングして調整するのはコンテンツ屋さんの頑張どころ

この素晴らしい発表に対してGooglerからは以下の回答が行なわれました。

  • 若狭さん:3Dが重用であることは非常に言われている
  • グラフィックスまわりにフォーカスが当たるようになってきている
  • フィードバックを頂きたい
  • 石原さん: androidコミュニティジャパンにぜひフィードバックを欲しい。海外に伝える

ドワンゴの研究開発部 荒木さん

http://info.dwango.co.jp/rd/
ドワンゴの荒木さんの発表が素晴しいものでした。
ニコニコ動画の方はやはりエンターテイメントに通じているようです。

Androidに対してのドワンゴの状況は「まだ何もしていません、何も決まっていないです。」とのこと。
そのため現場での携帯向けのニコニコモバイルについて解説され、無理矢理Androidに対する要望に繋ぐ、とのことでした。

  • ニコモバ:ドコモ公式サイト
  • MotionJPEGによる紙芝居
  • ADPCMを使用

現場でのモバイル向け開発はまさに地獄のようです。

  • Dojaの端末間の互換性の低さ

互換性が低いのは

  • 音の再生
  • タイマーなどのタイミング調整

特に音まわりが悲惨であるということが強調されていました。

  • 900iシリーズ: メーカーごとの拡張命令。バラバラ
  • 901i、902i:標準命令だが音源毎に異なる
  • 903i,904i:N以外統一
  • 905i:やっと統一

他にもsleepを入れないと通信が進まない901など様々なご苦労を体験されたそうです。

会場に馬鹿受けだったのが現場での互換チェックの有様でした。
実際に現場の写真を見せてくださったのですが、巨大な棚に無数の携帯実機が用意されていました。
全て契約されていて実際に確認できるとのことです(笑


これだけあると実機のバグを発見することもあり、実際に二機種でバグを発見し、キャリアとの戦いの末、メーカーにバグを認めてもらったそうです。

曰く、「ニコモバは気合でできています。」

こんな気合かけたくない!とのことでGoogleに対して以下のお願いが提示されました。

  • 仕様の統一をお願いします。
  • 画面:GoldfishでFA?
  • 音:同時再生数、CODEC
  • タイマー;精度、個数
  • ユーザーインターフェース:ボタン配置、個数

Googleの回答は以下のとおりです。

  • 石原:苦労しているのはうちだけでないととても勇気づけられた
  • いくつかはAndoridで対応できるが、ハードウェアベンダーで決まってしまう。
  • 若狭:ハードウェアメーカーは差別化をしたい要求が強い。統一が抑えつけることになる。
  • ある意味、docomoのようなキャリアでも難しい
  • Googleはあまり押さえつけない方向が強い。
  • コンテンツプロバイダーさんから声を上げて頂いたほうが良い

Q&A

日本の携帯事情を話しても理解してもらえないようなことはあるのか?
石原:個々の具体的な話は難しい。Androidに限らず非常によくある話。マーケットや品質が違う
ただし携帯は日本が優れているので比較的はなしが聞いてもらいやすい。
若狭:Androidだからという話はない。日本はモバイル先進国だと思われている。どちらかというと日本はおとなしいと思われている。自己主張しない。日本国外のエンジニアはどちらかというと情報に飢えている
高岡:日本で閉じてコンテンツを開発していると、他国の常識をこちらも知らないケースが有る。
なぜそうなっているのかわからないと攻めどころがわからない。
フィードバックは重用だがなぜそうなっているのかの理解が重用。
黒船みたいになる可能性が高い。他国を知っていただきたい。


丸山先生:iPhoneAndroidとの違い
石原さん:一番話しにくい話
ある意味同じ方向を向いていて自らの正しさを感じる
黒船としてある意味(コンテンツメーカーにとって)非常に大きなチャンス
既成概念を捨てさってオポチュニティがどこにあるかを考えてほしい
若狭:エンジニアは比較していけないとは言われていない。
そんなに違いはないような気がする
Google本社の社員は皆iPhoneを持っている
目指しているものは同じ。Googleandroid独自のアプローチもとりたい
面白いことができればそれでいい。勝ち負けではない。


ver1後はGoogleが強い指揮を取るのか?
石原:GoogleはOHAの一員である。
若狭:エンジニアなので適当なこと言えるが、OHAはOHAでガイドラインのようなものは出すであろう。OHAはLinuxよりもう少しフォーマル。ただしAndroidは全てApache2.0になるので何やっても良いとしか言えない。コンテンツやっている方には困る話であるが、市場が決定する話だと思う
高岡:PC98の時代DOS/Vが来たとき、何かのアプリが動くことが大事であった。今のそれが何かはわからないが、ガチガチに決めてしまうことは良くないと思う。GPLでなくApacheであるのはそういうことだと思う。
何かが動くのがAndroidだということになったら成功だと思う。以上はあくまでも個人的な話。


OHAに入らないと将来的になにかできないということがあるのだろうか?
加入していないと端末が作れないとか?
石原:それはない。


逆にOHAに入るメリットとは?
石原:大きな方向性を左右できることがメンバーのバリューである。


最初の端末は携帯ではないのではないか?その状況は?
石原:携帯以外がでるのは日本が最初ではないだろうか?期待している。
高岡:実はあんまり注目されていないがlibcもGPLでないものを開発している(BIONIC)
組込屋さんは気付いていると思う



iPhoneとの比較が盛り上がっているが影響を受けた/ているものはあるか?
石原:個人的にiPHoneのUIは優れていると思う。インスパイアされる部分はあると思うが、影響を受けると法的に問題があるので答が難しい。



Androidの実機がでてくるとして一般の開発者に対する制約はでてきそうか?
石原:ルービンはそのあたりのビジネスモデルはキャリア次第だと言っている。我々はわからない

アプリケーションの流通はどういう方針なのか?AppStoreの運営主体は?いつ見えてくる?
石原:ルービンはGoogleが縛ることはしないと言っている。特定のキャリアのモデルを考えることはしない。
Androidを提供する側で規定することはない
初期の段階でアプリケーションの品揃えは重視している
そのためにコンテストを行った。
アーリーアダプタを支援したい

まとめ

Googleの皆さんが誠意を込めて対応してくださったおかげでかなり実りのある内容だったと思います。
疲れていて最初から潰れていたのですが、途中からはその疲れも忘れてメモをとっておりました。
このような素敵な機会を提供していただいたスタッフの皆様とGoogleの方々に感謝します。
ありがとうございました。


後色々と削っていますが筆者の体力、集中力のなさ故です。申し訳ございません。