blog

なぜAndroid 4.4ではDalvikではなくARTを採用することが重要なのか?

Dalvikの代わりにARTが採用されたことは、単にAndroidのプログラム動作の基本的なメカニズムが変わったことを意味し、プログラムの起動が速くなり、リソースが節約されます。ユーザーエクスペリエン...

Jan 5, 2020 · 4 min. read
シェア

おそらく人々は、Googleが新しくリリースしたAndroidのバージョンが4.4と呼ばれていることを知っても驚かなかったでしょう。このアップグレードは非常に取るに足らないもので、バージョン番号0.1をアップグレードし、KitKatという新しいコードネームを立ち上げただけだと思っていました。このバージョンアップに対するグーグルの公式な反応でさえ、控えめなものでした。しかし、Android 4.4で示唆されている変更点を理解するとなると、すべてのAndroid開発者やその他の関係者は、Android 4.4をひとつまみの塩で受け止めなければならないと思います。

Android KitKat 4.4が正式にリリースされたとき、Google+の公式アカウントが投稿したシステムの概要にざっと目を通したところ、注目すべき点は2つだけでした。確かに、これ以上の見どころはありません。その後、コストパフォーマンスを重視してNexus 5を注文し、実際に使ってみて最初に感じたのは「コストパフォーマンスが良い」ということでしたが、システム自体にはあまり思い入れがありませんでした。

簡単に言うと、アンドロイドのプログラム操作の基本的なメカニズムが変更され、プログラムの起動が速くなり、より多くのリソースを節約できるようになりました。ユーザーエクスペリエンスの面では、Androidがよりスムーズになり、バッテリーの寿命が大幅に延びることを意味します。AndroidPolicyの特別記事によると、この変更により、一部のAndroidプログラムの起動が最大50%高速化され、理論的には待機時間が大幅に延長されるとのことです。

ご存知のように、AndroidはJava言語をベースにしており、iOSはObjective-Cをベースにしています。携帯電話とアプリケーションの実行メカニズムという観点から見ると、Javaコードは最終的にユーザーが閲覧可能なプログラムとして実行するために、実際には2つの「変換」が必要です。1つは開発者がインストールパッケージを公開する前に発生し、開発者自身のマシンのCPUを使用します。一方、Objective-Cベースのコードは、開発者がインストーラをリリースする前に一度だけこの「変換」を行う必要があります。

同じ量のコードを使ってプログラムを作成し、そのコードを機能するアプリに「変換」するのに必要なCPU時間が同じだとします。なぜなら、ユーザーは「変換」を実行するためにアプリを開いて時間を浪費する必要がなく、この時間の一部は開発者によって「耐えられる」からです。Androidアプリが相対的に遅いのは、アプリを開いたときに2回目の「変換」が行われるためです。この2つの仕組みは歴史の産物であり、全体として誰が良くて誰が悪いとは言えず、適用範囲だけが決まっています。携帯電話が経験値の高いデバイスであることを考えれば、iOSの仕組みの方が適しているのは明らかです。つまり、この2つのメカニズムの結果として、iOSはAndroidよりも常に高速であり、それは本質的なものです。

もちろん、ARTには他にも悪影響があります。ひとつは、プログラムのインストールにかかる時間が長くなることです。他の技術的要因を考慮すると、この増加は、説明のために引用した「2回目の変換」よりは少し長くなるかもしれませんが、耐えられないほど長くはないことは確かです。私が調べたところでは、小さなアプリではこの変化はほとんど無視できるもので、影響を受けるのはコード量がはるかに多いゲーム系アプリです。しかし、これはARTによってゲームを開く際の時間が短縮されるという利点に比例します。将来的に「バックグラウンドインストール」になれば、ユーザーエクスペリエンスはさらにミニマルになり、ニュース記事をいくつか読もうとすると時間が過ぎてしまいます。

2つ目のデメリットは、インストールされたファイルの容量が増えることです。しかし、それは問題ではありません、この増加は、ファイルの「コード」部分の増加を指し、例えば、100Mのゲームは、コードはわずか20Mかもしれません、残りの80Mは、イメージや音楽ファイルであるため、必要なスペースのインストールの20%の増加であっても、それはスマートフォンの16G、32G、あるいは128Gの容量では、影響はさらに最小限に抑えられます。16G、32G、あるいは128Gのスマートフォンの前では、その影響はさらに小さくなります。

私の知る限り、ARTプロジェクトは2年前に開始されましたが、脚光を浴びることはなく、散発的な報告のみでした。しかし、Android 4.4は、携帯電話メーカーやアプリケーション開発者がプロジェクトをテストし、改善できるように設計された「開発者プレビュー」という形で利用できるようになりました。私が学んだところでは、ARTの安定性は悪くなく、日常的な使用にはまったく問題ありません。

Android4.4のARTオプションは、Android5.0での大きな変化の前触れである可能性がある、と私が言っているのはそのためです。 もしそうなれば、iOSの開発者やユーザーが誇りに思っているスムーズな体験は、Androidの登場によってその体験が「マスマーケット」になるため、もはや自慢できるものではなくなります。もしそうなれば、iOSの開発者やユーザーが誇りに思っているスムーズな体験は、Androidプラットフォームの登場によって "大衆市場 "になってしまうため、もはや自慢できるものではなくなってしまうでしょう。Androidの巨大な市場シェアとGoogle Playショップの台頭と相まって、iOSデバイスは何を頼りに高価格戦略を支えることができるのでしょうか?

Read next

jQuery Mobile + AngularJsの統合 体験談

どちらも良いJSプログラミングフレームワークですが、それぞれの用途は異なっており、jQuery Mobileのように、良いグラフィカルな空間を提供するだけでなく、jQuery自体に依存して、多くのスペースの操作APIを提供し、Angularは、任意のコントロールを持っていませんが、良いJSのMVCフレームワークであるだけでなく、データバインディング機能のためのスペースを提供します。

Jan 5, 2020 · 3 min read