1. Mô hình phát triển ứng dụng di động nào thường được sử dụng khi yêu cầu dự án không rõ ràng và có thể thay đổi trong quá trình phát triển?
A. Mô hình Waterfall
B. Mô hình Agile (Linh hoạt)
C. Mô hình Big Bang
D. Mô hình V-model
2. Giải pháp nào sau đây giúp tối ưu hóa kích thước ứng dụng di động?
A. Tăng độ phân giải hình ảnh
B. Sử dụng thư viện bên thứ ba cho mọi chức năng
C. Tối ưu hóa tài nguyên (hình ảnh, âm thanh) và loại bỏ code không cần thiết
D. Thêm nhiều tính năng vào ứng dụng
3. Trong phát triển ứng dụng di động, `App Store Optimization` (ASO) là gì?
A. Quy trình kiểm thử ứng dụng trước khi phát hành lên cửa hàng
B. Quy trình tối ưu hóa ứng dụng để đạt thứ hạng cao trên các cửa hàng ứng dụng (App Store, Google Play)
C. Quy trình thiết kế giao diện người dùng thân thiện với cửa hàng ứng dụng
D. Quy trình phát triển ứng dụng tuân thủ theo tiêu chuẩn của cửa hàng ứng dụng
4. Công đoạn nào sau đây KHÔNG thuộc quy trình phát triển ứng dụng di động?
A. Thiết kế giao diện người dùng (UI/UX)
B. Kiểm thử và sửa lỗi (Testing & Debugging)
C. Triển khai ứng dụng (Deployment)
D. Sao lưu dữ liệu hệ thống (System Backup)
5. Trong phát triển ứng dụng di động, `Code Signing` (Ký mã) có vai trò gì?
A. Tối ưu hóa hiệu năng code ứng dụng
B. Xác minh nguồn gốc và tính toàn vẹn của ứng dụng
C. Mã hóa mã nguồn ứng dụng
D. Kiểm tra lỗi code ứng dụng
6. Biện pháp nào sau đây KHÔNG giúp cải thiện hiệu năng khởi động ứng dụng di động?
A. Tải dữ liệu cần thiết một cách lười biếng (Lazy loading)
B. Tối ưu hóa thuật toán và cấu trúc dữ liệu
C. Thực hiện nhiều tác vụ nặng đồng thời ở luồng chính
D. Sử dụng bộ nhớ đệm (Caching) hiệu quả
7. Framework UI nào của Android được Google khuyến khích sử dụng cho phát triển giao diện người dùng hiện đại, linh hoạt và hiệu năng cao?
A. Android View
B. Jetpack Compose
C. Data Binding Library
D. ConstraintLayout
8. Framework nào sau đây KHÔNG phải là một framework phát triển ứng dụng di động Hybrid?
A. React Native
B. Flutter
C. Xamarin
D. SwiftUI
9. Điều gì KHÔNG phải là một yếu tố cần xem xét khi lựa chọn nền tảng phát triển ứng dụng di động (Native, Hybrid, Web)?
A. Ngân sách và thời gian phát triển
B. Yêu cầu về hiệu năng và trải nghiệm người dùng
C. Khả năng truy cập phần cứng và API hệ thống
D. Sở thích cá nhân của nhà phát triển
10. Công nghệ nào sau đây thường được sử dụng để lưu trữ dữ liệu offline trên ứng dụng di động?
A. Cloud Firestore
B. Firebase Realtime Database
C. SQLite
D. AWS DynamoDB
11. Phương pháp nào sau đây giúp theo dõi và phân tích hành vi người dùng trong ứng dụng di động sau khi phát hành?
A. Kiểm thử A/B
B. Phân tích nhật ký server (Server log analysis)
C. Công cụ phân tích ứng dụng di động (Mobile Analytics tools)
D. Kiểm thử hiệu năng ứng dụng
12. Giải pháp nào sau đây giúp bảo vệ ứng dụng di động khỏi kỹ thuật Reverse Engineering (Kỹ thuật đảo ngược)?
A. Sử dụng HTTPS cho mọi kết nối mạng
B. Mã hóa mã nguồn (Code Obfuscation)
C. Xác thực hai yếu tố (Two-Factor Authentication)
D. Kiểm thử xâm nhập (Penetration Testing)
13. Loại kiến trúc phần mềm nào thường được sử dụng để phát triển ứng dụng di động, giúp tách biệt logic nghiệp vụ, giao diện người dùng và dữ liệu?
A. Monolithic Architecture
B. Microservices Architecture
C. MVC/MVP/MVVM
D. Client-Server Architecture
14. Điều gì KHÔNG phải là một thành phần chính của quy trình thiết kế UI/UX cho ứng dụng di động?
A. Nghiên cứu người dùng và phân tích đối thủ
B. Xây dựng Wireframe và Prototype
C. Viết code backend cho ứng dụng
D. Kiểm thử khả năng sử dụng (Usability Testing)
15. Deep Link trong ứng dụng di động có chức năng gì?
A. Tăng tốc độ tải ứng dụng
B. Điều hướng người dùng đến một vị trí cụ thể trong ứng dụng từ bên ngoài
C. Bảo vệ ứng dụng khỏi tấn công mạng
D. Tối ưu hóa dung lượng ứng dụng
16. Ngôn ngữ lập trình nào thường được sử dụng chính thức để phát triển ứng dụng Native cho hệ điều hành Android?
A. Swift
B. Objective-C
C. Java/Kotlin
D. React Native
17. Loại tấn công bảo mật nào lợi dụng lỗ hổng trong API hoặc backend server của ứng dụng di động để truy cập trái phép dữ liệu hoặc chức năng?
A. Tấn công Man-in-the-Middle (MITM)
B. Tấn công SQL Injection
C. Tấn công API Injection
D. Tấn công Cross-Site Scripting (XSS)
18. Yếu tố nào sau đây quan trọng nhất khi thiết kế trải nghiệm người dùng (UX) cho ứng dụng di động?
A. Sử dụng công nghệ mới nhất
B. Tính thẩm mỹ và giao diện đẹp mắt
C. Tính dễ sử dụng và hiệu quả
D. Tích hợp nhiều tính năng phức tạp
19. API (Application Programming Interface) được sử dụng trong phát triển ứng dụng di động để làm gì?
A. Thiết kế giao diện người dùng
B. Quản lý cơ sở dữ liệu
C. Kết nối và trao đổi dữ liệu giữa các hệ thống khác nhau
D. Kiểm thử hiệu năng ứng dụng
20. Điều gì KHÔNG phải là một lợi ích của việc sử dụng dịch vụ đám mây (Cloud services) trong phát triển ứng dụng di động?
A. Giảm chi phí đầu tư hạ tầng server
B. Khả năng mở rộng linh hoạt theo nhu cầu
C. Tăng độ phức tạp trong quản lý dữ liệu
D. Tiếp cận các dịch vụ và công nghệ tiên tiến
21. Phương pháp kiếm tiền nào sau đây phổ biến nhất cho ứng dụng di động miễn phí?
A. Bán ứng dụng trả phí trên cửa hàng
B. Thuê bao hàng tháng/năm
C. Quảng cáo trong ứng dụng
D. Bán hàng trong ứng dụng (In-app purchases)
22. Ưu điểm chính của việc phát triển ứng dụng di động Native so với Hybrid là gì?
A. Khả năng tái sử dụng code cao hơn
B. Chi phí phát triển thấp hơn
C. Hiệu năng và trải nghiệm người dùng tốt hơn
D. Thời gian phát triển nhanh hơn
23. Trong ngữ cảnh phát triển ứng dụng di động, `Technical Debt` (Nợ kỹ thuật) đề cập đến điều gì?
A. Chi phí thuê máy chủ và dịch vụ đám mây
B. Thời gian trễ do lỗi kỹ thuật gây ra
C. Hậu quả của việc đưa ra các quyết định thiết kế hoặc code không tối ưu trong ngắn hạn
D. Số lượng lỗi còn tồn đọng trong ứng dụng
24. Khi nào thì việc phát triển ứng dụng di động Hybrid là lựa chọn phù hợp nhất?
A. Khi yêu cầu hiệu năng ứng dụng rất cao và cần truy cập sâu vào phần cứng thiết bị
B. Khi cần phát triển ứng dụng nhanh chóng và tiết kiệm chi phí cho nhiều nền tảng
C. Khi ứng dụng có giao diện người dùng phức tạp và nhiều hiệu ứng đồ họa
D. Khi ứng dụng cần hoạt động offline hoàn toàn
25. Loại kiểm thử ứng dụng di động nào tập trung vào việc đảm bảo ứng dụng hoạt động đúng trên nhiều thiết bị và phiên bản hệ điều hành khác nhau?
A. Kiểm thử hiệu năng (Performance Testing)
B. Kiểm thử chức năng (Functional Testing)
C. Kiểm thử khả năng tương thích (Compatibility Testing)
D. Kiểm thử bảo mật (Security Testing)
26. Push Notification (Thông báo đẩy) được sử dụng trong ứng dụng di động với mục đích chính là gì?
A. Thu thập dữ liệu người dùng
B. Cải thiện hiệu năng ứng dụng
C. Tương tác và giữ chân người dùng
D. Bảo mật thông tin người dùng
27. Phương pháp kiểm thử nào tập trung vào việc kiểm tra các luồng tương tác chính của người dùng trong ứng dụng di động?
A. Unit Testing
B. Integration Testing
C. User Acceptance Testing (UAT)
D. Smoke Testing
28. Chiến lược kiểm thử ứng dụng di động nào tập trung vào việc kiểm tra các đơn vị code nhỏ nhất (ví dụ: hàm, lớp) một cách độc lập?
A. Kiểm thử hệ thống (System Testing)
B. Kiểm thử tích hợp (Integration Testing)
C. Kiểm thử đơn vị (Unit Testing)
D. Kiểm thử hồi quy (Regression Testing)
29. Loại bộ nhớ nào trên thiết bị di động thường được sử dụng để lưu trữ dữ liệu tạm thời của ứng dụng khi đang chạy (ví dụ: biến, đối tượng)?
A. Bộ nhớ trong (Internal Storage)
B. Bộ nhớ ngoài (External Storage)
C. RAM (Random Access Memory)
D. ROM (Read-Only Memory)
30. Khi phát triển ứng dụng di động đa ngôn ngữ, điều gì quan trọng nhất cần xem xét về mặt UI/UX?
A. Sử dụng font chữ phức tạp và đa dạng
B. Đảm bảo giao diện linh hoạt và thích ứng với các chiều dài văn bản khác nhau
C. Chỉ hỗ trợ ngôn ngữ phổ biến nhất để đơn giản hóa thiết kế
D. Sử dụng hình ảnh thay thế văn bản để tránh vấn đề ngôn ngữ