第七回勉強会

Googlers 石原さん、若狭さん、高岡さん

Googleの方のお話。質問を中心に進めるが、答えられない質問もあるとの前置きがあった。
若狭さんから、GoogleIOの資料を使用して説明。

LinuxのスレッドとAndroidのスレッドの話

  • スレッドにはすべてLooperがいて、メッセージキューからメッセージを取り出して処理している。
  • サービスにすると、別のスレッドが必要な場合がある。
  • スレッドを創った場合には、スレッドセーフティに関しては作成する側でケアする必用がある。

Serviceライフサイクル

LinuxのプロセスとAndroid

  • 特別な"Zygote(ザイゴット)"というプロセスがプロセスを起こす
  • このプロセスがすべてのライブラリを抱えているので、最初の起動が遅くなている。しかし、ここから起こさせるプロセスの起動が早くなっている。
  • アプリケーションがユニークなユーザーIDを持っている。従って、アプリケーション間でデータをシェアするために、用意されているAPIを使用する必要がある

IPCについて

  • 通常のSystem-VのようなIPCを使用していない。それは、効率やスピードを重視しているため。
  • Percelableは、JavaのSirializableに対応したもの。シリアライズに比べて制約が多いが、効率がよい
  • すべてのIPCは、特別なデバイスBinderを通して行われる。
  • Bundleは、IPC用のコンテナのようなもの
  • AIDL(アンドロイドのIPC用のインタフェース定義言語)。プロトコルバッファ

高岡さんから

  • それほど目新しいものはないが、今までの技術を丁寧に作り込んでいるという感じ。

質問コーナー

サイバード 内嶋(うちじま)さん is@

  • 人と人とがつなぐために、、、
  • おもちゃ、カーナビなど
  • Googleさんからのコメント。携帯電話以外のデバイスに対する適用については、日本が進んでいる。がんばってほしい。

インタラクティブブレインズ

  • Androidの3D環境
  • OpenGL ES1.0をMediaLibraryで提供されているが、リファレンスが提供されているが、実際は、実装依存
  • レンダラのソフトウェアでは、エイチアイのMascotCapsuleがデファクトになっている。
  • レンダラのハードウェアではGoForce系やIMAGON系、PowerVR系、T4Gなど。
  • 下位レイヤAPIでは、Direct3D Mobleや、OpenGL系、JSR239(OpenGLJavaバインド)
  • 上位レイヤは、JSR184(Nokia系)、MascotCapsule、X-Forgeなど

ドワンゴ 荒木さん

  • ニコニコ動画モバイル。MotionJPEGとADPCM
  • 端末ごとの互換性の低さが問題。音源の互換性は今年位にようやく解消されてきた。
  • 携帯端末の互換性を確認するために、棚に一面の携帯を実施
  • 画面、音(同時再生数、Codec)、タイマー(精度、個数)、ユーザーインタフェース(ボタン配置、個数)
  • Googleさんのコメント。互換性については、コンテンツ共有側からも声を上げてほしい

Googleさんへの質問

  • 日本から質問が届きにくいのでは? Androidに関しては比較的届きやすいと感じている。日本も、他の国のことに興味を持つべき。
  • iPhoneについて。競合ではなく、同じ方向を向いていると感じている。いままのでの方向性を一度見直して、新しいものを取っていくべき。
  • 互換性の確保について。基本的にはOHAで規定されていくと思う。Androidのランセンスは、Apacheなので、開発者がなにをやってもおかしくない。基本は市場が決めていく。何かのアプリケーションが動くことが重要なので、そのアプリケーションが動かないものは淘汰されていくのが良いのでは?
  • 分断化に対しては、OHAは縛らない方向になると予想される。libcに関しても、Apacheライセンスにしていることから期待できる。
  • アプリケーションのインストールなどは、個々のキャリアのビジネスモデルに応じて決めていくので、Androidが縛ることはできないと考えている。コンテストなどで応援していく。