Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 01
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Di Động - Đề 01 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: Một công ty muốn phát triển ứng dụng di động cho cả nền tảng iOS và Android với nguồn lực hạn chế. Giải pháp phát triển ứng dụng nào sau đây sẽ phù hợp nhất để tối ưu chi phí và thời gian, đồng thời vẫn đảm bảo khả năng tiếp cận đa nền tảng?
- A. Phát triển ứng dụng Native cho iOS và sau đó phát triển Native cho Android.
- B. Sử dụng Framework phát triển ứng dụng đa nền tảng (Cross-platform) như React Native hoặc Flutter.
- C. Phát triển ứng dụng Web Responsive và đóng gói thành ứng dụng di động (Progressive Web App - PWA).
- D. Thuê hai đội phát triển ứng dụng Native riêng biệt cho iOS và Android song song.
Câu 2: Trong quá trình thiết kế trải nghiệm người dùng (UX) cho ứng dụng di động, yếu tố nào sau đây cần được ưu tiên hàng đầu để đảm bảo tính trực quan và dễ sử dụng, đặc biệt trên màn hình nhỏ của thiết bị di động?
- A. Sử dụng hiệu ứng chuyển động phức tạp và đồ họa 3D để tăng tính hấp dẫn.
- B. Tích hợp nhiều tính năng nâng cao và tùy biến sâu cho người dùng chuyên nghiệp.
- C. Thiết kế hệ thống điều hướng đơn giản, rõ ràng và nhất quán trong toàn bộ ứng dụng.
- D. Tối ưu hóa ứng dụng cho hiệu năng cao trên các thiết bị cấu hình thấp nhất.
Câu 3: Để đảm bảo chất lượng và độ tin cậy của ứng dụng di động trước khi phát hành, loại kiểm thử (testing) nào sau đây 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ế, đáp ứng yêu cầu nghiệp vụ?
- A. Kiểm thử hiệu năng (Performance Testing)
- B. Kiểm thử chức năng (Functional Testing)
- C. Kiểm thử bảo mật (Security Testing)
- D. Kiểm thử khả năng sử dụng (Usability Testing)
Câu 4: Ứng dụng di động cần lưu trữ thông tin người dùng (tên, email, lịch sử giao dịch). Giải pháp lưu trữ dữ liệu nào sau đây phù hợp nhất cho việc quản lý dữ liệu có cấu trúc, đảm bảo tính toàn vẹn và dễ dàng truy vấn phức tạp trên thiết bị di động?
- A. Sử dụng cơ sở dữ liệu quan hệ SQLite tích hợp sẵn trên thiết bị.
- B. Lưu trữ dữ liệu dưới dạng file văn bản thuần túy (Plain Text Files) trên bộ nhớ trong.
- C. Sử dụng bộ nhớ cache (Cache Storage) của trình duyệt web để lưu trữ dữ liệu.
- D. Lưu trữ dữ liệu trên bộ nhớ đám mây (Cloud Storage) và đồng bộ mỗi khi cần.
Câu 5: Một ứng dụng di động cần xử lý ảnh và video với hiệu suất cao, tận dụng tối đa sức mạnh phần cứng của thiết bị. Ngôn ngữ lập trình nào sau đây thường được ưu tiên lựa chọn cho các tác vụ nặng về tính toán và hiệu năng trong phát triển ứng dụng Native?
- A. JavaScript
- B. Python
- C. Java
- D. C/C++
Câu 6: Khi phát triển ứng dụng di động, việc quản lý phiên bản mã nguồn (version control) là rất quan trọng. Hệ thống quản lý phiên bản phân tán (DVCS) phổ biến nhất hiện nay, cho phép nhiều nhà phát triển làm việc song song, theo dõi thay đổi và dễ dàng hợp nhất mã nguồn là gì?
- A. Subversion (SVN)
- B. Git
- C. Mercurial
- D. CVS
Câu 7: Để ứng dụng di động có thể tương tác với các dịch vụ web bên ngoài (ví dụ: lấy dữ liệu sản phẩm, gửi thông tin đăng ký), giao thức truyền dữ liệu phổ biến và hiệu quả nhất hiện nay cho các ứng dụng di động kết nối với Backend API là gì?
- A. FTP (File Transfer Protocol)
- B. SMTP (Simple Mail Transfer Protocol)
- C. HTTP/HTTPS (Hypertext Transfer Protocol Secure)
- D. TCP/IP (Transmission Control Protocol/Internet Protocol)
Câu 8: Trong mô hình kiến trúc phần mềm MVC (Model-View-Controller) áp dụng cho ứng dụng di động, thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ, thao tác với dữ liệu và cung cấp dữ liệu cho giao diện người dùng?
- A. View
- B. Layout
- C. Adapter
- D. Controller
Câu 9: Để tối ưu hiệu năng và trải nghiệm người dùng cho ứng dụng di động, kỹ thuật nào sau đây giúp thực hiện các tác vụ nặng (ví dụ: tải dữ liệu lớn, xử lý ảnh) một cách mượt mà ở chế độ nền (background), không làm gián đoạn hoặc chậm trễ giao diện chính của ứng dụng?
- A. Xử lý đa luồng (Multithreading/Asynchronous Processing)
- B. Tải trước toàn bộ dữ liệu khi khởi động ứng dụng (Pre-loading)
- C. Tối ưu hóa kích thước bộ nhớ cache (Cache Optimization)
- D. Giảm độ phân giải hình ảnh và video trong ứng dụng
Câu 10: Khi triển khai tính năng thông báo đẩy (push notification) cho ứng dụng di động, điều gì quan trọng nhất cần đảm bảo để thông báo đến đúng đối tượng người dùng, vào đúng thời điểm và mang lại giá trị, tránh gây phiền nhiễu?
- A. Gửi thông báo đẩy hàng loạt cho tất cả người dùng thường xuyên để tăng tương tác.
- B. Cá nhân hóa và ngữ cảnh hóa thông báo đẩy dựa trên hành vi và sở thích của người dùng.
- C. Sử dụng tần suất gửi thông báo đẩy tối đa để đảm bảo người dùng không bỏ lỡ thông tin.
- D. Thiết kế giao diện thông báo đẩy bắt mắt và sử dụng âm thanh thông báo gây chú ý.
Câu 11: Ứng dụng di động cần truy cập vị trí người dùng để cung cấp dịch vụ dựa trên vị trí (ví dụ: tìm kiếm địa điểm gần nhất). API nào sau đây cung cấp chức năng định vị vị trí chính xác và hiệu quả trên hầu hết các thiết bị di động hiện nay?
- A. Bluetooth API
- B. NFC API
- C. GPS API (hoặc Location Services API)
- D. Camera API
Câu 12: Cảm biến gia tốc kế (accelerometer) trên điện thoại di động thường được sử dụng để phát hiện và đo lường điều gì trong ứng dụng di động?
- A. Ánh sáng môi trường xung quanh
- B. Nhiệt độ và độ ẩm
- C. Áp suất không khí
- D. Chuyển động và hướng của thiết bị
Câu 13: Để đảm bảo ứng dụng di động tiếp cận được nhiều người dùng nhất có thể, yếu tố nào sau đây cần được xem xét trong quá trình phát triển, đặc biệt đối với người dùng khuyết tật hoặc có hạn chế về khả năng sử dụng?
- A. Tối ưu hóa ứng dụng cho các thiết bị cấu hình cao.
- B. Tuân thủ các nguyên tắc về khả năng tiếp cận (Accessibility) trong thiết kế và phát triển.
- C. Sử dụng công nghệ mới nhất và phức tạp nhất.
- D. Tập trung vào giao diện người dùng đẹp mắt và hiện đại.
Câu 14: Khi phát triển ứng dụng đa ngôn ngữ, quá trình nào sau đây đảm bảo rằng ứng dụng hiển thị nội dung phù hợp với ngôn ngữ và văn hóa của người dùng ở các quốc gia khác nhau?
- A. Quốc tế hóa (Internationalization - i18n)
- B. Toàn cầu hóa (Globalization - g11n)
- C. Địa phương hóa (Localization - l10n)
- D. Chuẩn hóa (Normalization)
Câu 15: Trong quy trình phát triển phần mềm Agile, phương pháp nào sau đây tập trung vào việc chia nhỏ dự án thành các Sprint ngắn, lặp đi lặp lại, và liên tục tích hợp, kiểm thử để nhanh chóng đưa ra các phiên bản ứng dụng có giá trị cho người dùng?
- A. Mô hình thác nước (Waterfall)
- B. Mô hình chữ V (V-Model)
- C. Mô hình xoắn ốc (Spiral Model)
- D. Scrum
Câu 16: Để ứng dụng di động hoạt động mượt mà và nhanh chóng, kỹ thuật nào sau đây giúp giảm thiểu số lượng yêu cầu (request) đến máy chủ Backend bằng cách lưu trữ tạm thời dữ liệu đã truy cập gần đây trên thiết bị di động?
- A. Sử dụng bộ nhớ đệm (Caching) dữ liệu
- B. Nén dữ liệu trước khi truyền tải (Data Compression)
- C. Tối ưu hóa thuật toán xử lý dữ liệu (Algorithm Optimization)
- D. Tăng băng thông kết nối mạng (Network Bandwidth)
Câu 17: Mô hình kiến trúc MVVM (Model-View-ViewModel) được ưa chuộng trong phát triển ứng dụng di động hiện đại. Thành phần ViewModel trong MVVM có vai trò chính là gì?
- A. Hiển thị giao diện người dùng và tương tác với người dùng.
- B. Cung cấp dữ liệu và logic cho View, xử lý các tương tác của View.
- C. Quản lý dữ liệu và logic nghiệp vụ của ứng dụng.
- D. Điều phối luồng điều khiển giữa View và Model.
Câu 18: Khi phát triển ứng dụng thương mại điện tử trên di động, giải pháp thanh toán trực tuyến nào sau đây đảm bảo tính bảo mật và tiện lợi cho người dùng, đồng thời tích hợp dễ dàng vào ứng dụng?
- A. Thanh toán bằng tiền mặt khi giao hàng (Cash on Delivery - COD)
- B. Chuyển khoản ngân hàng trực tiếp
- C. Tích hợp cổng thanh toán trực tuyến của bên thứ ba (ví dụ: Stripe, PayPal)
- D. Sử dụng mã QR code để thanh toán
Câu 19: Để theo dõi hành vi người dùng và hiệu quả hoạt động của ứng dụng di động sau khi phát hành, công cụ nào sau đây cung cấp các chỉ số phân tích (analytics) quan trọng như số lượt tải, người dùng hoạt động hàng ngày/hàng tháng, tỷ lệ giữ chân người dùng?
- A. Hệ thống quản lý cơ sở dữ liệu (Database Management System - DBMS)
- B. Hệ thống quản lý nội dung (Content Management System - CMS)
- C. Công cụ kiểm thử tự động (Automated Testing Tools)
- D. Nền tảng phân tích ứng dụng di động (Mobile Analytics Platforms) như Google Analytics, Firebase Analytics
Câu 20: Ứng dụng di động cần hoạt động ngay cả khi không có kết nối mạng Internet. Kỹ thuật nào sau đây cho phép ứng dụng lưu trữ dữ liệu cục bộ và đồng bộ hóa với máy chủ khi có kết nối trở lại, đảm bảo trải nghiệm người dùng liên tục?
- A. Truyền dữ liệu trực tuyến liên tục (Real-time Data Streaming)
- B. Thiết kế ứng dụng theo hướng Offline-first và đồng bộ hóa dữ liệu khi có kết nối
- C. Sử dụng bộ nhớ cache dung lượng lớn để lưu trữ toàn bộ dữ liệu ứng dụng
- D. Hiển thị thông báo lỗi khi không có kết nối mạng
Câu 21: Trong thiết kế giao diện người dùng (UI) cho ứng dụng di động, nguyên tắc "ngón tay cái" (thumb zone) đề cập đến điều gì?
- A. Kích thước tối thiểu của các nút bấm và thành phần tương tác để dễ thao tác bằng ngón tay.
- B. Màu sắc và độ tương phản của các thành phần giao diện để dễ nhìn bằng mắt thường.
- C. Vùng trên màn hình điện thoại mà người dùng dễ dàng tiếp cận và thao tác bằng ngón tay cái.
- D. Số lượng ngón tay tối đa mà người dùng có thể sử dụng để tương tác đồng thời trên màn hình cảm ứng.
Câu 22: Khi ứng dụng di động gặp sự cố hoặc lỗi không mong muốn, quy trình nào sau đây giúp thu thập thông tin chi tiết về lỗi (ví dụ: stack trace, thông tin thiết bị) để nhà phát triển có thể phân tích và sửa lỗi hiệu quả?
- A. Kiểm thử đơn vị (Unit Testing)
- B. Kiểm thử tích hợp (Integration Testing)
- C. Ghi log (Logging) thông thường
- D. Sử dụng dịch vụ báo cáo lỗi (Crash Reporting) tự động
Câu 23: Để bảo vệ dữ liệu nhạy cảm của người dùng trong ứng dụng di động (ví dụ: mật khẩu, thông tin thẻ tín dụng), biện pháp bảo mật nào sau đây quan trọng nhất khi truyền dữ liệu giữa ứng dụng và máy chủ Backend?
- A. Mã hóa dữ liệu truyền tải bằng giao thức HTTPS
- B. Xác thực người dùng bằng mật khẩu mạnh
- C. Kiểm soát quyền truy cập dữ liệu trên máy chủ
- D. Sử dụng tường lửa (Firewall) để bảo vệ máy chủ
Câu 24: Trong quá trình phát triển ứng dụng di động, thuật ngữ "technical debt" (nợ kỹ thuật) dùng để chỉ điều gì?
- A. Số tiền nợ nhà cung cấp dịch vụ đám mây (cloud provider).
- B. Hậu quả của việc đưa ra các quyết định thiết kế hoặc mã hóa không tối ưu trong ngắn hạn, gây khó khăn cho việc bảo trì và phát triển trong tương lai.
- C. Thời gian phát triển dự án bị kéo dài so với kế hoạch ban đầu.
- D. Số lượng lỗi (bug) còn tồn đọng trong ứng dụng sau khi phát hành.
Câu 25: Để kiểm tra giao diện người dùng (UI) của ứng dụng di động trên nhiều loại thiết bị và kích thước màn hình khác nhau, phương pháp kiểm thử nào sau đây hiệu quả và tiết kiệm thời gian hơn so với kiểm thử thủ công trên từng thiết bị vật lý?
- A. Kiểm thử hiệu năng (Performance Testing) trên thiết bị thật.
- B. Kiểm thử bảo mật (Security Testing) trên thiết bị thật.
- C. Kiểm thử UI tự động (Automated UI Testing) trên trình giả lập hoặc thiết bị ảo.
- D. Kiểm thử khám phá (Exploratory Testing) bởi người dùng thực tế.
Câu 26: Trong kiến trúc ứng dụng di động, tầng "Presentation Layer" (tầng hiển thị) chịu trách nhiệm chính về điều gì?
- A. Hiển thị giao diện người dùng và xử lý tương tác của người dùng.
- B. Xử lý logic nghiệp vụ và quy tắc của ứng dụng.
- C. Quản lý dữ liệu và truy cập cơ sở dữ liệu.
- D. Kết nối với các dịch vụ bên ngoài và API.
Câu 27: Để giảm kích thước gói cài đặt (APK/IPA) của ứng dụng di động, biện pháp nào sau đây hiệu quả nhất trong việc tối ưu hóa tài nguyên (assets) như hình ảnh, âm thanh và video?
- A. Tối ưu hóa mã nguồn chương trình (code optimization).
- B. Nén và tối ưu hóa các tài nguyên (assets) như hình ảnh, âm thanh, video.
- C. Sử dụng thư viện và framework của bên thứ ba ít hơn.
- D. Xóa bỏ các tính năng không cần thiết của ứng dụng.
Câu 28: Trong phát triển ứng dụng di động, "deep linking" là kỹ thuật cho phép người dùng điều hướng trực tiếp đến một trang hoặc nội dung cụ thể bên trong ứng dụng từ bên ngoài ứng dụng (ví dụ: từ link web, email, thông báo đẩy). Lợi ích chính của deep linking là gì?
- A. Tăng tốc độ khởi động ứng dụng.
- B. Giảm mức sử dụng pin của ứng dụng.
- C. Cải thiện trải nghiệm người dùng bằng cách điều hướng trực tiếp đến nội dung liên quan.
- D. Tăng cường bảo mật cho ứng dụng.
Câu 29: Xu hướng phát triển ứng dụng di động hiện nay đang chuyển dịch mạnh mẽ sang ứng dụng "serverless" (phi máy chủ). Ưu điểm chính của kiến trúc serverless trong phát triển ứng dụng di động là gì?
- A. Tăng hiệu năng xử lý dữ liệu của ứng dụng trên thiết bị di động.
- B. Đơn giản hóa quá trình phát triển ứng dụng Native.
- C. Cải thiện khả năng bảo mật của ứng dụng di động.
- D. Giảm chi phí vận hành và quản lý máy chủ Backend, tập trung vào phát triển Frontend.
Câu 30: Trong tương lai gần, công nghệ nào sau đây dự kiến sẽ có tác động lớn đến cách phát triển và tương tác với ứng dụng di động, mở ra những trải nghiệm người dùng hoàn toàn mới và phong phú hơn?
- A. Công nghệ in 3D (3D Printing)
- B. Thực tế tăng cường (Augmented Reality - AR) và Thực tế ảo (Virtual Reality - VR)
- C. Công nghệ Blockchain
- D. Internet of Things (IoT)