Android


昨日行われた「Google デベロッパー交流会 第6回「Android」」というのに行ってきました。

場所は六本木ヒルズ森タワー49F アカデミーヒルズ オーディトリアム。
六本木ヒルズは久しぶりです。少々天気が悪かったのですが、それでも高いところは気分がいいですね。

Android SDK

Androidについては、テストプログラムを書いていないどころか、SDKをインストールすらしていなかったので、席に着いたらEMOBILEをつなげて早速ダウンロード開始してみました。78.4MBあるので、じっくりと。
全く知らなかった自分にとっては最高の導入講座となったセミナーでした。箇条書きでメモした内容をここにも書いておきます。

  • OHA: Open Handset Alliance
  • 基本OS部分はLinux2.6カーネル
  • ライブラリ
    • Surface Manager .. ウィンドウ処理などのライブラリ
    • SGL .. 2Dグラフィックスライブラリ
    • OpenGL ES 1.0 .. 3Dグラフィックスライブラリ(ハードアクセラレーション対応)
    • FreeType .. フォント関係のライブラリ
    • SQLite .. データベースライブラリ
    • WebKit .. ブラウザエンジン
  • C/C++で各種ドライバやライブラリが用意されている
  • Dalvik VMというJ2SE相当のJava動作環境(VM)が用意されている
    • Dalvikは(他のVMが採用しているスタックベースではなく)レジスタベースのVM
  • OPEN性
    • 開発者は、アプリを公開(ship)するのに許可(permission)は必要ない。
    • ユーザは、アプリをインストールするのに許可(permission)は必要ない。
    • アプリ間でメッセージ(Intent)通信を行うことができ、ユーザはそれを自由に切り替えられる。

基本的にJavaを使って開発する。ライブラリは結構充実している、という印象。

Q&A

最初のQ&Aの時間。すべてを残したわけではないですが、メモを書いておきます。

  • Q:Dalvikはインタープリタでパフォーマンスが不安。JITのようなものの準備を考えているのか?
    • A:JITのようなものの準備は考えていない。最初にデバイスを発売してから、検討する。
  • Q:レジスターの数についてどれだけ想定?その変更によってどれだけパフォーマンスが改善したのか?
    • A:VMチームではないので詳しくは知らない
  • Q:悪意のあるアプリに対する対策は?
    • A:セキュリティをデバイスにかけると、すべてのアプリはサンドボックスになってしまう。現在、セキュリティレビューを行っている。悪意のあるアプリがつくられないように努めている。
  • Q:いつ完全にAndroidSDKのすべてがオープンになるのか?
    • A:LinuxカーネルEclipse開発環境は現在オープンになっている。それ以外は最初の端末が出るまで待ちたい、と思っている。忙しいので。。。
  • Q:P2Pライブラリはサポートされるのか?(SIP?)
    • A:GTalkで解決できるものはそれを使ってくれ。そうでないものは、P2PSIP?)ライブラリを作ってやってくれ。

まず今年下半期に出荷されるであろう実機を出すことが第1の目標となっているらしく、ちょっとでもプライオリティが低いものは、その出荷以降の話になるらしい。とりあえず、まず出荷して、たくさんの人柱によるレビューが進み、たくさんのアプリが開発されて、それからもう一度見直そうよ、という考え方なのかな。

Androidの現状やケータイの仕組みを詳しく把握してない自分には理解できない部分が多かったので、もうちょっと勉強しておけば良かったと、ちょっと後悔。特にDalvicVMについて全く分からなかったのは痛かった。今調べてみたら、以下のページにスタックベース・レジスタベースの議論について詳しく載っている。

あと、SIP(シップ)という言葉が分からなかったので、こちらも今調べてみた。

パネルディスカッション、デモアプリ

後半はパネルディスカッションで、パネラーは皆でもアプリを作ってきていて、現状どのようなことが可能なのか?とか分かっておもしろかった。以下に箇条書きメモを載せておきます。

  • 鄭さん(GOOGLE)
    • 英単語帳
      • 英辞朗にアクセス→キャッシュ化
    • ローマ字入力でGoogleSuggestを使って日本語検索
      • 日本語フォントは入っている。20%プロジェクトで日本語IMEに片足突っ込んでいる
  • 若狭さん(GOOGLE)
    • WebViewをはるだけでWEBが見られる
      • GoogleAppEngineを使って作ってみた
      • MapViewをはるとマップが見られる。
      • docomoのケータイでは、現在位置を送信することが出来る→ウェブアプリで使える!?こっちがスゲー。
  • 安生さん(CAVE?)
    • ゲームっぽいやつ
      • エミュレータが遅いらしい。
      • DoJaになれているとちょっと面倒。DoJaに比べて、基本的なものが用意されていないっぽい。Eclipseになれていないとちょっとつらい
  • 丸山さん
    • ザウルス(上のAndroid?)とメッセージ交換
      • SIPを通じてセッションを確立させるデモ
  • 西山さん(eitarosoft)開発:今村さん
    • MMOっぽい感じのもので、結構すごい作り込み!
      • docomoケータイと通信(HTTP通信)
      • 秋葉原のエンジニア(AndroidSDK)と通信
      • 動画再生のAPI
      • 速度を出すのが難しい。

以上のように一通り見せてもらったあと、苦労話などを語ってくれて、現状がいろいろ分かりました。

  • エミュレータが重い(安生)
    • 3Dは重すぎるみたい
    • エミュレータのパフォーマンスを上げるよう努力している(ジェイソン)
    • Linuxから何からフルシステムイメージを動作させているからしょうがない
  • マルチスレッドでやらないとチャットアプリを作りにくい(今村さん)
    • サービスというのを作ると、ハンドラを二つ作りそれぞれにメッセージを送らないといけない
    • 確かにマルチスレッドをやるのが難しい(ジェイソン)
    • Androidがすべてのアプリのライフサイクルを管理する必要性がある
    • ActivityとServiceの関連が問題がある

と、こんな感じで、エミュレータが遅いのはしょうがないかもなー、という印象と、やっぱりどういう実機が出てくるのか?が分からないと、Googleや実機を設計しているハードウェアメーカ以外の会社が大きなプロジェクトを動かすことが難しいように思う。

SDKインストール

セミナー中盤の頃にダウンロードが完了したので、インストールしてみた。
ちょっと重いが、PATHを通すだけでエミュレータが動いたのはすごい。エミュレータの実行アプリ名がemulator.exeというのもすごい。
また時間があるときのサンプルでもいじってみようかな。

アカデミーヒルズ

ちょっと調べてみたら、今回使用したアカデミーヒルズ オーディトリアムの使用料金は13:00〜17:00で¥600,000。
さらに同時通訳(日→英、英→日)もあり、ドリンクもあった。ある程度安く使わせてもらってるのかもしれないけど、参加費無料のセミナーでこういう雰囲気なのは、やっぱGoogleならでわですね。

関連書籍

Google Android入門 ~携帯電話開発の新技術

Google Android入門 ~携帯電話開発の新技術

最近発売されたこの本の著者も来て質問していた。若干宣伝くさいな−、という印象がぬぐえないが、まぁ、この本は気になるので、本屋で立ち読みしてみようかな。