Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 08
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Ứng dụng di động của một ngân hàng cần xác thực người dùng bằng sinh trắc học (vân tay hoặc khuôn mặt) trước khi cho phép truy cập vào tài khoản. Thành phần hệ thống nào của Android đóng vai trò chính trong việc cung cấp và quản lý các tính năng xác thực sinh trắc học này?
- A. Android Keystore System
- B. BiometricPrompt API (trong Android Biometric Framework)
- C. AccountManager
- D. Device Administration API
Câu 2: Trong quá trình phát triển ứng dụng Android, bạn cần lưu trữ một lượng nhỏ dữ liệu cấu hình của ứng dụng (ví dụ: chủ đề giao diện người dùng ưa thích, cài đặt thông báo) và muốn truy cập chúng một cách nhanh chóng. Giải pháp lưu trữ dữ liệu nào sau đây của Android là phù hợp nhất cho trường hợp này?
- A. Shared Preferences
- B. SQLite Database
- C. File Storage (lưu trữ trực tiếp vào file)
- D. Network Storage (lưu trữ trên đám mây)
Câu 3: Bạn đang xây dựng một ứng dụng mạng xã hội và muốn hiển thị danh sách bài đăng của người dùng. Để tối ưu hiệu suất hiển thị cho danh sách dài và phức tạp này, đặc biệt khi mỗi bài đăng có thể chứa hình ảnh và nhiều loại nội dung khác nhau, bạn nên sử dụng thành phần UI nào của Android?
- A. ListView
- B. RecyclerView
- C. ScrollView
- D. LinearLayout
Câu 4: Một ứng dụng di động cần thực hiện đồng bộ dữ liệu dưới nền với máy chủ định kỳ, ngay cả khi ứng dụng không chạy ở foreground hoặc thiết bị đang ở chế độ Doze (tiết kiệm pin). Thành phần nào của Android được khuyến nghị sử dụng để lên lịch và quản lý các tác vụ nền định kỳ này một cách hiệu quả và tiết kiệm pin?
- A. AsyncTask
- B. IntentService
- C. WorkManager
- D. Thread và Handler
Câu 5: Trong kiến trúc MVVM (Model-View-ViewModel) thường được sử dụng trong phát triển ứng dụng Android hiện đại, thành phần ViewModel có vai trò chính là gì?
- A. Hiển thị giao diện người dùng và xử lý tương tác người dùng.
- B. Lưu trữ dữ liệu ứng dụng và tương tác với cơ sở dữ liệu.
- C. Điều phối luồng dữ liệu giữa Model và View.
- D. Cung cấp dữ liệu và trạng thái giao diện cho View, tồn tại qua các thay đổi cấu hình.
Câu 6: Để xử lý các tương tác của người dùng trên giao diện (ví dụ: click nút, chạm màn hình), trong Android, chúng ta thường sử dụng cơ chế nào?
- A. Event Listeners (ví dụ: OnClickListener)
- B. Broadcast Receivers
- C. Content Providers
- D. Services
Câu 7: Trong Android, "Intent" được sử dụng cho mục đích chính nào sau đây?
- A. Lưu trữ dữ liệu cấu hình ứng dụng.
- B. Quản lý vòng đời của Activity.
- C. Kích hoạt và giao tiếp giữa các thành phần ứng dụng.
- D. Xử lý các tác vụ nền kéo dài.
Câu 8: Bạn muốn tạo một giao diện người dùng linh hoạt, có thể thích ứng với nhiều kích thước màn hình và độ phân giải khác nhau của thiết bị Android. Loại layout nào sau đây của Android phù hợp nhất để xây dựng giao diện responsive như vậy?
- A. FrameLayout
- B. LinearLayout
- C. TableLayout
- D. ConstraintLayout
Câu 9: Trong phát triển ứng dụng di động đa nền tảng, framework nào sau đây sử dụng ngôn ngữ JavaScript và React để xây dựng giao diện người dùng native?
- A. Flutter
- B. React Native
- C. Ionic
- D. Xamarin
Câu 10: Khi một Activity trong Android chuyển từ trạng thái foreground sang background (ví dụ, khi người dùng nhấn nút Home), phương thức lifecycle nào sau đây sẽ được gọi?
- A. onStop()
- B. onDestroy()
- C. onPause()
- D. onRestart()
Câu 11: Đơn vị đo kích thước nào sau đây trong Android được khuyến nghị sử dụng cho kích thước text để đảm bảo khả năng đọc tốt trên các thiết bị có kích thước và độ phân giải màn hình khác nhau, cũng như tôn trọng cài đặt font chữ của người dùng?
- A. dp (density-independent pixels)
- B. sp (scaled pixels)
- C. px (pixels)
- D. pt (points)
Câu 12: Phương pháp kiểm thử nào sau đây tập trung vào việc kiểm tra giao diện người dùng và luồng tương tác của người dùng trong ứng dụng di động, thường được thực hiện bằng các framework kiểm thử UI tự động hóa như Espresso hoặc UI Automator?
- A. Unit Testing
- B. Integration Testing
- C. UI Testing (Kiểm thử giao diện người dùng)
- D. Static Analysis
Câu 13: Trong mô hình client-server cho ứng dụng di động, giao thức truyền dữ liệu phổ biến nào thường được sử dụng để ứng dụng giao tiếp với backend server, đặc biệt khi trao đổi dữ liệu có cấu trúc như JSON?
- A. HTTP (Hypertext Transfer Protocol)
- B. FTP (File Transfer Protocol)
- C. SMTP (Simple Mail Transfer Protocol)
- D. TCP (Transmission Control Protocol)
Câu 14: Để quản lý các phiên bản khác nhau của mã nguồn ứng dụng di động và phối hợp làm việc nhóm hiệu quả, công cụ quản lý phiên bản (version control system) phổ biến nhất được sử dụng là gì?
- A. SVN (Subversion)
- B. Git
- C. Mercurial
- D. CVS (Concurrent Versions System)
Câu 15: Trong quá trình phát triển ứng dụng Android, bạn cần truy cập vào danh bạ của người dùng để hiển thị danh sách liên hệ. Hành động này yêu cầu ứng dụng phải khai báo và xin quyền (permission) nào từ người dùng?
- A. ACCESS_FINE_LOCATION
- B. CAMERA
- C. READ_CONTACTS
- D. INTERNET
Câu 16: Để tối ưu hiệu suất ứng dụng di động, đặc biệt là về thời gian khởi động và sử dụng bộ nhớ, kỹ thuật nào sau đây được khuyến nghị để giảm kích thước APK và tối ưu hóa tài nguyên (hình ảnh, layout, mã nguồn)?
- A. Tăng độ phân giải hình ảnh
- B. Sử dụng nhiều thư viện bên ngoài
- C. Tải tất cả dữ liệu khi khởi động ứng dụng
- D. Code shrinking (R8/ProGuard) và resource optimization
Câu 17: Khi thiết kế giao diện người dùng cho ứng dụng di động, nguyên tắc "Material Design" của Google tập trung vào yếu tố nào là chính?
- A. Tối ưu hóa hiệu suất và tốc độ phản hồi.
- B. Tính trực quan, nhất quán và trải nghiệm người dùng tự nhiên.
- C. Tùy biến giao diện theo sở thích cá nhân người dùng.
- D. Sử dụng các hiệu ứng động và chuyển động phức tạp.
Câu 18: Trong quá trình phát triển ứng dụng di động, "API" (Application Programming Interface) có vai trò gì?
- A. Lưu trữ dữ liệu ứng dụng trên thiết bị.
- B. Thiết kế giao diện người dùng.
- C. Cung cấp giao diện để ứng dụng tương tác với hệ thống hoặc dịch vụ khác.
- D. Quản lý vòng đời của ứng dụng.
Câu 19: Framework phát triển ứng dụng di động đa nền tảng nào sau đây sử dụng ngôn ngữ Dart và bộ widget phong phú để tạo ra giao diện người dùng tùy biến cao và hiệu suất mượt mà?
- A. Flutter
- B. React Native
- C. Ionic
- D. Xamarin
Câu 20: Để phân tích hiệu quả hoạt động của ứng dụng di động sau khi phát hành (ví dụ: số lượng người dùng, hành vi người dùng, lỗi ứng dụng), công cụ phân tích (analytics) nào của Google thường được sử dụng?
- A. Google Search Console
- B. Google Analytics for Firebase
- C. Google Ads
- D. Google Tag Manager
Câu 21: Trong ngữ cảnh phát triển ứng dụng di động, thuật ngữ "responsive design" (thiết kế đáp ứng) đề cập đến điều gì?
- A. Thiết kế giao diện nhanh chóng và hiệu quả.
- B. Thiết kế giao diện theo phong cách Material Design.
- C. Thiết kế giao diện tập trung vào tương tác người dùng.
- D. Thiết kế giao diện có thể thích ứng với nhiều kích thước màn hình và thiết bị.
Câu 22: Phương pháp phát triển phần mềm "Agile" (linh hoạt) mang lại lợi ích chính nào trong dự án phát triển ứng dụng di động?
- A. Giảm thiểu chi phí phát triển dự án.
- B. Đảm bảo tuân thủ nghiêm ngặt theo kế hoạch ban đầu.
- C. Tăng khả năng thích ứng với thay đổi và phản hồi nhanh từ người dùng.
- D. Tối ưu hóa quy trình kiểm thử và đảm bảo chất lượng.
Câu 23: Khi ứng dụng di động cần lưu trữ dữ liệu có cấu trúc phức tạp và yêu cầu truy vấn linh hoạt, giải pháp cơ sở dữ liệu nào sau đây thường được sử dụng trong Android?
- A. SQLite
- B. Shared Preferences
- C. File Storage (lưu trữ trực tiếp vào file)
- D. Firebase Realtime Database
Câu 24: Để đảm bảo tính bảo mật cho ứng dụng di động, biện pháp nào sau đây quan trọng nhất để bảo vệ dữ liệu nhạy cảm (ví dụ: mật khẩu, thông tin thẻ tín dụng) khi lưu trữ trên thiết bị?
- A. Sử dụng Shared Preferences để lưu trữ dữ liệu.
- B. Mã hóa dữ liệu trước khi lưu trữ.
- C. Giới hạn quyền truy cập ứng dụng.
- D. Thường xuyên cập nhật ứng dụng.
Câu 25: Phương pháp "push notification" (thông báo đẩy) được sử dụng trong ứng dụng di động để thực hiện chức năng chính nào?
- A. Thu thập dữ liệu hành vi người dùng.
- B. Xác thực người dùng khi đăng nhập.
- C. Gửi thông báo và cập nhật đến người dùng theo thời gian thực.
- D. Đồng bộ dữ liệu dưới nền.
Câu 26: Trong phát triển ứng dụng di động, thuật ngữ "deep linking" (liên kết sâu) dùng để chỉ điều gì?
- A. Liên kết trực tiếp đến một nội dung cụ thể bên trong ứng dụng từ bên ngoài.
- B. Liên kết giữa các màn hình khác nhau trong ứng dụng.
- C. Liên kết ứng dụng với các dịch vụ đám mây.
- D. Liên kết ứng dụng với các mạng xã hội.
Câu 27: Để triển khai chức năng bản đồ và định vị trong ứng dụng di động Android, API nào của Google Maps Platform thường được sử dụng?
- A. Google Places API
- B. Google Maps Android API
- C. Google Directions API
- D. Google Geocoding API
Câu 28: Trong quá trình phát triển ứng dụng di động, "mockup" và "prototype" được sử dụng với mục đích chính nào?
- A. Tối ưu hóa hiệu suất ứng dụng.
- B. Kiểm thử chức năng ứng dụng.
- C. Hình dung giao diện, thử nghiệm ý tưởng và thu thập phản hồi về thiết kế UX/UI.
- D. Quản lý mã nguồn ứng dụng.
Câu 29: Chiến lược kiếm tiền (monetization) nào sau đây thường được sử dụng cho ứng dụng di động miễn phí để tạo doanh thu?
- A. Bán ứng dụng trả phí trên cửa hàng ứng dụng.
- B. Thu phí đăng ký hàng tháng để sử dụng ứng dụng.
- C. Bán hàng hóa vật lý thông qua ứng dụng.
- D. Quảng cáo trong ứng dụng (in-app advertising).
Câu 30: Trong quy trình phát hành ứng dụng Android lên Google Play Store, file nào sau đây cần được tải lên?
- A. APK (Android Package Kit)
- B. Source code (mã nguồn)
- C. Project file (file dự án)
- D. Keystore file (file khóa)