Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 09
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 09 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 quá trình phát triển ứng dụng di động Android, bạn cần lưu trữ dữ liệu cấu hình ứng dụng (ví dụ: chủ đề người dùng đã chọn, tùy chọn thông báo). Giải pháp lưu trữ nào sau đây là phù hợp nhất cho mục đích này?
- A. SharedPreferences
- B. SQLite Database
- C. File storage (lưu trữ trực tiếp vào file)
- D. Cloud Firestore
Câu 2: Bạn đang thiết kế giao diện người dùng cho một ứng dụng Android. Yêu cầu là hiển thị một danh sách dữ liệu lớn có khả năng cuộn và tái sử dụng các phần tử giao diện khi người dùng cuộn trang để tối ưu hiệu suất. Widget nào sau đây của Android là lựa chọn tốt nhất?
- A. ScrollView
- B. RecyclerView
- C. LinearLayout
- D. GridView
Câu 3: Ứng dụng của bạn cần thực hiện một tác vụ nền (background task) kéo dài, ví dụ như tải xuống một tập tin lớn từ internet, ngay cả khi ứng dụng không còn hiển thị trên màn hình. Thành phần ứng dụng Android nào sau đây phù hợp nhất để xử lý tác vụ này?
- A. Activity
- B. BroadcastReceiver
- C. Service
- D. ContentProvider
Câu 4: Trong mô hình MVC (Model-View-Controller) áp dụng cho phát triển ứng dụng di động, thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với dữ liệu?
- A. View
- B. Controller
- C. Model
- D. Adapter
Câu 5: Để đảm bảo ứng dụng di động của bạn hoạt động tốt trên nhiều loại thiết bị với kích thước và độ phân giải màn hình khác nhau, bạn cần áp dụng nguyên tắc thiết kế nào?
- A. Thiết kế giao diện cố định (Fixed layout design)
- B. Thiết kế ưu tiên desktop (Desktop-first design)
- C. Thiết kế đáp ứng (Responsive design)
- D. Thiết kế theo pixel tuyệt đối (Pixel-perfect design)
Câu 6: Bạn muốn ứng dụng Android của mình nhận thông báo khi có sự kiện hệ thống xảy ra, ví dụ như khi pin yếu hoặc khi kết nối mạng thay đổi. Thành phần nào của Android cho phép bạn đăng ký và nhận các thông báo này?
- A. BroadcastReceiver
- B. Service
- C. Activity
- D. ContentProvider
Câu 7: Khi phát triển ứng dụng iOS, ngôn ngữ lập trình chính thức và được Apple khuyến nghị sử dụng là gì?
- A. Java
- B. Swift
- C. C#
- D. Objective-C
Câu 8: Trong quy trình kiểm thử ứng dụng di động, loại kiểm thử nào tập trung vào việc đảm bảo các chức năng của ứng dụng hoạt động đúng theo đặc tả yêu cầu?
- A. Kiểm thử hiệu năng (Performance testing)
- B. Kiểm thử bảo mật (Security testing)
- C. Kiểm thử khả năng sử dụng (Usability testing)
- D. Kiểm thử chức năng (Functional testing)
Câu 9: Framework phát triển ứng dụng di động đa nền tảng nào sử dụng ngôn ngữ JavaScript, cho phép viết ứng dụng một lần và chạy trên cả iOS và Android?
- A. Flutter
- B. Xamarin
- C. React Native
- D. Ionic
Câu 10: Khi thiết kế điều hướng (navigation) cho ứng dụng di động, phương pháp điều hướng nào thường được sử dụng cho các ứng dụng có cấu trúc phân cấp sâu, nhiều tầng?
- A. Điều hướng tab dưới (Bottom navigation)
- B. Điều hướng ngăn kéo (Navigation drawer)
- C. Điều hướng tab trên (Top navigation tabs)
- D. Điều hướng tuyến tính (Linear navigation)
Câu 11: Trong quá trình phát triển ứng dụng di động, bạn sử dụng công cụ quản lý phiên bản (version control) nào để theo dõi thay đổi mã nguồn và cộng tác làm việc nhóm hiệu quả?
- A. Git
- B. SVN
- C. CVS
- D. FTP
Câu 12: Bạn cần tối ưu hiệu suất ứng dụng di động Android của mình. Giải pháp nào sau đây giúp giảm thiểu tình trạng "jank" (khựng giật) và đảm bảo trải nghiệm người dùng mượt mà?
- A. Tăng kích thước heap memory
- B. Sử dụng nhiều luồng (threads) hơn cho UI
- C. Tải tất cả dữ liệu cùng một lúc khi khởi động ứng dụng
- D. Chuyển các tác vụ nặng xuống background thread
Câu 13: Để xác thực người dùng trong ứng dụng di động, phương pháp nào sau đây được coi là an toàn và phổ biến, đặc biệt khi tích hợp với các dịch vụ bên thứ ba (ví dụ: Google, Facebook)?
- A. Lưu trữ mật khẩu trực tiếp trong SharedPreferences
- B. Sử dụng OAuth 2.0
- C. Gửi mật khẩu qua email
- D. Xác thực dựa trên địa chỉ MAC của thiết bị
Câu 14: Bạn muốn thiết kế một ứng dụng di động cho phép người dùng xem video trực tuyến. Giao thức truyền tải video nào sau đây được tối ưu hóa cho việc phát trực tuyến và giảm thiểu độ trễ?
- A. FTP
- B. SMTP
- C. HTTP Live Streaming (HLS)
- D. TCP
Câu 15: Trong phát triển ứng dụng di động, khái niệm "deep linking" (liên kết sâu) dùng để chỉ điều gì?
- A. Liên kết trực tiếp người dùng đến một trang hoặc nội dung cụ thể bên trong ứng dụng từ một liên kết bên ngoài (ví dụ: từ website, email)
- B. Liên kết giữa các module khác nhau trong cùng một ứng dụng
- C. Liên kết đến trang tải ứng dụng trên store (App Store, Google Play)
- D. Liên kết đến trang chủ của ứng dụng
Câu 16: Khi phát triển ứng dụng di động, bạn cần lựa chọn kiến trúc ứng dụng (application architecture) phù hợp. Kiến trúc nào sau đây tập trung vào việc tách biệt logic nghiệp vụ, giao diện người dùng và dữ liệu, giúp ứng dụng dễ bảo trì và mở rộng?
- A. Kiến trúc monolithic (nguyên khối)
- B. Kiến trúc microservices (vi dịch vụ)
- C. Kiến trúc serverless (phi máy chủ)
- D. Kiến trúc MVVM (Model-View-ViewModel)
Câu 17: Để thu thập thông tin về hành vi người dùng trong ứng dụng di động (ví dụ: số lượng người dùng, thời gian sử dụng, luồng thao tác), bạn thường tích hợp công cụ phân tích (analytics) nào?
- A. Google Search Console
- B. Google Analytics for Firebase
- C. Google Ads
- D. Google Tag Manager
Câu 18: Trong quá trình phát triển ứng dụng di động, bạn gặp lỗi và cần tìm hiểu nguyên nhân. Công cụ nào sau đây giúp bạn gỡ lỗi (debug) ứng dụng Android một cách hiệu quả?
- A. Android Studio Layout Inspector
- B. Android Studio Profiler
- C. Android Debug Bridge (ADB)
- D. Gradle Build Analyzer
Câu 19: Phương pháp nào sau đây giúp kiểm tra giao diện người dùng (UI) của ứng dụng di động một cách tự động, đảm bảo giao diện hiển thị đúng và hoạt động như mong đợi trên các thiết bị khác nhau?
- A. Kiểm thử đơn vị (Unit testing)
- B. Kiểm thử tích hợp (Integration testing)
- C. Kiểm thử thủ công (Manual testing)
- D. Kiểm thử giao diện người dùng tự động (Automated UI testing)
Câu 20: Khi thiết kế trải nghiệm người dùng (UX) cho ứng dụng di động, nguyên tắc "Fitts"s Law" (Định luật Fitts) đề cập đến yếu tố nào?
- A. Thời gian cần thiết để di chuyển đến một mục tiêu và chọn mục tiêu đó phụ thuộc vào kích thước của mục tiêu và khoảng cách đến mục tiêu.
- B. Màu sắc của giao diện ảnh hưởng đến cảm xúc người dùng.
- C. Bố cục giao diện nên đơn giản và dễ hiểu.
- D. Phản hồi từ hệ thống nên nhanh chóng và rõ ràng.
Câu 21: Loại cơ sở dữ liệu nào thường được sử dụng cho các ứng dụng di động cần xử lý dữ liệu phi cấu trúc hoặc bán cấu trúc, có khả năng mở rộng linh hoạt và truy vấn nhanh?
- A. Cơ sở dữ liệu quan hệ (Relational database - SQL)
- B. Cơ sở dữ liệu NoSQL
- C. File system (Hệ thống file)
- D. Bộ nhớ đệm (In-memory cache)
Câu 22: Để quản lý trạng thái (state management) trong ứng dụng di động phức tạp, đặc biệt là trong các framework như React Native hoặc Flutter, thư viện hoặc pattern nào sau đây thường được sử dụng để giúp quản lý trạng thái hiệu quả và dễ dàng chia sẻ trạng thái giữa các component?
- A. Callback functions (Hàm callback)
- B. Props drilling
- C. State management libraries/patterns (ví dụ: Redux, Context API, Provider)
- D. Local storage (Lưu trữ cục bộ)
Câu 23: Khi phát triển ứng dụng di động, bạn cần tích hợp API bên thứ ba để lấy dữ liệu hoặc sử dụng dịch vụ. Định dạng dữ liệu nào phổ biến nhất được sử dụng để trao đổi dữ liệu giữa ứng dụng di động và API server?
- A. JSON (JavaScript Object Notation)
- B. XML (eXtensible Markup Language)
- C. CSV (Comma-Separated Values)
- D. HTML (HyperText Markup Language)
Câu 24: Trong phát triển ứng dụng di động, "push notification" (thông báo đẩy) được sử dụng cho mục đích chính nào?
- A. Theo dõi vị trí người dùng
- B. Gửi thông báo và cập nhật cho người dùng ngay cả khi ứng dụng không chạy ở foreground
- C. Thu thập dữ liệu phân tích người dùng
- D. Chia sẻ dữ liệu giữa các ứng dụng
Câu 25: Để cải thiện khả năng tiếp cận (accessibility) của ứng dụng di động cho người dùng khuyết tật, bạn nên chú trọng đến yếu tố nào trong thiết kế UI/UX?
- A. Sử dụng hiệu ứng động phức tạp
- B. Giảm độ tương phản màu sắc
- C. Cung cấp text thay thế (alt text) cho hình ảnh
- D. Ẩn các nhãn văn bản
Câu 26: Khi triển khai ứng dụng di động lên store (ví dụ: Google Play Store, Apple App Store), quy trình "code signing" (ký mã) có vai trò gì?
- A. Tăng tốc độ tải ứng dụng
- B. Giảm kích thước ứng dụng
- C. Tối ưu hóa hiệu suất ứng dụng
- D. Xác minh nguồn gốc của ứng dụng và đảm bảo tính toàn vẹn của mã, chống giả mạo
Câu 27: Trong phát triển ứng dụng di động, "localization" (nội địa hóa) và "internationalization" (quốc tế hóa) là gì và chúng khác nhau như thế nào?
- A. Localization và internationalization là hai thuật ngữ giống nhau, đều chỉ quá trình dịch ứng dụng sang nhiều ngôn ngữ.
- B. Internationalization là chuẩn bị ứng dụng để hỗ trợ đa ngôn ngữ và khu vực, còn localization là tùy chỉnh ứng dụng cho một ngôn ngữ và khu vực cụ thể.
- C. Internationalization chỉ liên quan đến việc dịch văn bản, còn localization bao gồm cả việc điều chỉnh hình ảnh và bố cục.
- D. Localization là quá trình kiểm thử ứng dụng trên nhiều thiết bị, còn internationalization là kiểm thử trên nhiều hệ điều hành.
Câu 28: Khi phát triển ứng dụng di động, bạn cần xử lý lỗi và ngoại lệ (exceptions) một cách cẩn thận. Mục đích chính của việc xử lý lỗi là gì?
- A. Tăng tốc độ ứng dụng
- B. Giảm kích thước ứng dụng
- C. Ngăn chặn ứng dụng bị crash và cung cấp thông báo lỗi thân thiện cho người dùng
- D. Tối ưu hóa sử dụng pin
Câu 29: Mô hình phát triển ứng dụng di động "Agile" (Linh hoạt) nhấn mạnh điều gì trong quy trình phát triển?
- A. Linh hoạt, thích ứng với thay đổi, làm việc nhóm chặt chẽ và phản hồi nhanh chóng từ khách hàng.
- B. Tuân thủ nghiêm ngặt kế hoạch ban đầu, tài liệu chi tiết và quy trình tuần tự.
- C. Tập trung vào kiểm thử toàn diện ở giai đoạn cuối dự án.
- D. Ưu tiên cá nhân và tương tác hơn quy trình và công cụ.
Câu 30: Bạn muốn tích hợp khả năng thanh toán trực tuyến vào ứng dụng di động của mình. Giải pháp nào sau đây cung cấp API và công cụ để xử lý thanh toán an toàn và tuân thủ các tiêu chuẩn bảo mật?
- A. Lưu trữ thông tin thẻ tín dụng trực tiếp trên server của ứng dụng
- B. Sử dụng mã QR code tĩnh để thanh toán
- C. Gửi thông tin thẻ tín dụng qua email
- D. Sử dụng Payment Gateway (ví dụ: Stripe, PayPal, Braintree)