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

終わってどれだけたってんだかと思いますが、先日1時間かけて書いたが消えてしまった物に含まれていた分ですので御了承下さい。


一度消えてしまったことと時期的に外れていることからもう書かなくても良いかとも思いましたが、現場で取ったメモを見ていたらもったいない気がしてきました。今回第5回までの間隔がかなり長いので第5回に向けての復習(?)になれば幸いです。
なお、出席者からの報告はネット上に数多くありましたのでここよりそちらを探されたほうがより良い理解につながると思います。


後、ACアダプタを持ち込むのを忘れたため途中で電源が切れてしまいメモの記述が尻切れトンボになっておりますが決して後ろの内容が面白くなかったわけではありません。御了承下さい。


さて、先頭バッターはブリリアントサービスの近藤さんでした。
最初に用意を始められたときにどうやってエミュレータの画面を最大化されているのだろうと思い、手元のノートでエミュレータのドキュメントをひっくり返していました。
そうしたらAndroid実機でして大変驚いたわけです。
近藤さんが作成されたのはArmadillo-500と呼ばれるワンボードのコンピュータにAndroidを載せられた実機だった訳です。
VGA/S-VGA出力が可能とのことで画面はボードから直でプロジェクタに映されていたのでした。
ブリリアントサービスさんのはてな日記(id:bs-android)に情報があります。


プレゼンソフト"Prezenoid"まで自作で、恐らく世界初のAndroid向けプレゼンソフトだと思われます。高橋メソッド的な大きな文字表示にイメージ取り込み、画面の切り替えにAndroidにある3DRotationから始め様々なアニメーションを利用可能なようでした。

メモしてきたスペックは以下のとおりです。

  • Armadillo-t500へのポーティング
  • ARM1136JF-S400MHz SH905iはARM11 390MHz
  • RAM64MB
  • FLASH256MB
  • VGA-SVGA

近藤さんの実力の高さを示すのはこれはお仕事ではなかったそうで、仕事の後に作業を行い3日ほどで動かしてしまったそうです。
最初はこちらにて公開されているAndroidのKernelでなく(?)ARM用のLinuxを動作を成功させ、その後Bennoさんが公開されているAndroid向け拡張のパッチを当てられたそうです。
やはり動作するまでは試行錯誤の連続だったそうです。
EABI(Embedded Application Binary Interactive)でないと動かないそうで、コンフィグをリセットしてEABIをONにしてやっと動くことができたとか。
動作したときにはうれしくて夜中に社長に電話をしたという微笑ましいエピソードが公開されておりました。(^^)


この時点でキー操作ができなかったそうです。
printEventsにてキーが検知されていないのを確認
/drvers/video/mxc/mxcfb.c の修正で解決
BS社ブログにてパッチ公開中とのことです。


パフォーマンス的にはDroidBenchにて30~37FPSとのことで割りと軽快です。3Dに対するハードウェアアクセラレーションはハード上に存在しないボードのためかかっていないそうです。


閉めは現在はARM9以上固定だが、ソースさえ公開されれば様々なプラットフォーム上で構築できるであろうとのこと。


QAです。

64MBでは苦労していないか? ローメモリキラーを入れないと遅い
サウンドは実装していない。PCMで480000HZで流す。
アルマジロは3Dアクセラレータを使っているのか。載っていない。あるバージョンもある。
あるバージョンを買えばできるのか?ぶっちゃけやってみないとわからない。

Android on SELinux

日立ソフトの仲村さんによるAndroidの下層のLinuxSELinuxを採用されたレポートです。


Androidのセキュリティには2種類の概念があるそうで1つはJavaレイヤーのセキュリティ、そしてもう1つはLinuxのパーミションベースドなセキュリティです。
前者にはCのライブラリレベルのセキュリティホールの存在に対処できないという欠点があり、後者ではrootさんならなんでもできたり、PNGライブラリに存在した穴のような特権昇格攻撃には対処できないという欠点が存在しました。


SELinuxならLinux上のリソース(ファイル、プロセス、etc.)を全てオブジェクトとしてとらえ、きめ細かなアクセスと実行の制御が行えます。


ただし設定が難しいという欠点があり、皆オフにしているという自虐的なネタで爆笑を得ておりました。(^^)*1


さて、そんな誰もがオフにする:-) SELinuxですが、Android上での利用上の問題として以下について説明をされました。

  • サイズがでかい。メモリを数MByte消費
  • 数万ルールの設定が必要。組込用のルールセットが存在しない。


この問題を解決するため既にサイズ削減を目的として組込み向けプロファイルをSELinuxのコミュニティに向けて提案されたとのことで実際にサイズは500KBytesにまで削減されたそうです。


またルールの編集が簡単に行えるように専用のアプリ"SELinux Policy Editor"も開発されたとのことです。
http://seedit.sourceforge.net/

ここからメモがありません

さて上の途中でPCのバッテリが切れてしまい、メモ無しです。
Zaurus上で実際に動いているAndroidなど面白いネタが満載だったのですが、私の鳥頭は三歩歩くと皆忘れてしまいました。

最後にサン電子の水野さんよりGoogleIO参加報告がされました。
これは非常に参考になる内容ですのでぜひ勉強会Wikiより資料をお読みになることをお薦めいたします。
http://android.siprop.org/index.php?%CA%D9%B6%AF%B2%F1%2F%C2%E8%BB%CD%B2%F3

Google IOではAndroidの中身情報としてDalvik VM, Inside Framework, Android Anatomyなどの発表が行われたようです。
どれも中の情報は非常に濃い、今得られる最高の情報だと思います。

*1:実際、RedhatさんでもRHEL5からはRHCE試験においてSELinuxをオンにすることが強制されておりますが、そのRedhatさんでも皆さんオフにされてますよね?とウケを取っておりました。