Android携帯はどうなのよ?


初のAndroid搭載携帯電話として話題の「T-Mobile G1」を知り合い(↓)が入手したので見に行ってきました。


今回、ご協力いただいたのは、有限会社シーリス( http://www.c-lis.co.jp/ )の有山さんです。Android用のアプリの開発などをされています。


■ GPS性能


GPSの分解能(?)は5メートルぐらい。
また、電子コンパス内蔵で、方角も取得できます。こちらは5度ぐらいの分解能。
iPhone同様、デバイスの傾きも取得できます。


iPhoneでは「SekaiCamera」という実現不可能なアプリで投資を募りコンセプトデモがありましたが、電子コンパスが搭載されている「T-Mobile G1」なら、本当に「SekaiCamera」が作れなくはないのだろう、と思いました。


■ 速度


私 「足し算を1億回ループで回したらどれくらいの速度が出ますか?」


startTime = System.currentTimeMillis();
// 1回目のループ
for(int i=0; i < lim; i++) {
baseNum += incrementNum;
}
endTime = System.currentTimeMillis();

processTime1 = endTime - startTime;

有山「27641 msですね」
私 「forループ中に (+=)が2回ではどうですか?」
有山「32262 msですね」
私 「1億というのは100M回で、100M/27.641s = 3.61M回/s。後者が100M/33.262 = 3.10M回/s。ループのための条件判断とジャンプにほとんどの時間が食われていますね。また、速度ですが、CPU性能から逆算するに、native codeの10倍ぐらい遅いですね。JITがしょぼしょぼっぽい気がします」
有山「AndroidVMであるDalvikの設計では、『携帯デバイスではあんまりガリガリ計算させない。バッテリ減るから。高負荷処理はサーバー側で受け持って、結果だけ表示させれば良いんです。』という、いわゆる「クラウド思想」が強いのでしょう。エミュレータの段階では3D画像のレンダリングも6fps位の速度しか出ず、ゲーム系の人達は結構文句を言っていた記憶があります。今はハードウェアでレンダリングできるので随分速くなったようです」


■ アプリ開発者にとって


Android携帯ならば必ず電子コンパスを内蔵しているというわけではないらしく、特定の機種には電子コンパスは搭載されていない、ということもあり得るようです。


画面解像度も携帯ごとに異なる可能性もあって、このへん、世界で実質的に1種類しかないiPhoneとは異なり、発売される携帯すべてで動作テストを行なう必要がある従来型の携帯アプリ開発に近いものがあるようです。開発者にとっては負担が大きいと思いました。


ただ、現在の携帯本体の開発においてはOSの開発にかなりの開発費を裂いているのが現状なので、各メーカーが今後Android OSを本格的に採用してくる可能性はあります。そうなってくると、iPhoneより大きなマーケットが形成される可能性もあって、避けては通れないのかなぁと。


そのときにはきっと、Android搭載携帯が何百台もあって、開発したアプリの動作テスト用に端末を貸し出すような事業が成り立っていたりするんですかね。Androidエミュレータがきちんと作られているので、実機テストはそれほど力を入れなくてもいいのかも知れませんが。


■ 関連記事


Android携帯 T-Mobile G1 正式発表、マルチタスク&プッシュ同期サポート
http://japanese.engadget.com/2008/09/23/android-t-mobile-g1-gmail/