Dan Tech Academy

Câu Hỏi Phỏng Vấn Android Developer

Tổng hợp các câu hỏi phỏng vấn Android Developer phổ biến nhất tại Việt Nam năm 2026. Mỗi câu hỏi kèm gợi ý trả lời ngắn gọn và mức độ khó. Sử dụng danh sách này để chuẩn bị phỏng vấn hiệu quả.

12 câu hỏi3 dễ / 5 trung bình / 4 khó

Danh Sách Câu Hỏi

Dễ Trung bình Khó
1
Activity lifecycle gồm những phương thức nào? Khi nào mỗi phương thức được gọi?dễ
onCreate → onStart → onResume → onPause → onStop → onDestroy. onCreate khởi tạo, onResume khi hiển thị và tương tác, onPause khi mất focus, onStop khi không còn hiển thị. Quan trọng: onSaveInstanceState được gọi trước onStop để lưu state.
2
Giải thích sự khác nhau giữa ViewModel và SavedStateHandle?trung bình
ViewModel sống qua configuration changes (xoay màn hình) nhưng mất khi process death. SavedStateHandle lưu state qua cả process death vào Bundle. Dùng ViewModel cho data lớn, SavedStateHandle cho UI state nhỏ (scroll position, filter).
3
Coroutines và Threads khác nhau thế nào? Tại sao nên dùng Coroutines?trung bình
Coroutines là lightweight - hàng nghìn coroutines chạy trên vài threads. Structured concurrency tự động cancel khi scope bị hủy, tránh memory leaks. suspend functions đọc như sequential code nhưng chạy async. Threads nặng hơn (~1MB stack mỗi thread).
4
Clean Architecture trong Android có những layer nào?trung bình
Presentation (UI + ViewModel) → Domain (Use Cases + Entities) → Data (Repository + DataSource). Domain layer không phụ thuộc framework Android. Dependency rule: outer layers phụ thuộc inner layers, không ngược lại. Repository pattern bridge giữa domain và data.
5
Jetpack Compose recomposition hoạt động thế nào?khó
Khi state thay đổi, Compose chỉ recompose các composable đọc state đó (smart recomposition). Stability quan trọng: class unstable sẽ recompose không cần thiết. Dùng @Stable, @Immutable annotations. remember() cache giá trị qua recomposition. derivedStateOf giảm recomposition.
6
Giải thích Dependency Injection và tại sao cần dùng trong Android?trung bình
DI cung cấp dependencies từ bên ngoài thay vì tạo bên trong class. Lợi ích: dễ test (inject mock), loose coupling, quản lý lifecycle. Phổ biến: Hilt (Google recommend) hoặc Koin (lightweight). Hilt dùng compile-time, Koin dùng runtime resolution.
7
Flow và LiveData khác nhau thế nào? Khi nào dùng cái nào?trung bình
Flow mạnh hơn: cold stream, operators (map, filter, combine), backpressure handling, chạy trên coroutine scope. LiveData đơn giản hơn, lifecycle-aware. Xu hướng 2026: dùng StateFlow/SharedFlow thay LiveData. collectAsStateWithLifecycle() trong Compose.
8
Làm thế nào để tối ưu hiệu năng RecyclerView / LazyColumn?khó
RecyclerView: dùng DiffUtil, tránh nested RecyclerView, set fixed size. LazyColumn: key() cho items, tránh heavy computation trong composable, derivedStateOf cho scroll state. Chung: image loading lazy, pagination, tránh overdraw.
9
Giải thích cách hoạt động của Navigation Component trong Android?dễ
Navigation graph định nghĩa destinations và actions. NavController quản lý back stack. Safe Args truyền data type-safe. Deep links cho external navigation. Trong Compose: NavHost + composable() destinations. Nested navigation graphs cho modularization.
10
Room Database vs DataStore - khi nào dùng cái nào?dễ
Room: structured data, relationships, complex queries (SQL). DataStore: key-value preferences hoặc typed Protobuf data. DataStore thay SharedPreferences - async, type-safe. Dùng Room cho entities/tables, DataStore cho settings/config nhỏ.
11
Giải thích Memory Leak trong Android và cách phòng tránh?khó
Memory leak khi object không được garbage collected vì vẫn còn reference. Nguyên nhân phổ biến: static reference to Activity, inner class giữ outer reference, unregistered listeners. Phòng tránh: dùng WeakReference, cancel coroutines trong onDestroy, LeakCanary để detect.
12
Modularization trong Android project có lợi ích gì?khó
Build time giảm (chỉ rebuild module thay đổi), team làm việc song song, enforce architecture boundaries, dynamic feature delivery. Structure phổ biến: app → feature modules → core modules → domain. Convention plugins cho Gradle config chung.

Câu Hỏi Thường Gặp

Thường gồm: Android lifecycle, architecture patterns (MVVM, Clean Architecture), Kotlin/Coroutines, Jetpack Compose, và system design cho mobile. Senior thêm performance optimization và modularization.

Junior: 1-2 tuần ôn lại fundamentals. Mid: 2-3 tuần, tập trung architecture và Compose. Senior: 3-4 tuần, bao gồm system design và behavioral questions.

Hầu hết phỏng vấn tại Việt Nam có coding test (take-home hoặc live). Thường yêu cầu build mini app trong 2-4 giờ. Chuẩn bị bằng cách practice xây app nhỏ với Clean Architecture.

Chuẩn bị phỏng vấn tốt hơn với bài tập thực hành

Xem Mobile Action Pro

Hoặc xem Lộ Trình Android Developer 2026