タグ

AndroidとLLVMに関するvccのブックマーク (2)

  • Androidの仕組みを知る(2)

    Android Runtime 次いで,アプリケーションの実行環境「Android Runtime」を解説する。Android Runtimeは,仮想マシン「Dalvik VM」と,基的なAPIを提供するコア・ライブラリで構成される。 Androidのすべてのアプリケーションは,Dalvik VM上で動作する(図4)。Dalvik VMは,Java VMと同様,メモリー管理をガベージ・コレクタ*が担当している。開発者がメモリーの確保と解放を明示的に実行しないでも,メモリー・リークによる深刻なシステム破壊を防いでいる。 加えて,JavaからC/C++を呼び出すAPIのJNI(Java Native Interface)にも対応している。CやC++で書かれたネイティブのコードが実行可能となっている。 Dalvik VMのアーキテクチャは,“レジスタ・ベース”を採用している。レジスタ・ベースは

    Androidの仕組みを知る(2)
    vcc
    vcc 2017/10/20
    Dalvik VMは,レジスタ・ベース。Java VMは“スタック・ベース”。スタックは主メモリー上に確保されるため、CPU内部のレジスタのみで実行するレジスタ・ベースのアーキテクチャは,より高速に動作する。
  • Android携帯ゲームを作って世界に配信してみよう(1) ―― まずは小さなアプリからこつこつ作ってみる

    コラム スタック・ベースのVMとレジスタ・ベースのVM  VM(Virtual Machine)とは,仮想マシンの略です.通常はハードウェアのCPUが機械語を解釈して実行しますが,仮想マシンは,CPUを模したソフトウェアが機械語を解釈して実行します.当然,実行速度が遅くなるというデメリットがありますが,ハードウェア・アーキテクチャとは異なるアーキテクチャで書かれたプログラムを実行できるなどのメリットがあります. VMには,スタック・ベースのVMと,レジスタ・ベースのVMがあります.まず簡単にスタックとレジスタの動作原理を説明します. スタックとは,FILO(First In Last Out:先入れ後出し)でデータを管理(格納/取り出し)するデータ構造のことです.スタック領域は,一般的にメモリ上に確保されます. レジスタとは,CPUの内部で一時的に計算結果を保存する領域です.一定のビット数

    Android携帯ゲームを作って世界に配信してみよう(1) ―― まずは小さなアプリからこつこつ作ってみる
    vcc
    vcc 2017/10/20
    携帯電話はARMアーキテクチャがデファクト.ARMはレジスタ数に32ビット・レジスタを16本内蔵しているため,Androidは「ARM」系での実行に特化し,レジスタ・ベースのDalvik VMが採用されたと言われています.
  • 1