Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 07
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 06 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 đa nền tảng, framework nào sau đây sử dụng ngôn ngữ Dart và kiến trúc widget để xây dựng giao diện người dùng, cho phép tái sử dụng code trên cả iOS và Android?
- A. React Native
- B. Ionic
- C. Xamarin
- D. Flutter
Câu 2: Một ứng dụng đặt xe cần cập nhật vị trí của tài xế theo thời gian thực trên bản đồ của hành khách. Phương pháp nào sau đây là phù hợp nhất để truyền dữ liệu vị trí liên tục từ tài xế đến ứng dụng hành khách?
- A. HTTP Request/Response thông thường
- B. Polling định kỳ từ ứng dụng hành khách
- C. Sử dụng WebSockets
- D. Gửi email định kỳ chứa thông tin vị trí
Câu 3: Để tối ưu hiệu suất hiển thị danh sách lớn dữ liệu trong ứng dụng Android, kỹ thuật "RecyclerView" cải thiện đáng kể so với "ListView" truyền thống nhờ cơ chế nào?
- A. Tự động phân trang dữ liệu
- B. Tái sử dụng View (View Holder Pattern)
- C. Sử dụng bộ nhớ cache mạnh mẽ hơn
- D. Tải dữ liệu bất đồng bộ mặc định
Câu 4: Trong quy trình phát triển ứng dụng iOS, "Auto Layout" giúp giải quyết vấn đề gì chính yếu trong việc thiết kế giao diện người dùng?
- A. Thích ứng giao diện với nhiều kích thước màn hình khác nhau
- B. Tạo hiệu ứng chuyển động mượt mà
- C. Quản lý bộ nhớ hiệu quả hơn
- D. Tăng tốc độ tải ứng dụng
Câu 5: Một ứng dụng Android cần lưu trữ dữ liệu người dùng (ví dụ: tên, tùy chọn cài đặt) một cách cục bộ và có cấu trúc. Lựa chọn lưu trữ nào sau đây là phù hợp nhất?
- A. SharedPreferences
- B. Bộ nhớ ngoài (External Storage)
- C. SQLite Database
- D. Cloud Firestore
Câu 6: "Push Notification" thường được sử dụng để giải quyết bài toán tương tác nào giữa ứng dụng di động và người dùng?
- A. Thu thập phản hồi của người dùng về ứng dụng
- B. Gửi thông báo chủ động đến người dùng khi có sự kiện mới
- C. Theo dõi hành vi người dùng trong ứng dụng
- D. Xác thực người dùng khi đăng nhập
Câu 7: Trong kiểm thử ứng dụng di động, loại kiểm thử nào tập trung vào việc xác minh các chức năng cốt lõi của ứng dụng hoạt động đúng như thiết kế sau mỗi lần thay đổi code?
- A. Kiểm thử hiệu năng (Performance Testing)
- B. Kiểm thử giao diện người dùng (UI Testing)
- C. Kiểm thử bảo mật (Security Testing)
- D. Kiểm thử hồi quy (Regression Testing)
Câu 8: Khi thiết kế UI/UX cho ứng dụng di động, nguyên tắc "Fitts"s Law" nhấn mạnh vào yếu tố nào để cải thiện trải nghiệm tương tác của người dùng?
- A. Sự nhất quán về màu sắc và kiểu chữ
- B. Số lượng thao tác tối thiểu để hoàn thành tác vụ
- C. Kích thước và vị trí của các yếu tố tương tác trên màn hình
- D. Phản hồi tức thì sau mỗi hành động của người dùng
Câu 9: "Deep Linking" trong ứng dụng di động có vai trò gì trong việc cải thiện trải nghiệm người dùng và marketing?
- A. Dẫn người dùng trực tiếp đến một trang cụ thể trong ứng dụng từ liên kết bên ngoài
- B. Tăng tốc độ tải ứng dụng khi khởi động
- C. Cải thiện khả năng tìm kiếm ứng dụng trên store
- D. Bảo vệ ứng dụng khỏi các cuộc tấn công bảo mật
Câu 10: Phương pháp "A/B testing" thường được sử dụng trong phát triển ứng dụng di động để đưa ra quyết định về cải tiến nào?
- A. Kiểm tra hiệu suất của ứng dụng trên các thiết bị khác nhau
- B. Xác định phiên bản thiết kế hoặc tính năng nào hoạt động tốt hơn với người dùng
- C. Đánh giá mức độ bảo mật của ứng dụng
- D. Dự đoán số lượng người dùng sẽ tải ứng dụng
Câu 11: Trong kiến trúc ứng dụng di động "MVVM" (Model-View-ViewModel), ViewModel có vai trò chính là gì?
- A. Hiển thị giao diện người dùng
- B. Lưu trữ dữ liệu ứng dụng
- C. Xử lý logic giao diện và trung gian dữ liệu giữa View và Model
- D. Quản lý vòng đời của ứng dụng
Câu 12: Khi ứng dụng di động cần truy cập các dịch vụ backend (ví dụ: API server), giao thức truyền dữ liệu phổ biến và hiệu quả nhất hiện nay là gì?
- A. FTP
- B. SMTP
- C. SOAP
- D. RESTful API (sử dụng HTTP và JSON)
Câu 13: "Code signing" là quá trình bắt buộc trong phát triển ứng dụng iOS và Android. Mục đích chính của code signing là gì?
- A. Tăng tốc độ cài đặt ứng dụng
- B. Xác minh nguồn gốc và tính toàn vẹn của ứng dụng
- C. Tối ưu hóa hiệu suất ứng dụng
- D. Giảm kích thước file cài đặt ứng dụng
Câu 14: Trong ngữ cảnh phát triển ứng dụng di động, "accessibility" (khả năng tiếp cận) đề cập đến việc thiết kế ứng dụng thân thiện với đối tượng người dùng nào?
- A. Người dùng có kết nối internet chậm
- B. Người dùng sử dụng thiết bị cũ
- C. Người dùng khuyết tật
- D. Người dùng không rành về công nghệ
Câu 15: "Progressive Web App (PWA)" mang lại trải nghiệm gần giống ứng dụng native trên web. Công nghệ cốt lõi nào cho phép PWA hoạt động offline và cài đặt được vào màn hình chính?
- A. Service Workers
- B. WebAssembly
- C. WebGL
- D. Web Components
Câu 16: Để quản lý phiên bản code và cộng tác nhóm hiệu quả trong dự án phát triển ứng dụng di động, công cụ quản lý phiên bản phổ biến nhất hiện nay là gì?
- A. SVN
- B. Git
- C. Mercurial
- D. CVS
Câu 17: Trong quy trình phát triển ứng dụng Agile, "Sprint" đại diện cho điều gì?
- A. Một cuộc họp hàng ngày của nhóm phát triển
- B. Một giai đoạn kiểm thử ứng dụng cuối cùng
- C. Một chu kỳ phát triển ngắn, lặp đi lặp lại với mục tiêu cụ thể
- D. Tài liệu mô tả yêu cầu của dự án
Câu 18: Khi thiết kế kiến trúc ứng dụng di động, "layer" (tầng) Presentation Layer thường đảm nhiệm vai trò gì?
- A. Hiển thị giao diện người dùng và xử lý tương tác người dùng
- B. Xử lý logic nghiệp vụ của ứng dụng
- C. Quản lý truy cập dữ liệu
- D. Kết nối với các dịch vụ backend
Câu 19: "Continuous Integration (CI)" và "Continuous Delivery (CD)" là các practices quan trọng trong DevOps. CI/CD giúp cải thiện quy trình phát triển ứng dụng di động như thế nào?
- A. Tăng cường bảo mật ứng dụng
- B. Giảm chi phí phát triển ứng dụng
- C. Cải thiện hiệu suất ứng dụng
- D. Tự động hóa quá trình build, test và triển khai ứng dụng, phát hành nhanh hơn
Câu 20: Để đo lường và theo dõi hành vi người dùng trong ứng dụng di động (ví dụ: số lượng người dùng hoạt động, thời gian sử dụng ứng dụng, luồng người dùng), công cụ phân tích phổ biến nào thường được sử dụng?
- A. Crashlytics
- B. Firebase Analytics
- C. Google Play Console
- D. Android Studio Profiler
Câu 21: Trong phát triển ứng dụng di động, khái niệm "localization" (L10n) và "internationalization" (I18n) liên quan đến vấn đề gì?
- A. Tối ưu hóa hiệu suất ứng dụng trên các thiết bị khác nhau
- B. Bảo vệ ứng dụng khỏi các lỗ hổng bảo mật
- C. Hỗ trợ đa ngôn ngữ và văn hóa cho ứng dụng
- D. Tối ưu hóa kích thước file cài đặt ứng dụng
Câu 22: Để giảm thiểu mức tiêu thụ pin của ứng dụng di động, một trong những kỹ thuật quan trọng là tối ưu hóa việc sử dụng tài nguyên nào?
- A. Bộ nhớ RAM
- B. Bộ nhớ lưu trữ (Storage)
- C. CPU
- D. GPS (dịch vụ định vị)
Câu 23: "OAuth 2.0" là một framework phổ biến cho mục đích gì trong ứng dụng di động?
- A. Mã hóa dữ liệu truyền trên mạng
- B. Ủy quyền truy cập tài nguyên (Authorization)
- C. Xác thực người dùng (Authentication)
- D. Ngăn chặn tấn công CSRF
Câu 24: Trong phát triển ứng dụng Android, "Intent" được sử dụng chủ yếu để thực hiện hành động gì?
- A. Giao tiếp và khởi động các thành phần ứng dụng (Activities, Services, Broadcast Receivers)
- B. Lưu trữ dữ liệu cấu hình ứng dụng
- C. Quản lý vòng đời của Activity
- D. Hiển thị giao diện người dùng
Câu 25: "Lazy loading" hình ảnh trong ứng dụng di động giúp cải thiện trải nghiệm người dùng bằng cách nào?
- A. Tăng chất lượng hiển thị hình ảnh
- B. Nén kích thước file hình ảnh
- C. Giảm thời gian tải trang ban đầu và tiết kiệm băng thông
- D. Tự động điều chỉnh kích thước hình ảnh cho phù hợp với màn hình
Câu 26: Framework nào sau đây cho phép phát triển ứng dụng di động bằng ngôn ngữ JavaScript và HTML/CSS, sau đó đóng gói thành ứng dụng native?
- A. React Native
- B. Ionic/Cordova
- C. Xamarin
- D. Flutter
Câu 27: Trong ngữ cảnh bảo mật ứng dụng di động, "SSL Pinning" được sử dụng để tăng cường bảo mật cho giao tiếp nào?
- A. Giao tiếp giữa các thành phần trong ứng dụng
- B. Lưu trữ dữ liệu cục bộ trên thiết bị
- C. Xác thực người dùng
- D. Giao tiếp HTTPS giữa ứng dụng và server
Câu 28: "State management" là một khía cạnh quan trọng trong phát triển ứng dụng di động, đặc biệt với các framework hiện đại như React Native và Flutter. State management giải quyết vấn đề gì?
- A. Tối ưu hóa hiệu suất giao diện người dùng
- B. Đơn giản hóa việc thiết kế giao diện
- C. Quản lý dữ liệu và trạng thái của ứng dụng một cách hiệu quả và dễ bảo trì
- D. Tăng cường bảo mật dữ liệu ứng dụng
Câu 29: Khi phát triển ứng dụng di động, việc kiểm thử trên "thiết bị thật" (real devices) quan trọng hơn so với "trình giả lập" (emulators/simulators) trong trường hợp nào?
- A. Kiểm tra hiệu suất chung của ứng dụng
- B. Kiểm tra các tính năng phụ thuộc vào phần cứng của thiết bị (camera, GPS, cảm biến)
- C. Kiểm tra giao diện người dùng trên nhiều kích thước màn hình
- D. Kiểm tra tính tương thích với các phiên bản hệ điều hành khác nhau
Câu 30: Mô hình doanh thu "Freemium" thường được áp dụng trong ứng dụng di động như thế nào?
- A. Bán ứng dụng với giá cố định trên store
- B. Thu phí theo lượt tải ứng dụng
- C. Hiển thị quảng cáo trong ứng dụng
- D. Cung cấp phiên bản cơ bản miễn phí và phiên bản nâng cao trả phí