Android
▼人気記事ランキング
3.構成
3.3.仮想マシン
Android 4.4以前のバージョンで動作するアプリケーションは、基本的にはDalvik仮想マシン (VM) 上で動作する。DalvikはJavaのオープン実装であるApache Harmonyをベースとしているが、Java APIセットからはSwingAWTなどが除去され、Android専用のUIフレームワークや独自ライブラリなどが追加されている。Java CDCのAPIは、全てではないが、概ね含まれている。なお、オラクル(旧Sun)Javaの互換性テストを通過していないため、正式なJavaではない。APIセットはJava Platform, Micro Edition (Java ME) とも異なる。Android 7.0 Nougat以降はJava APIライブラリの実装がOpenJDKベースになった[29]

Googleから提供されているソフトウェア開発キットでは、Javaプラットフォームによるプログラミング環境と、C/C++による開発がサポートされている。Java以外にも、Javaプラットフォーム向けの複数の言語(ScalaKotlin)で書かれたプログラムがDalvik/ART上で動作する。Java Native Interface (JNI) を利用して、JavaとC/C++間で相互運用することも可能である。Android 2.3以降ではNative Activityのサポートにより、使用可能なAPIの制約はあるもののC/C++のみでアプリケーションを開発することも可能になっている。また、.NET Framework互換環境の1つであるMonoもAndroidに対応しており、XamarinMicrosoft Visual Studioを利用することで、.NET言語(C#/F#)を使用してAndroidアプリケーションを開発することができる[30][31]

Android 4.4 (KitKat) からは、デベロッパー向けに新たな仮想マシンAndroid Runtime (ART) が実装された。ARTは、Dalvikよりもアプリケーションの動作効率などを向上させることを目的に開発された[32]。Dalvikの場合、多様なハードウェアに対応できるよう、アプリを中間コードの状態で保管しておき、実行直前にネイティブコードに変換して動作させるJITコンパイル方式が採用されている。一方でART仮想マシンは、予め最初からネイティブコードに変換しておくため (ahead-of-time; AOT)、実行速度や動作速度が向上する[33]。Android 7.0以降のARTではAOTとインタープリタとJITをミックスしたハイブリッド手法が採用された[34]

なお、Android 4.4では依然としてDalvikが標準となっており、ARTを用いるためには開発者向けオプションで設定が必要である。ただし、アプリケーションによってはART上では正常動作しないものもあり、Dalvikとの完全互換は保証されていない[35]

Android 5.0からは、ART仮想マシンが標準となった。5.0に搭載されたバッテリー改善システムと、ARTの効率性の良さという組み合わせによって、バッテリー持続時間がAndroid 4.4と比較して1.37倍と大幅に伸びた[36]

[4]前ページ
(3.2.対応CPU)
[6]次ページ
(3.4.ブートローダー)
~目次に戻る
出典:Wikipedia
2019/11/12 07:10
ソ人気記事ランキング
2019/11/15 更新
 1位日本
 2位伊藤綾子
 3位リンゼイ・アン・ホーカーさん殺害事件
 4位二宮和也
 5位11月14日
▲上に戻る
[9]Wikipediaトップ
[0]gooトップ
免責事項
(C)NTT Resonant