次期Androidではアプリがネイティブ化するかもしれない

Android

Android 4.4(KitKat)が発表されましたが
その中で面白い機能が開発者向けオプションでランタイムの切替えを行えるようです。

ランタイムとは、プログラムを実行するために必要な部品類をまとめたものとなります。

今は、Dalvik という仮想マシンでプログラムを動かしています。
これは、プログラムを動かす前にこのDalvikというものが、自分で使える形に一度変換して
動かすという流れになります。
CPUが直接動かすのでは無く中間にDalvikが入り動かすというイメージです。
その為、動きが遅くなりがちで、無駄に電力消費があります。

メリットとしては、各社の構成が違うアンドロイドでも同じアプリがそのまま動かせるという事があります。

Android 4.4ではこれを「Android Runtime(ART)」と言うものに置換える機能が
テスト的に実装されています。

ARTは、プログラムをインストールしたときにCPUが理解できるように
変換してから動かすという流れになります。
CPUが直接プログラムを動かすイメージです。
iPhoneのアプリはこの形式に近いものになります。

Dalvikと違い間に入るものが無いのでCPU本来のパワーを発揮でき、
Dalvikを動かす必要が無い分電力消費も抑えられると考えられます。

速いというメリットはありますが、同じ構成でしか動かないというデメリットもあります。
iPhoneの様に1機種だけなら有用ですが、
Androidのようにいろいろな機種がある端末では使えません。
が、インストールするときに自分の環境にあったように変換することでそのデメリットを回避しました

このランタイム変更により、同じアプリでも実行速度が上がるようになります。
Quadrantのベンチマークで50%程スコアが上がるようです。

ただ、このARTはテスト的な実装で有りアプリの最適化などは行なわれず、
そのまま実行できるような感じに変更するという事です。
それでも、現状のDalvikよりは良さそうなのでこのランタイムの完成が待ち遠しいです。

ちなみにこのARTは2年ほど前から開発が進められていたみたいです。
2年前といえば、Android 2.3 が全盛の時で、
Androidの使用感がiPhoneに追いつけないレベルの時期ですね。
今はCPUパワーで頑張っている状態ですが、
当時はDalvikではどうしようも無いと考えて開発に着手したのでしょうか。

突然切り替えても、アプリという過去の遺産を引き継げないのでは本末転倒ですので
遺産を使えるようにする環境も設けて、実験できるようにやっとなった感じでしょう。

これからこのランタイムの最適化やアプリを変換するときに最適化を行なうようになるのでしょうね
Android 5 の目玉機能になることは請け合いです。

コメント

タイトルとURLをコピーしました