技術の世界では、新しい用語と略語は新しいものではありません。また、既存のソフトウェアでさえ新しいリリースがリリースされるたびに、誰もが使用し理解しているように見える新しい用語が出現することがあります。しかし、初心者や多くのカジュアルユーザーにとっての問題は、新しい意味が何を意味するのかを完全に理解しておらず、主に開発者ではないという事実により、公式ソースから自分で簡単に見つけることができないことですそのような多くの用語とその技術的な詳細を説明することにあまり熱心ではありません。せいぜい、あなたは説明を提供する公式のリンクを指し示しますが、そのような技術的な用語では、技術者でない人にはほとんど役に立たないでしょう。
AddictiveTipsでは、常に誇りを持っています技術的な概念を馬鹿にしたり、一般ユーザーや技術初心者に同意できる用語で答えを提供したりします。したがって、GoogleがAndroid 4.4 KitKatでARTを導入することを決定したとき、これを読者に新しいランタイム環境を紹介し、誰もがこのすべてが何であるかを理解し、Dalvik仮想マシンとどう違うのかを理解する機会と考えましたARTは、置き換えるために構築されています。
ランタイム環境とは何ですか?
実際の質問に答える前に、ランタイム環境が実際に何であるかを理解する必要があります。簡単に言えば、ランタイムは、プログラムが実行されているときに実行されるソフトウェア命令で構成されます(特にソフトウェアのコードの一部ではない場合でも)。これらの手順は、基本的にソフトウェアのコードをコンピューターが実行できるコードに変換します。したがって、すべてのコンピューター言語には、その言語で記述されたコードを適切に実行できる何らかのランタイム環境が必要です。
Androidは、仮想マシンをAndroidアプリケーションを構成するAPKファイルを実行するためのランタイム環境。仮想マシンを使用する利点は2つあります。第1に、アプリのコードはコアオペレーティングシステムから分離されているため、何か問題が発生しても、分離環境に含まれ、プライマリOSに影響しません。そして次に、アプリが別のプラットフォーム(モバイルアプリの開発でよくあるようにPCなど)でコンパイルされた場合でも、仮想マシンを使用してモバイルプラットフォームで実行できることを意味します。 。
Androidの場合、仮想マシンベースのランタイムこれまでに使用されている環境はDalvik Virtual Machineとして知られています。これは、OSの詳細を掘り下げたことがある人なら誰でも知っているはずです。
仮想マシンを使用する理由
これが実際に私たちが触れたポイントです。仮想マシンは低速であり、それを否定することはできませんが、実際には、有利な選択となるいくつかの利点があります。
- 仮想マシンは隔離された環境を提供しますコード実行用。したがって、アプリにコアOSを損傷する可能性のある悪意のあるコードが含まれていても、システムファイルに直接影響することはないため、コアOSが破損することはありません。大規模なメリットは、オペレーティングシステムの安定性と信頼性の向上です。
- Playストアを通じて提供されるアプリAPK(または、その他のソース)は、開発者が実行前にコンパイルしてデバイス上で実行するために仮想マシンに依存する未コンパイルの命令です。これにより、より多くの互換性が提供されます。開発者が既にコンパイルされたコードを提供し、Snapdragonベースのプロセッサ用にコンパイルされた場合、たとえばTegraチップで正しく実行されない可能性があります。したがって、このデバイス上のコンパイルはこの問題に対処します。
だから、Dalvikとは何ですか、そして何が間違っていますか?
それは尋ねるべき質問ですよね? Dalvikは、Androidが2007年に開始されて以来存在しており、Android 2.2 Froyoで導入されたJust-In-Time(JIT)コンパイルアプローチアプローチを除き、それ以降ほとんど変更されていません。起動したとき、またはユーザーが必要な指示を入力したとき。これは便利であり、実行時にコードを1行ずつコンパイルおよび実行していた従来のインタープリターアプローチを改善しますが、アプリを初めて起動する場合のマイナス面は大きなオーバーヘッドです。
これは、システムが一緒にプルする必要があるためですすべての必要なファイル、アプリをコンパイルしてRAMにロードします。コンパイルされたアプリがRAM内にある限り、スナップレスで応答し続けますが、さらにアプリをロードしてRAMがなくなると、最初のアプリがアンロードされるため、その後の起動時にプロセス全体がやり直されます。このアプローチは紙の上で理にかなっており、実際、プラットフォームに対してこれまでうまく機能していました。ただし、RAMが限られている古いデバイスは、ロード/アンロードサイクルがより頻繁に継続するため、システム全体の応答性の点でシステムが遅く感じるため、最も被害を受けます。そこで新しい仮想マシンARTが登場します。
ARTとは何か、それは物事をどのように改善するのか?
ART、またはAndroid RunTime(かなりラメ名、ええ、Googleが開発者オプションとしてAndroid 4.4 KitKatで導入した新しい実験的な仮想マシンです(Dalvikは現在のところデフォルトとして設定されています)。 ARTとDalvikの主な違いは、どちらも使用するコンパイルアプローチです。ARTは、起動する前にアプリを基本的にコンパイルするDalvikのJITとは対照的に、新しいAhead-Of-Time(AOT)コンセプトを採用しています。つまり、初回インストールには時間がかかり、アプリは内部ストレージのスペースをより多く使用しますが、同時に、アプリはインストールされるとすぐに完全にコンパイルされるため、起動時間がはるかに速くなります。同様に、コンパイル部分はインストール時に一度だけ処理されるため、プロセッサーへの負担が少なくなり、バッテリー寿命と全体的なパフォーマンスが向上します。
ダルビク対ART –比較
先に進む前に、両方の仮想マシンを簡単に比較してみましょう。
ダルビク | アート |
Just-In-Time(JIT)アプローチを使用します。これにより、ストレージ領域の消費は少なくなりますが、アプリのロード時間は長くなります | Ahead-Of-Time(AOT)アプローチを使用します。これにより、インストール時にアプリがコンパイルされ、ロード時間が短縮され、プロセッサー使用量が削減されます。 |
キャッシュは時間の経過とともに蓄積するため、起動時間が短縮されます | キャッシュは初回起動時に構築されるため、デバイスの再起動にはかなり時間がかかります |
占有スペースが少ないため、内部ストレージデバイスが少ない場合に適しています | APKに加えてコンパイルされたアプリを保存するため、はるかに多くの内部ストレージスペースを消費します |
安定しており、時間がテスト済みです–アプリ開発者に最適なVM | 非常に実験的で新しく、アプリ開発者からの多くのサポートはまだありません |
ARTは実験的だと言います…
はい、そして今、それはでのみ利用可能ですSnapdragonチップセットを搭載し、Android 4.4 KitKatを実行しているデバイス。必要に応じて、Dalvikから非表示の開発者オプションからARTに切り替えるオプションがありますが、一部のアプリが正常に動作しない可能性があることをお知らせします。また、Dalvikの下にアプリキャッシュが既に構築されている場合、切り替え後の最初の再起動には最大で30分かかることがあります。
Googleは主にARTを開発者が遊んで、将来の永続的な切り替えの根拠を確立するためのキットカット。これは、ARTが今日使用できる状態にあることを意味するものではありません。将来的になりますが、現時点では実験的なものであり、エンドユーザーが日常的に使用するには適していません。
ARTのメリットについては、レポート。ほとんどのレビュアーにとって、テストデバイスは、2ギガバイト以上のRAMを備えたクアッドコアプロセッサで構成されています。これは、ARTによる速度の向上を実際に観察するのに十分な設定です。それでも、ランダムなユーザーは、速度が50%以上、バッテリー寿命が30%以上向上すると報告しています。さらに、それはプラセボ効果にすぎないと主張する人もいます。
すべての公平において、それの前に何も言うことができません大衆が利用できるようになり、実験的なタグを失います。したがって、後でその議論を保存します。現時点で確実に言えることは、ARTは未来だということです。 Googleは、iOSに真に対応するために事前にコンパイルを行う予定であり、iOSの最大のカウンターパートであり、ARTは道を開くでしょう。名前がどれほど馬鹿げているように見えても、現在の名前が不完全であっても、ARTはどんどん増えていきます。
コメント