2011年07月20日

ABC2011Summer報告(カンファレンス)

前回の続き。午後のカンファレンスのこと。メモと消えかけの記憶が頼り。

■Session1:ロボットトラック:「ADKボードを用いたワークショップ」
アールティがOpenADKの概要とGoogle I/Oの様子を報告するという内容。 技術的に濃い話というよりは、ロボットの作り方とかリアルとクラウドのつなぎ方の持論が興味深かった。ADKのキモというのは拡張ボードそのものではなくボードとAndroidデバイスを結ぶプロトコル、特にボードと結びついたアプリやサービスをボード側が指定できることなのだという。ユーザやスマートフォンは、接続相手のことを事前に知る必要がなく、最初の接続時のネゴシエーションで全てが上手く行く。リモコンになったり、説明書になったり、デバッグコンソールになったり。
ロボットや家電の作り方のヒントとしては、スタンドアローンでもしっかり動くように作っておいて、Androidデバイスと接続した時にプラスアルファの機能・性能を発揮するという思想が大事とのこと。ネットワークに依存しないと何もできないロボでは意味がない。実際に沢山のデモを行った経験から出る言葉は説得力があった。
RT-ADK(open Accessory Demo Kit)についても説明あり。フレームワークとデモボードの名前が紛らわしいことについては、失敗だったとの談。4000円くらいで買える安価なモデルも展開する予定があるとのことで、試作品が会場に持ち込まれていた。
ADKの遅延については、体感的には100ms行かない程度とのこと。wifiと比べればずっと速いらしいが、Androidデバイスに制御系を入れてフィードバック制御するには遅い。ロボット側に(分散?)制御系を入れるなどの工夫が重要。先述の作り方ヒントにも繋がってくる。

■Session2:開発トラック2:「Linuxカーネルから紐解くAndroid」
アプリケーションフレームワーク(Javaのクラスライブラリとして見える部分)を支えるカーネルに着目しようという企画。セキュリティ、プロセス間通信、電源管理、メモリ管理について簡単な説明があった。生コードは残念ながら出てこなかった。
セキュリティ。これは、UID/GIDをアプリごとにユニークにつけるサンドボックス思想の説明だった。
プロセス間通信。Binderの話。先述のセキュリティより、アプリ間の相互干渉は困難である。ファイルシステムを介したやり取り以外に、Binderと呼ばれる仕組みがあるよという話。実はIntentを使う時にお世話になっているのだが、そのことはあまり知られていない。Unixのミドルウェアを移植することを想定してUnix的なプロセス間通信との得失を問う質問があったが、将来的な互換性とセキュリティの観点からAndroidの流儀に沿うことが薦められていた。ただし、Binderを生で使うのは技術的ハードルが高いとのこと。良い子はIntentを使おう。またはSocketを使うべし。
電源の話。WakeLockの話だった。
メモリ管理の話。LinuxではOutOfMemoryが発生すると立ち上がっているアプリがキルされるが、Androidでこうなるとまずいので、他のアプリをキルする処理が走るよという話。で、犠牲者を探す際には優先順位がきっちりと決まっているのだよ、と。サービスは優先度が凄く高くてキルされにくい。タスクキラー入れてもメモリ足りないと泣いている人は、サービスを乱発していないか調べてみるとよいだろう。「アプリの管理」→「実行中タブ」からサービスの起動数が見られる。

■Session3:開発トラック1:「アプリ開発・端末毎の解像度の違いを吸収する方法」
OpenWnnフリック対応版の中の人が講演。リソースディレクトリの上手な使い方と、ソツ無いレイアウトを作るコツの話。列挙すると、

  • 画像のオートスケールは避ける。ボケるから
  • 端末の最大解像度は今後大きくなるのだから、思い切って大きめに画像を作るべし
  • マニフェストにはminSDK=3(Android 1.5)とする。後方互換性のため
  • Project Build TargetのSDKバージョンを色々変えて動作確認する。最後に最新のターゲットでリリース版を作る。
端末の解像度やセンサの特性データベースが欲しいですとの談。対して、AndroidDeviceInfoShareというソフトがあるとのレスポンス。

■Session4:アカデミートラック:「MONAC・モバイルP2Pとクラウドを融合するメッセージングシステム」
継続的なネットワーク接続が困難な状況で通信の到達性を高める通信手法(DTN:遅延耐性ネットワーク)の実装。3G接続が制限された状況下でP2Pのメッセージ交換を駆使してインターネットへのメッセージアップロードを実現しようという技術の説明。震災に触発されたとのこと。 実は、クラウドサービスのユーザ認証を透過的に扱う仕組みがなおの事凄い。メッセージ交換アルゴリズムは、epdemic routingという、手当たり次第にメッセージを交換する仕組みなので、中継する端末に負荷がかかるらしい。課題は、インターネット側からDTNにデータをダウンロードする(持ち込む)技術の確立とのこと。活発に質問が飛び交った。

■Session5:アカデミートラック:「いま求められる、Androidのセキュリティ」
セキュリティ部の設立趣旨と、camellia for Android(暗号ミドルウェアの移植)の紹介、ウィルス対策ソフトウェアの是非を扱う紙芝居の3本立て。マルウェア対策については教科書どおりの話だった。

ラベル:android
posted by yuji_at_radiance at 00:08| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。