Hello Android
最初のアンドロイド開発で目にするHello Android。流れを紹介します。
1. アプリ起動時の流れ
エミュレーターや端末がアプリを起動すると、
Android OS の ActivityManager が AndroidManifest.xml を読み込みます。
マニフェストの
MAIN + LAUNCHER が設定されている Activity(=MainActivity)を見つけます。
OS が MainActivity のインスタンスを自動生成します。
この時、コンストラクタはほぼ使われず、ライフサイクルメソッド(onCreate() など)が呼ばれます。
onCreate() の中で、
setContent { ... } が呼ばれ、Jetpack Compose の UI が組み立てられます。
2. MainActivity の役割
MainActivity
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) // 親の処理を呼び出す
setContent {
MyMemoTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}
そこで
OS が MainActivity を new して onCreate() を呼びます
→ 自分で MainActivity() を呼び出すことはしません。
setContent { ... } の中で Compose が UI を描画します。
Greeting(name = "Android") が呼ばれ、その中で "Hello Android" が表示されます。
まとめると
最初に呼ばれるメソッドは MainActivity.onCreate()
インスタンス化は Android OS が自動でやってくれる
setContent {} が UI のエントリーポイントになっている
"Hello Android" の文字は Greeting 関数の中に書かれている
という事になります。