Android 勉強会 第4回に参加してきました

6月16日に秋葉原ダイビルで開催された「Android勉強会 第4回」に参加してきました。定員を大きく超える応募があったそうで、抽選に当選して何とか参加することができました。副都心線の影響(?)で少し遅れて会場に到着したため、既に席はほとんど埋まっていて100人くらいはいたんじゃないかと思います。

Google I/O, Developer Day ともに参加したのですが、 Android のセッションにはほとんど出なかったので、安藤恐竜さんのプレゼンはかなり参考になりました。それから、やはり動いている実機でプレゼンというのはインパクトがありますね。懇親会にも参加させてもらったのですが、いろいろなメーカーやゲーム業界の人などもいて楽しかったです。Android については、単に携帯電話のプラットフォームと捉えていると判断を誤りそうな感じがします。

ブリリアントサービス 近藤さん

  • Armadilloの実機でAndroidを動かして、自作アプリケーションでプレゼン!
  • Androidデバイスが巷に溢れるはず
  • 一年後がどうなっているかは想像が付かない(いい意味で)
  • メモリ64MBでは厳しいのではないか?
  • サウンドは? - 鳴ります。PCM 48kHz,ALSA
  • 3Dアクセラレーション対応ボードを買えばもっと性能が出るかも

日立ソフトさん

  • モバイルこそセキュリティが重要 → SELinux
  • 実際にlibpngの脆弱性があった
  • カーネルの対応、ユーザランドの移植、セキュリティポリシーの準備が必要
  • 組み込み用でも数万ルールの設定が必要
  • カーネルのチューニングをして、500kbyte以内に抑えている
  • SELinux Policy Editorオープンソースで公開している
  • Android on Zaurus SL-C3200
  • privateとbusinessのセキュリティ権限設定の確認

安藤恐竜さん

  • Binder:
    shared memory方式によるパフォーマンス改善
    プロセス単位のスレッドプール
  • Power Management:
    バッテリーが最大のボトルネック
    Linux PMの上に拡張
    FULL_WAKE_LOCK(cpu,lcd),PARTIAL_WAKE_LOCK(cpu)
  • Bionic:
    カスタマイズされたlibc、組み込み用に最適化
    BSDライセンス(GPLの混入を嫌がった?)
    pthread, setprop/getprop
    POSIX完全準拠ではない
    glibc互換ではない
  • HAL:
    上位層をハードウェアから分離
    pmap
  • Dalvik:
    200-500MhzのCPU
    RAM 64MB ROM 64MB
    バッテリー
  • Dexファイルの構造:
    データをタイプごとに整理
    データにidを付けてポインタのみ上部に格納
    ファイルサイズをjarの半分以下に
  • Zygote:
    ダーティーでシェアードメモリ
    クラスをプリロードし初期化
  • Dalvikはレジスタマシン、通常のJava VMはスタックマシン
  • Androidアプリを開発する上での心得:
    賢くループ
    先にlimitを計算しておく
    CPUとメモリはボトルネックではない、バッテリーがボトルネック
    バッテリーにムーアの法則は成り立たない

Google Developer Day 2008 基調講演

6月10日にパシフィコ横浜で開催された「Google Developer Day 2008」に参加してきました。

基調講演は、Google Japan 村上社長の挨拶の後、サンフランシスコの Google I/O でご一緒させてもらった及川さんが登場。現在の状況とこれからどこに進もうとしているかを説明してくれました。内容は基本的に Google I/O での Keynote の資料を翻訳したものだったのですが、 Google らしいカジュアルな感じでとても分かりやすいものだったと思います。

  • インターネットは生活にかかせないものになっている。
  • クラウド・コンピューティング
    コンピューティングの場は過去にメインフレームからPCに移ったが、再びインターネット上に集約されつつある。
  • Google流のエコシステム
    リッチなアプリ→ユーザー増→頻度増→収益向上(ウェブ開発者を巻き込む)

Android

Android Home  Android Street View

Android のデモが Google I/O の時よりもパワーアップしていました。あちらでストリートビューのデモを行ったときは、会場から「おー!」という感嘆の声が上がったのですが、日本での反応は静かなものでした。皆さん、既にI/Oのビデオを見て知っていたからなんですかね…

  • オープンソース(※まだソースは公開されていませんが予定)
  • Webkit ベースブラウザで JavaScript, CSSは当たり前
  • スライドとガジェット、ドラッグダウンによるインタフェース
  • インターネットとのマッシュアップが可能
  • 顔認識でコンタクトの写真を登録できる

Google App Engine

Google I/O でお世話になった鵜飼さんによる Google App Engine の紹介。こちらもI/Oでのプレゼンがベースのようでした。今までは、 Linux の設定をして、Apache の設定をして、 MySQL の設定をして、 PHP の設定をしてというのが必要で、サービスが成長してきたらサーバの台数を増やして負荷分散をしてという作業が必要でした。それが、Google のインフラを使うことで心配する必要がなくなります。そして、アカウント制限が撤廃され誰でも利用可能になったことと、今後予定されている新機能の説明がありました。登録フリーになったとは言っても、携帯電話 SMS での認証が必要で、現状日本ではほぼ登録不可能といっていい状態です。こちらは早急に改善して欲しいところ。
今後予定されている機能追加は次の通り。

  • Offline Processing (スケジュールタスクなど)
  • More Language (Python 以外の言語への対応)
  • Rich Media Support (1MB以上の Large Object 対応)
  • Additional Infrastructure Services

OpenSocial

