ガイド
ANDROID INTERVIEW Qs
Android開発者を採用する際の技術面接で使える質問と模範回答。Activity/Fragmentライフサイクル、Jetpack Compose、Kotlin Coroutines、Room、WorkManager、パフォーマンス最適化などを網羅。
最終更新:2026年5月
ActivityとFragmentのライフサイクルの違いを説明してください
ActivityはonCreate、onStart、onResume、onPause、onStop、onDestroyのライフサイクルを持ち、アプリの主要な画面単位です。FragmentはActivityに依存し、onAttach、onCreate、onCreateView、onViewCreated、onStart、onResume、onPause、onStop、onDestroyView、onDestroy、onDetachのライフサイクルを持ちます。FragmentはUIの再利用とモジュール化に優れ、ViewPagerやJetpack Navigationでの画面遷移に広く使われます。
Jetpack Composeと従来のXMLレイアウトの違いは何ですか?
Jetpack Composeは宣言的なUIツールキットで、KotlinコードでUIを記述します。XMLレイアウトは手続き的で、findViewByIdやData Bindingが必要です。Composeはプレビュー機能、状態駆動の再構成、Modifierによる柔軟なスタイリングが強みです。新規プロジェクトではGoogleがComposeを推奨しており、従来のViewシステムはメンテナンスモードに入っています。
AndroidでのKotlin Coroutinesの使い方を説明してください
ViewModelのviewModelScopeやLifecycleのlifecycleScopeでCoroutineを起動し、メインスレッドをブロックせずに非同期処理を実行します。Dispatchers.IOでネットワークやDB処理、Dispatchers.MainでUI更新を行います。Flowを使うことで、ライフサイクルに応じた自動購読(repeatOnLifecycle)が可能になり、メモリリークを防ぎます。
RoomとRealmの違いを教えてください
RoomはSQLiteの抽象化レイヤーで、Google公式のJetpackライブラリです。SQLベースでMigrationが明確で、LiveDataやFlowとの統合が充実しています。Realmはモバイル専用のNoSQLデータベースで、オブジェクトをそのまま永続化でき、パフォーマンスが高いですが、コミュニティサポートが縮小傾向にあり、新規プロジェクトではRoomが推奨されます。
WorkManagerの用途とメリットは何ですか?
WorkManagerは、デバイス再起動後も保証されるバックグラウンド処理のためのJetpackライブラリです。ネットワーク制約、充電状態、遅延実行などの条件を設定でき、OneTimeWorkRequestとPeriodicWorkRequestに対応します。DozeモードやApp Standbyにも対応しており、信頼性の高いバックグラウンドジョブを実装できます。
Androidアプリのパフォーマンスを最適化する方法を教えてください
RecyclerViewのViewHolderパターンでリスト描画を最適化、メモリリークを避けるために弱参照やLifecycle-awareコンポーネントを使用、BitmapのinSampleSizeで画像メモリを削減、StrictModeでメインスレッド違反を検出、ProGuard/R8でコードを縮小、Baseline Profilesで起動時間を短縮します。
お問い合わせ