第二回丸山先生Android勉強会報告

第二回丸山先生Android勉強会に行ってまいりました。昨日は死んでいたため今日の更新となりましたが、今日も既に外が明るくなっているため手短にいきたいと思います。


会場ですが、ほぼ満席でした。年齢層が若干高めに感じたのですが学生さんが後ろにいっぱいいたようです。
空調の延長申請を忘れられたとのことで開始時はかなりの気温で皆死んでいました。私も最初のほうはつぶれていました。だいたい10分かそこらで空調が入ったと思います。


丸山先生の講演は事前の資料配布からViewだと思っていましたら前回終わらなかったとのことでIntentでした。実は今回Viewに入ることができずViewはさらに次回へ持ち越しとなったのでした。


ビデオも公開されているようですので内容はあまり報告する必要がないかと思いますが、メモの中身をそのまま張っておきます。


Intent 訳がみつからない。最近良く見る用語。
SOAで一番上位の抽象的な概念、ポリシー。抽象的な意図を書くもの。Activityに引数でなく、Intentを渡すことが大事。Actionと対象を同時に指定する。これはRESTなどの潮流と同じ。
onCreateの引数のicicleはつらら、ライフサイクルが戻った時に溶かす意である
Androidファイルシステム自体全体がサンドボックス
データ共有にはcontent://のデータベースを経由してデータ交換を行う。RESTfulWebServiceっぽい。
Intentの意図を理解すると記述が楽になる。
電話帳からピックアップする例:IntentをstartSubActivityに投げるとIntentレシーバーである電話帳が起動される。電話帳を起動するのではない。
GoogleMapやYouTubeまでもすでにIntentの対象となっている。URI
android.content.Intentに複数定義されている。


詳しくは公開されているPDFをご覧下さい。
丸山先生がすごいのは相変わらずソースをきちんと読み込んでいらっしゃることです。これはJ2EEの頃から変わられておりません。用語の解説だけですとあまり信用できなかったり説得力を感じないことが多いのですが、丸山先生の講義はいつもソースコードが豊富で私はとても好きです。


さて、AndroidではデフォルトのIntentレシーバとしてGoogleのサービスが色々と用意されています。例えばGoogleの検索サイトであり、例えばGoogleMapsであったりします。このことに関してGoogleの独占ではないかという危惧が聞こえましたがそうではありません。
公式のドキュメントにも書いてありますがIntentレシーバは変更することが可能です。


Intentレシーバの変更方法ですが、その前にとても面白い体験をしました。実はつい先日、AndroidのManifestは記述がXMLでありますが、apkファイルに保存されるとWBXMLになりその中身がパースできなかったという経験を書きました。その直後、丸山先生の第二回用資料の中でWBXMLのデコーダに関する情報が書かれていました。
さらにその直後、なにげにリンク集にて紹介もしたwww.anddev.orgのNews & Rumorsを読んでいたら丸山先生が紹介されていたものと全く同じのWBXMLのダンプ成功の記事と、それを応用してIntentレシーバの変更方法が記載されていたのです。情報がどんどんと連なって自分の中の疑問が解かれていく最高の瞬間でした。


ここがその記事です。
http://www.anddev.org/android_-_internal_xml_dumped-t1453.html
丸山先生も講義で紹介されていたIntentにURIのgeoを用いてGoogleマップを表示するプログラムにて、別のIntentレシーバに切り替える方法が紹介されています。Systemのapkファイルを解析して初めて(?)わかった情報を用いています。私はまだ実際に試していませんが、成功報告をお待ちしております。