OpenSocial は、昨年の発表から7ヶ月でユーザー 2億7500万、開発者 2万、アプリケーション数 5000万に成長中。国内での適用事例として、リクルートの方が「ドコイク?」を OpenSocial 対応したという話をされていました。現在は、自由にアプリケーションを登録できないが、将来的には対応したいとのことです。また、 OpenSocial に対する要望として、セキュリティの向上と仕様の明確化を進めて欲しいと言っていて、確かにそうだなと思いました。

Community

今回の全体テーマとして「Cloud, Connectivity, Client」を掲げていたのですが、某社のプレゼンに習って"One more thing."として「Community」を取り上げていました。 Google Japan のディベロッパー交流会への取り組みやエキスパート認定制度など。
下記のように日本語でのグループもできているので、興味のある方は参加してみるといいかもしれません。特に Google-App-Engine-Japan はこの日に開設されてホヤホヤなのでお勧めです。


少し話がそれましたが、知っている人も多く来ていて、初めて会った人とも多く名刺交換をさせてもらいました。実際に顔を合わせて話をするというのはとても重要で、Web系以外の人とも話をするとてもいい機会になりました。お話しさせていただいた皆さん、どうもありがとうございました。

Google I/O 第1日目

Google のディベロッパー向けカンファレンス「Google I/O」がついに始まりました。この日は,朝7:30に集合して,Google 渡部さんの助けを借りて Registration を済ませました。そして,たぶんこれはIOの間違いだと思うのですが,バイナリで「GOOGLEKO」と書かれたTシャツをもらって,会場に用意されている朝食を食べました。海外のエンジニアは,どんな人達なのか興味津々だったのですが,日本のエンジニアと雰囲気が似ていて親近感を覚えました。この日,世界各国から集まった技術者は3,000人だそうです。すごい…

Just before key note Keynote Speech

幕開けは,Vice PresidentのVic Gundtra氏によるキーノートスピーチでした。初日のすべてのセッションの中でこれが一番良かったと思ったくらい,本当に上手で非常に分かりやすいものでした。

内容としては,Googleが目指すところのおさらいだったのですが,scalability, distribution, storage,…といったキーワードのタグクラウドで表現していて,直近のテーマとして「Make the cloud more accessible」を中心に考えているそうです。また,ウェブ・アプリケーションがクライアント・アプリケーションに追いつく日は近いということも言っていました。
考えてみると,Googleという会社が今していることは,インターネットを徹底的に活用してインフラ的な地位を築いていくという点で一本の筋が通っていて全くブレがないように見えます。僕が知らないだけでこのような会社は他にもあるのかもしれませんが,少なくとも日本にはここまでの先進性を持った企業は確実にないような気がします。

Android

次に一番の目玉だと思われる Android 新バージョンのデモが行われました。iPhoneのような指でドラッグするようなインタフェースと,新機能のガジェット,そして電子コンパスと連動したストリートビューのアプリケーションが紹介されていました。Androidはバージョンが変わるごとに大きな進化を遂げていて,今年一番の注目株であることは間違いないようです。

Google App Engine

Google App Engine についていくつかの発表がありました。有料オプションが提供されるようになったことと Memcache と Image Manipulation の機能が使えるようになりました。そして,ついにディベロッパー登録の制限がなくなり誰でも利用可能になりました。 Memcache は汎用的な技術でちょっと意外な印象を受けたのですが,画像操作ができるようになったのは大きいですね。今まではサムネイルも作成できませんでしたから。

Google Web Tollkit

いまいち日本では盛り上がっていないように見える GWT ですが,Java 5 への対応と20%のスピードアップを果たしているそうです。Google社員の方に聞いたところによると,Google社内のJavaScriptエンジニアが手で書いたコードよりも速くて,そのエンジニアはショックを受けていたそう。また,BlueprintというGWTで書かれたビジネスアプリケーションのデモをしていたのですが,これが Flash と見間違えるほどの良い動きをしていました。また,Eclipse上で,ブレークポイントを設定してDOMの内容を確認するデモは興味深かったです。

OpenSocial

OpenSocial については,API v.0.8 が発表されたものの,内容についての詳しい説明はなくて,特に目新しい点はありませんでした。
OpenID, OAuth, OpenSocial の技術を軸に Web 上のあらゆる場所をソーシャルにしていくということ,現時点で2万人のディベロッパーがいるということを言っていました。あと,この Gundtra 氏は 「REST」を「リスト」と発音していましたが,他の人は「レスト」と言っていたので,レストでいいのだと思います。

Rapid Development with Python, Django and Google App Engine

そして, Python 言語の開発者で Google 社員の Guid van Rossam によるセッションを聞きました。Google App Engine で Django フレームワークを使うという内容で,正直そんなに面白くなかったのですが,生 Guido を拝めただけでも非常に感激でした。思わず,一緒に記念撮影をお願いしてしまいました。その時にGuidoが「日本人なのにRubyを使わないのか?」と言っていたのが,ちょっと面白かったです。

Guido at Python session  Guido

その後はパーティーに参加して,いろいろな人と名刺交換をしたりしたのですが,安藤恐竜さんの Android on Zaurus や佐々木さんのAndroidケータイが大人気で羨ましかったです。僕は英語が得意じゃないので,話をしていてもすぐにお互いに沈黙という状態になりがちなのですが,今度はそれを回避するためにも何かネタを用意していこうと思います。

その後,a2cさん,佐々木さんと Google App Engine の SDK1.1 を試したり,ホテル最上階のバーで軽く一杯飲んでから帰りました。

Google App Engine BoF  Blackberry and Night San Francisco

関連リンク:
Google I/O '08 Keynote: Client, Connectivity, and the Cloud

Opera Mini for Android

» The story behind Opera Mini on Google Android

きたこれ。


試しにエミュレータで動かして,このサイトを表示してみたのですが,エラーで落ちてしまいました。安定度は,Palm版とおなじくらいでしょうか。