Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 10
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 10 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: Trong phát triển ứng dụng di động, kiến trúc Model-View-ViewModel (MVVM) chủ yếu giúp giải quyết vấn đề nào sau đây?
- A. Tối ưu hiệu suất ứng dụng trên các thiết bị khác nhau.
- B. Tách biệt logic giao diện người dùng khỏi logic nghiệp vụ, tăng khả năng kiểm thử và bảo trì.
- C. Đảm bảo tính bảo mật cho dữ liệu người dùng trên thiết bị di động.
- D. Giảm thiểu mức tiêu thụ pin của ứng dụng khi chạy nền.
Câu 2: Khi thiết kế giao diện người dùng cho ứng dụng di động, nguyên tắc "ngón tay cái" (thumb zone) đề cập đến điều gì?
- A. Vùng trên màn hình điện thoại dễ dàng tiếp cận bằng ngón tay cái khi cầm thiết bị bằng một tay.
- B. Kích thước tối thiểu của các nút bấm để người dùng dễ dàng thao tác bằng ngón tay.
- C. Màu sắc và độ tương phản phù hợp để các yếu tố giao diện nổi bật và dễ nhìn.
- D. Bố cục giao diện đơn giản, trực quan, giảm thiểu số lượng thao tác không cần thiết.
Câu 3: Một ứng dụng di động cần lưu trữ dữ liệu người dùng offline và đồng bộ hóa với server khi có kết nối mạng. Giải pháp lưu trữ nào sau đây phù hợp nhất cho mục đích này?
- A. Shared Preferences
- B. Bộ nhớ cache của trình duyệt web
- C. Cơ sở dữ liệu cục bộ (ví dụ: SQLite, Realm)
- D. Lưu trữ trên đám mây (Cloud Storage) trực tuyến
Câu 4: Trong quy trình phát triển ứng dụng di động Agile, "Sprint" thường được hiểu là gì?
- A. Một cuộc họp hàng ngày để đội phát triển báo cáo tiến độ.
- B. Giai đoạn kiểm thử ứng dụng trước khi phát hành.
- C. Bản kế hoạch chi tiết toàn bộ dự án phát triển ứng dụng.
- D. Một khoảng thời gian ngắn (ví dụ 2-4 tuần) để hoàn thành một phần công việc cụ thể và có thể đo lường được.
Câu 5: Phương pháp kiểm thử "Unit Testing" trong phát triển ứng dụng di động tập trung vào việc kiểm tra thành phần nào?
- A. Toàn bộ ứng dụng sau khi tích hợp các module.
- B. Các đơn vị mã nguồn nhỏ nhất, ví dụ như hàm, lớp, module.
- C. Giao diện người dùng và trải nghiệm người dùng (UX).
- D. Khả năng ứng dụng hoạt động trên nhiều loại thiết bị và hệ điều hành khác nhau.
Câu 6: "Push Notification" thường được sử dụng trong ứng dụng di động để thực hiện mục đích chính nào?
- A. Thu thập dữ liệu hành vi người dùng trong ứng dụng.
- B. Tối ưu hóa hiệu suất sử dụng pin của ứng dụng.
- C. Gửi thông báo, cập nhật hoặc tương tác với người dùng một cách chủ động.
- D. Xác thực danh tính người dùng khi đăng nhập vào ứng dụng.
Câu 7: Công nghệ "Deep Links" trong ứng dụng di động cho phép người dùng làm gì?
- A. Truy cập trực tiếp đến một trang cụ thể bên trong ứng dụng từ bên ngoài (ví dụ: từ trình duyệt web, email, ứng dụng khác).
- B. Chia sẻ liên kết tải ứng dụng lên các mạng xã hội.
- C. Theo dõi hành vi người dùng khi nhấp vào quảng cáo ứng dụng.
- D. Tạo liên kết đến các ứng dụng khác có liên quan.
Câu 8: Khi ứng dụng di động cần truy cập vào các chức năng phần cứng của thiết bị như camera, microphone, hoặc GPS, điều gì quan trọng cần phải thực hiện đầu tiên?
- A. Kiểm tra kết nối internet của thiết bị.
- B. Đảm bảo thiết bị có đủ bộ nhớ trống.
- C. Tối ưu hóa ứng dụng để tiết kiệm pin khi sử dụng phần cứng.
- D. Xin quyền truy cập từ người dùng thông qua cơ chế quản lý quyền của hệ điều hành.
Câu 9: "API (Application Programming Interface)" đóng vai trò gì trong phát triển ứng dụng di động, đặc biệt khi ứng dụng cần lấy dữ liệu từ server?
- A. Ngôn ngữ lập trình chính để xây dựng giao diện người dùng.
- B. Giao diện cho phép ứng dụng giao tiếp và trao đổi dữ liệu với server hoặc các dịch vụ bên ngoài.
- C. Công cụ để kiểm thử hiệu năng của ứng dụng trên các thiết bị khác nhau.
- D. Thư viện chứa các thành phần giao diện người dùng có sẵn để sử dụng.
Câu 10: Trong ngữ cảnh phát triển ứng dụng đa nền tảng (cross-platform), framework nào sau đây sử dụng ngôn ngữ JavaScript là chủ yếu?
- A. SwiftUI
- B. Jetpack Compose
- C. React Native
- D. Flutter
Câu 11: Khi thiết kế điều hướng (navigation) cho ứng dụng di động phức tạp, kiểu điều hướng nào sau đây thường phù hợp với các ứng dụng có cấu trúc phân cấp rõ ràng, ví dụ như ứng dụng cài đặt hoặc quản lý file?
- A. Điều hướng dạng thẻ (Tab Navigation)
- B. Điều hướng phân cấp (Hierarchical Navigation)
- C. Điều hướng dạng ngăn kéo (Drawer Navigation)
- D. Điều hướng cử chỉ (Gesture-based Navigation)
Câu 12: "Code Signing" là quy trình bắt buộc trong phát triển ứng dụng di động, đặc biệt khi phát hành ứng dụng lên các store (App Store, Google Play). Mục đích chính của Code Signing là gì?
- A. Tối ưu hóa kích thước file cài đặt của ứng dụng.
- B. Tăng tốc độ cài đặt ứng dụng trên thiết bị người dùng.
- C. Cải thiện hiệu suất chạy ứng dụng trên các thiết bị khác nhau.
- D. Xác minh nguồn gốc của ứng dụng và đảm bảo tính toàn vẹn, chống giả mạo hoặc sửa đổi.
Câu 13: Trong phát triển ứng dụng Android, "Activity" được hiểu là thành phần nào?
- A. Một màn hình giao diện người dùng duy nhất mà người dùng có thể tương tác.
- B. Một tiến trình chạy nền để thực hiện các tác vụ không cần giao diện người dùng.
- C. Một cơ chế để chia sẻ dữ liệu giữa các ứng dụng.
- D. Một thành phần nhận và phản hồi các sự kiện phát sóng từ hệ thống hoặc ứng dụng khác.
Câu 14: "Responsive Design" trong thiết kế giao diện ứng dụng di động nhằm mục tiêu gì?
- A. Tăng tốc độ tải trang của ứng dụng trên mạng di động.
- B. Đảm bảo giao diện hiển thị và hoạt động tốt trên nhiều kích thước màn hình và loại thiết bị khác nhau.
- C. Giảm dung lượng bộ nhớ mà ứng dụng chiếm dụng trên thiết bị.
- D. Tối ưu hóa ứng dụng để tiết kiệm pin cho người dùng.
Câu 15: Khi phát triển ứng dụng di động, việc "caching" dữ liệu (lưu trữ tạm thời) giúp cải thiện trải nghiệm người dùng như thế nào?
- A. Tăng cường bảo mật dữ liệu người dùng.
- B. Giảm chi phí lưu trữ dữ liệu trên server.
- C. Giảm thời gian tải dữ liệu và cải thiện tốc độ phản hồi của ứng dụng.
- D. Đồng bộ hóa dữ liệu giữa các thiết bị của người dùng.
Câu 16: Trong phát triển ứng dụng iOS, ngôn ngữ lập trình chính thức và được Apple khuyến khích sử dụng hiện nay là gì?
- A. Objective-C
- B. Java
- C. C#
- D. Swift
Câu 17: "Session Management" trong ứng dụng di động (ví dụ ứng dụng thương mại điện tử, mạng xã hội) thường được dùng để làm gì?
- A. Quản lý bộ nhớ cache của ứng dụng.
- B. Duy trì trạng thái đăng nhập của người dùng sau khi xác thực thành công.
- C. Theo dõi hành vi người dùng trong ứng dụng để phân tích.
- D. Điều phối các tác vụ chạy nền của ứng dụng.
Câu 18: Phương pháp "A/B testing" thường được áp dụng trong phát triển ứng dụng di động để đạt được mục tiêu nào?
- A. Kiểm tra tính bảo mật của ứng dụng.
- B. Đo lường hiệu suất ứng dụng trên các thiết bị khác nhau.
- C. So sánh hiệu quả của hai phiên bản khác nhau của một tính năng hoặc giao diện để đưa ra quyết định cải tiến dựa trên dữ liệu.
- D. Thu thập phản hồi từ người dùng về trải nghiệm sử dụng ứng dụng.
Câu 19: "Continuous Integration/Continuous Deployment (CI/CD)" là quy trình quan trọng trong phát triển ứng dụng di động hiện đại. Lợi ích chính của CI/CD là gì?
- A. Tự động hóa quy trình build, kiểm thử và phát hành ứng dụng, giúp phát hành nhanh hơn và giảm thiểu lỗi.
- B. Giảm chi phí phát triển ứng dụng bằng cách sử dụng các công cụ mã nguồn mở.
- C. Nâng cao kỹ năng lập trình của đội ngũ phát triển.
- D. Cải thiện khả năng tương thích của ứng dụng với các hệ điều hành khác nhau.
Câu 20: Khi thiết kế ứng dụng di động hỗ trợ đa ngôn ngữ (localization), điều quan trọng nhất cần xem xét là gì?
- A. Sử dụng công cụ dịch thuật tự động để tiết kiệm thời gian.
- B. Chỉ dịch thuật nội dung văn bản sang các ngôn ngữ khác.
- C. Đảm bảo phông chữ hỗ trợ tất cả các ký tự ngôn ngữ.
- D. Điều chỉnh không chỉ văn bản mà còn các yếu tố văn hóa, định dạng ngày tháng, tiền tệ, và hướng đọc của ngôn ngữ.
Câu 21: "Lazy Loading" hình ảnh trong ứng dụng di động (đặc biệt là ứng dụng hiển thị nhiều hình ảnh như mạng xã hội, thương mại điện tử) giúp tối ưu hóa điều gì?
- A. Chất lượng hiển thị hình ảnh.
- B. Thời gian tải trang ban đầu và băng thông sử dụng.
- C. Dung lượng lưu trữ hình ảnh trên thiết bị.
- D. Khả năng tương thích của hình ảnh với các loại thiết bị khác nhau.
Câu 22: "Background Processing" trong ứng dụng di động thường được sử dụng để thực hiện loại tác vụ nào?
- A. Hiển thị giao diện người dùng và xử lý tương tác người dùng.
- B. Quản lý bộ nhớ và tài nguyên hệ thống.
- C. Thực hiện các tác vụ tốn thời gian hoặc không cần tương tác trực tiếp với người dùng, ví dụ như tải dữ liệu, đồng bộ hóa, xử lý thông tin.
- D. Kiểm soát quyền truy cập phần cứng của ứng dụng.
Câu 23: "Code Obfuscation" là kỹ thuật bảo mật thường được áp dụng cho ứng dụng di động sau khi hoàn thành phát triển. Mục đích chính của Code Obfuscation là gì?
- A. Tăng tốc độ thực thi của ứng dụng.
- B. Giảm kích thước file cài đặt của ứng dụng.
- C. Kiểm tra và vá các lỗ hổng bảo mật trong code.
- D. Làm cho mã nguồn ứng dụng trở nên khó đọc và khó hiểu hơn đối với người muốn phân tích ngược (reverse engineering).
Câu 24: Trong phát triển ứng dụng di động, "State Management" đề cập đến vấn đề gì?
- A. Quản lý dữ liệu và trạng thái của giao diện người dùng trong suốt vòng đời ứng dụng.
- B. Quản lý quyền truy cập vào các tài nguyên hệ thống của ứng dụng.
- C. Quản lý các phiên làm việc của người dùng trong ứng dụng.
- D. Quản lý quá trình kiểm thử và phát hành ứng dụng.
Câu 25: Khi ứng dụng di động cần hiển thị danh sách dữ liệu lớn và có thể cuộn, widget (thành phần giao diện) nào sau đây thường được sử dụng để tối ưu hiệu suất hiển thị?
- A. ScrollView
- B. LinearLayout
- C. RecyclerView (Android) / UICollectionView (iOS)
- D. TextView
Câu 26: "Mobile Backend as a Service (MBaaS)" cung cấp những lợi ích chính nào cho nhà phát triển ứng dụng di động?
- A. Cung cấp môi trường phát triển ứng dụng di động hoàn toàn trên đám mây.
- B. Giảm thiểu công sức phát triển backend bằng cách cung cấp các dịch vụ có sẵn như database, xác thực người dùng, push notifications.
- C. Tối ưu hóa hiệu suất ứng dụng di động trên các thiết bị khác nhau.
- D. Tăng cường bảo mật cho ứng dụng di động và dữ liệu người dùng.
Câu 27: "Progressive Web App (PWA)" khác biệt so với ứng dụng native (ứng dụng cài đặt từ store) ở điểm nào chính?
- A. PWA có hiệu suất cao hơn và truy cập phần cứng tốt hơn ứng dụng native.
- B. PWA có khả năng hoạt động offline kém hơn ứng dụng native.
- C. PWA chỉ có thể chạy trên một số hệ điều hành di động nhất định.
- D. PWA là ứng dụng web được thiết kế để có trải nghiệm giống ứng dụng native, truy cập qua trình duyệt web mà không cần cài đặt từ app store.
Câu 28: Khi ứng dụng di động cần tích hợp bản đồ và dịch vụ định vị, thư viện hoặc SDK nào sau đây thường được sử dụng cho nền tảng Android?
- A. Google Maps SDK for Android
- B. Apple MapKit
- C. React Native Maps
- D. Flutter Map
Câu 29: "Dependency Injection" là một nguyên tắc thiết kế phần mềm quan trọng, được áp dụng trong phát triển ứng dụng di động để đạt được mục tiêu chính nào?
- A. Tối ưu hóa hiệu suất ứng dụng.
- B. Tăng cường bảo mật ứng dụng.
- C. Giảm sự phụ thuộc giữa các thành phần của ứng dụng, giúp code dễ kiểm thử, bảo trì và tái sử dụng hơn.
- D. Tự động hóa quy trình build và phát hành ứng dụng.
Câu 30: Trong quá trình phát triển ứng dụng di động, "Refactoring" mã nguồn (tái cấu trúc mã) nên được thực hiện khi nào?
- A. Chỉ khi phát hiện ra lỗi hoặc bug trong ứng dụng.
- B. Thường xuyên và liên tục trong quá trình phát triển để cải thiện cấu trúc code, tăng tính dễ đọc và bảo trì, ngay cả khi ứng dụng hoạt động đúng.
- C. Chỉ sau khi hoàn thành tất cả các tính năng của ứng dụng và chuẩn bị phát hành.
- D. Chỉ khi hiệu suất ứng dụng bị chậm và cần tối ưu hóa.