Androidのクラスローダーのプロセスとは何ですか。

Androidのクラスロード処理は以下のステップに分けられます。

  1. クラスの完全限定名(パッケージ名 + クラス名)からバイトコードファイル(.class ファイルまたは .dex ファイル)を検索してメモリに読み込む。
  2. リンク(連携)
  3. バイトコードファイルの検証(Verification):形式の正当性を確実にすることで、悪意のあるコードが挿入されないようにすること
  4. 静的変数のメモリ確保とデフォルトの初期値設定
  5. リゾルーション: クラス、インターフェイス、メソッドなどのシンボル参照をダイレクト参照に変換すること
  6. クラスの初期化(静的変数の代入や静的コードブロックの初期化を含む)

Androidでは、クラスのロードはClassLoaderによって行われます。AndroidでのClassLoaderは、Bootstrap ClassLoader、System ClassLoader、Application ClassLoaderの3つの階層に分けられます。このうち、Bootstrap ClassLoaderはコアライブラリのロードを担当し、System ClassLoaderはシステムクラスのロードを担当し、Application ClassLoaderはアプリケーションのクラスのロードを担当します。

bannerAds