Android Weekly Topics

OS更新なしにアプリが高速化! ARTが独立アップデート可能に

8月21日、GoogleはAndroid Developers Blogで、Android Runtime(ART)がOSとは独立してアップデートできるようになり、アプリの起動時間、実行速度、メモリ使用量が改善されると発表しました。

Android Developers Blog: Latest ARTwork on hundreds of millions of devices

Android Runtimeとは

Android Runtime(ART)とは、JavaやKotlinで書かれたアプリのバイトコードをネイティブコードに変換して実行するランタイム環境です。古くはDalvikが動作しており、Android 5でARTに切り替わっています。

ARTは、アプリをハードウェアのアーキテクチャから切り離すことを目的に存在しています。Androidでも、その昔はMIPSやx86を搭載する端末が存在していたので、必要な役割をになっていましたが、ARM全盛となっている昨今では、なぜ存在しているのか疑問にも感じます。とは言え、将来、ARMに変わる新しいCPUアーキテクチャが台頭したときに、ARTさえ動いてしまえばアプリが動作するので、まったく意味をなさないことはありません。

一方のiOSは、ARTのような環境が存在せず、ネイティブコードを直接実行しています。Androidは、iOSと比較すると不利な状況でアプリを実行しているとも言えます。これでも、まずまずの動作速度を稼いでいるので、見方によっては頑張っているとも言えます。

その動作速度を稼ぐために、涙ぐましい努力がされており、Dalvikでは、実行のたびにバイトコードをネイティブコードに変換する方式が取られていましたが、これでは実行速度と省電力化の面で不利になるので、ARTでは、アプリのインストール時にコンパイルする方式が取られており、実行面や省電力面での性能を改善しています。

## OSをアップデートなしに高速化できる

Android 12でOSがモジュール化されたことにより、ART単体でのアップデートが可能になりました。

OSのモジュール化は、Android OSの断片化解消の取り組みの1つとして、端末メーカはカスタマイズ部分をOSと切り離して実装し、OSアップデートを容易に、そして短時間に実施できる枠組みとして用意されたものです。これが、OSアップデートの迅速化にどの程度寄与したのか具体的な情報はありません。

しかし、Android 12以降では、OSのアップデートが提供されるまでに、1年弱末も時間がかかるケースは見なくなっているので、OSモジュール化の断片化解消に寄与していそうです。

これが、ART単体のアップデートにも寄与します。

ARTのようなOS根幹部分のアップデートは、これまではOS全体のアップデートでしか実現してなかったので画期的です。

アップデートはPlayストア経由で提供

ARTのアップデートは、ART 13、ART 14のようにナンバリングして展開されます。後ろの数字は、対応するOSのバージョンを表すように見えますが、そうでもなく、たとえば、ART 14をAndroid 12で実行することも可能です。

OS全体をアップデートすることなく、最新のアプリ実行環境が手に入るのは素晴らしいことで、端末ベンダーからのOSアップデート提供が切れた端末でもアプリの実行環境だけは、最新のものに保つことが可能になります。また、セキュリティ面でも、全てではありませんが、これまでのように古い端末は放置されることなく救済の道筋ができたのはメリットです。

最初に提供されるART 13では、ランタイムとコンパイルの最適化の結果、一部の端末ではアプリの起動が30%向上するとしています。また、今後数ヵ月以内に、ART 14がリリースされます。OpenJDK 11からOpenJDK 17に以降にすることで、コードのサイズを削減しながらパフォーマンスを向上する新しいコンパイラとランタイムの導入が行われているようです。このアップデートは、Playストアを経由してロールアウトされる予定になっています。

ART単体のアップデートは、最新のパフォーマンスを常に提供してくれるだけでなく、端末の見方を「長く、そして、安心して使える」ものに変える可能性もあるので、Googleはおもしろい取り組みを始めたという印象です。

今週は、このあたりで、また来週。

おすすめ記事

記事・ニュース一覧