500+ câu Trắc nghiệm Phát triển game trên Android cơ bản có đáp án - Phần 15
31 câu hỏi
Trong phát triển ứng dụng iOS, khi nào nên sử dụng `delegate` pattern so với `NotificationCenter`?
Khi cần gửi thông báo đến nhiều đối tượng nhận độc lập, không có mối quan hệ trực tiếp
Khi cần một mối quan hệ một-nhiều (one-to-many) hoặc một-một (one-to-one) rõ ràng, nơi đối tượng nguồn (source) chủ động thông báo cho một hoặc một vài đối tượng nhận cụ thể (delegate)
Chỉ khi cần gửi thông báo đến tất cả các đối tượng trong ứng dụng
Khi không có mối quan hệ rõ ràng giữa các đối tượng và chỉ cần thông báo chung
Chọn đáp án B
Một ứng dụng di động cần phân biệt giữa các loại màn hình khác nhau (ví dụ: điện thoại, máy tính bảng) và hiển thị giao diện phù hợp. Biện pháp nào sau đây là hiệu quả nhất để đạt được điều này?Phần cứng máy tính
Sử dụng một bố cục cố định duy nhất cho mọi kích thước màn hình
Sử dụng các tài nguyên (layout, drawable, string) có tên khác nhau dựa trên loại màn hình (ví dụ: `layout-sw600dp` cho máy tính bảng trên Android)
Chỉ hỗ trợ một loại kích thước màn hình
Yêu cầu người dùng điều chỉnh kích thước hiển thị thủ công
Chọn đáp án B
Một nhà phát triển đang xây dựng một ứng dụng yêu cầu người dùng đăng nhập bằng tài khoản Google. Họ cần sử dụng SDK của Google để thực hiện việc này. Nền tảng nào thường cung cấp các SDK và API cho phép tích hợp dịch vụ của Google vào ứng dụng di động?
React Native
Flutter
Android (với Android SDK) và iOS (với Google Sign-In SDK)
Tất cả các lựa chọn trên đều có thể tích hợp dịch vụ Google
Chọn đáp án D
Trong phát triển ứng dụng di động, ‘Deep Linking’ cho phép người dùng thực hiện hành động gì?
Cho phép ứng dụng truy cập trực tiếp vào camera của thiết bị
Cho phép người dùng chuyển đổi giữa các ứng dụng khác nhau trên thiết bị
Chuyển hướng người dùng từ một liên kết web hoặc ứng dụng khác đến một trang hoặc nội dung cụ thể bên trong ứng dụng di động
Cho phép ứng dụng gửi tin nhắn SMS tự động
Chọn đáp án C
Một ứng dụng cần hiển thị một danh sách các mặt hàng. Mỗi mặt hàng có thể có hình ảnh, tên, giá và một nút ‘Thêm vào giỏ hàng’. Để hiển thị danh sách này một cách hiệu quả và có thể tái sử dụng các thành phần giao diện, bạn nên sử dụng kỹ thuật nào?
Tạo một đối tượng `View` mới cho mỗi mục trong danh sách
Sử dụng một Adapter (ví dụ: `RecyclerView.Adapter` trên Android, `UICollectionViewDataSource` trên iOS) để liên kết dữ liệu với các View có thể tái sử dụng
Sử dụng `LinearLayout` chứa tất cả các mục
Cuộn từng mục một cách thủ công
Chọn đáp án B
Một nhà phát triển đang xem xét việc thêm tính năng xác thực người dùng cho ứng dụng của mình. Họ muốn một giải pháp an toàn, dễ triển khai và có thể xử lý nhiều phương thức xác thực (email/mật khẩu, Google, Facebook). Giải pháp nào sau đây là phù hợp?
Tự xây dựng hệ thống quản lý người dùng từ đầu và lưu trữ mật khẩu dưới dạng văn bản thuần
Sử dụng các dịch vụ xác thực của bên thứ ba như Firebase Authentication, Auth0, hoặc AWS Cognito
Chỉ cho phép người dùng truy cập ứng dụng mà không cần đăng nhập
Lưu trữ tên người dùng và mật khẩu trực tiếp trong SharedPreferences
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘Unit Testing’ (Kiểm thử đơn vị) là gì và mục đích của nó là gì?
Kiểm tra toàn bộ ứng dụng trên nhiều thiết bị khác nhau
Kiểm tra từng đơn vị nhỏ nhất của mã nguồn (ví dụ: một hàm, một lớp) một cách độc lập để đảm bảo chúng hoạt động đúng
Kiểm tra trải nghiệm người dùng cuối cùng
Kiểm tra hiệu suất của ứng dụng trên mạng chậm
Chọn đáp án B
Khi thiết kế một ứng dụng di động, việc sử dụng các Icon ngữ cảnh (Contextual Icons) có ý nghĩa gì?
Sử dụng các biểu tượng động thay đổi dựa trên thời tiết
Sử dụng các biểu tượng quen thuộc, dễ hiểu và thể hiện rõ chức năng của nút hoặc hành động tương ứng
Sử dụng các biểu tượng trừu tượng để tăng tính thẩm mỹ
Chỉ sử dụng các biểu tượng có sẵn trong hệ điều hành
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘Native App’ (Ứng dụng gốc) là gì?
Ứng dụng được phát triển bằng các ngôn ngữ lập trình web như HTML, CSS, JavaScript
Ứng dụng được xây dựng bằng ngôn ngữ lập trình và bộ công cụ phát triển (SDK) dành riêng cho một nền tảng di động cụ thể (ví dụ: Swift/Objective-C cho iOS, Kotlin/Java cho Android)
Ứng dụng có thể chạy trên mọi hệ điều hành mà không cần thay đổi mã nguồn
Ứng dụng được truy cập thông qua trình duyệt web trên điện thoại
Chọn đáp án B
Trong phát triển ứng dụng di động, khái niệm ‘State Management’ đề cập đến việc gì?
Quản lý trạng thái kết nối mạng của thiết bị
Quản lý vòng đời của ứng dụng và các hoạt động (activities/view controllers)
Cách dữ liệu và trạng thái của giao diện người dùng (UI) được lưu trữ, cập nhật và truyền đi trong ứng dụng
Kiểm soát quyền truy cập của ứng dụng vào các tài nguyên hệ thống
Chọn đáp án C
Một ứng dụng di động cần lưu trữ các cài đặt của người dùng như tên người dùng, tùy chọn chủ đề (theme) và trạng thái đăng nhập. Phương pháp lưu trữ nào sau đây là phù hợp và hiệu quả cho các dữ liệu này trên Android?
Lưu trữ tất cả cài đặt vào một file văn bản lớn trong bộ nhớ trong
Sử dụng `SharedPreferences` để lưu trữ các cặp key-value nhỏ, dễ truy cập
Sử dụng `ContentProvider` để quản lý tất cả cài đặt
Lưu trữ trực tiếp vào database SQLite mà không có bất kỳ lớp trừu tượng nào
Chọn đáp án B
Một ứng dụng cần hiển thị danh sách các mục có thể cuộn vô hạn (infinite scrolling) và mỗi mục có thể chứa hình ảnh, tiêu đề và mô tả. Thư viện UI nào sau đây trên Android là phù hợp nhất để hiển thị danh sách hiệu quả, đặc biệt khi số lượng mục rất lớn?
`ListView`
`RecyclerView`
`LinearLayout` lồng trong `ScrollView`
`GridView`
Chọn đáp án B
Khi thiết kế giao diện người dùng cho ứng dụng di động, nguyên tắc ‘Progressive Disclosure’ đề cập đến điều gì?
Hiển thị tất cả thông tin và tùy chọn ngay lập tức để người dùng dễ dàng truy cập
Che giấu các tùy chọn hoặc thông tin ít quan trọng ban đầu, chỉ hiển thị khi người dùng yêu cầu hoặc cần thiết
Sử dụng các animation phức tạp để thu hút sự chú ý của người dùng
Luôn ưu tiên hiển thị các nút hành động chính ở vị trí dễ thấy nhất
Chọn đáp án B
Một nhóm nhà phát triển đang xây dựng một ứng dụng nhắn tin thời gian thực. Họ cần một giải pháp backend có khả năng xử lý đồng thời hàng triệu kết nối và đẩy tin nhắn tức thời đến người dùng. Giải pháp nào sau đây là phù hợp nhất?
Sử dụng RESTful API với polling liên tục từ client
Sử dụng WebSockets hoặc công nghệ tương tự (như MQTT) cho giao tiếp hai chiều thời gian thực
Sử dụng FTP để truyền tin nhắn giữa các client
Xây dựng một ứng dụng backend đơn luồng (single-threaded) để quản lý tất cả kết nối
Chọn đáp án C
Một ứng dụng di động cần phân tích hành vi người dùng để cải thiện trải nghiệm. Họ muốn theo dõi các sự kiện như lượt nhấp vào nút, thời gian xem trang, và luồng di chuyển của người dùng. Công cụ phân tích nào thường được sử dụng cho mục đích này?
Firebase Performance Monitoring
Firebase Crashlytics
Firebase Analytics (hoặc các công cụ tương tự như Google Analytics for Mobile)
Firebase Cloud Messaging
Chọn đáp án B
Khi xây dựng một ứng dụng có khả năng tùy chỉnh cao cho người dùng, ví dụ như cho phép họ thay đổi bố cục, màu sắc, hoặc thêm/bớt các widget trên màn hình. Cách tiếp cận nào sau đây là phù hợp nhất để lưu trữ và khôi phục các tùy chỉnh này?
Lưu trữ tất cả tùy chỉnh dưới dạng các biến toàn cục (global variables)
Sử dụng một cơ sở dữ liệu như SQLite hoặc Realm để lưu trữ các cấu hình tùy chỉnh dưới dạng các bản ghi có cấu trúc
Yêu cầu người dùng nhập lại tất cả tùy chỉnh mỗi khi mở ứng dụng
Lưu trữ các tùy chỉnh dưới dạng các tệp cấu hình JSON riêng lẻ cho mỗi người dùng
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘Accessibility’ (Khả năng tiếp cận) đề cập đến điều gì?
Khả năng ứng dụng hoạt động tốt trên các thiết bị có cấu hình thấp
Khả năng ứng dụng có thể truy cập và sử dụng bởi mọi người, bao gồm cả những người có khuyết tật (ví dụ: khiếm thị, khiếm thính, suy giảm vận động)
Khả năng ứng dụng tự động điều chỉnh ngôn ngữ
Khả năng ứng dụng kết nối với các thiết bị Bluetooth
Chọn đáp án B
Trong quá trình phát triển ứng dụng, việc sử dụng CI/CD (Continuous Integration/Continuous Deployment) mang lại lợi ích chính nào?
Tăng cường bảo mật bằng cách mã hóa tất cả dữ liệu người dùng
Giảm thiểu rủi ro lỗi phần mềm, tăng tốc độ phát hành và cải thiện quy trình làm việc của đội ngũ.Phần mềm
Đảm bảo ứng dụng tương thích với mọi phiên bản hệ điều hành di động
Tự động hóa việc thiết kế giao diện người dùng
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘Cross-Platform Development’ (Phát triển đa nền tảng) đề cập đến việc gì?
Xây dựng ứng dụng chỉ chạy trên một hệ điều hành duy nhất
Phát triển một ứng dụng bằng một bộ mã nguồn duy nhất có thể chạy trên nhiều hệ điều hành di động (ví dụ: iOS và Android)
Phát triển ứng dụng chỉ dành cho máy tính để bàn
Phát triển ứng dụng web có thể truy cập từ mọi thiết bị
Chọn đáp án B
Một nhà phát triển cần triển khai một tính năng cho phép người dùng chụp ảnh và tải lên ứng dụng. Họ muốn xử lý ảnh sau khi chụp (ví dụ: cắt, xoay). Cơ chế nào sau đây là phù hợp để lấy ảnh từ camera và xử lý?
Sử dụng `SharedPreferences` để lưu ảnh
Sử dụng các API camera của hệ điều hành (ví dụ: `CameraX` trên Android, `AVFoundation` trên iOS) để chụp ảnh và sau đó xử lý tệp ảnh
Yêu cầu người dùng tải ảnh từ máy tính.Phần cứng máy tính
Sử dụng `NotificationCenter` để nhận ảnh
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘responsive design’ có nghĩa là gì?
Thiết kế giao diện người dùng có khả năng tự điều chỉnh để hiển thị tốt trên các kích thước màn hình và độ phân giải khác nhau
Ứng dụng có thể tự động cập nhật mà không cần sự can thiệp của người dùng
Ứng dụng có thể phản hồi nhanh chóng với các hành động của người dùng
Thiết kế tập trung vào việc tối ưu hóa hiệu suất sử dụng pin
Chọn đáp án B
Trong phát triển ứng dụng di động, ‘responsive design’ có nghĩa là gì?
Thiết kế giao diện người dùng có khả năng tự điều chỉnh để hiển thị tốt trên các kích thước màn hình và độ phân giải khác nhau
Ứng dụng có thể tự động cập nhật mà không cần sự can thiệp của người dùng
Ứng dụng có thể phản hồi nhanh chóng với các hành động của người dùng
Thiết kế tập trung vào việc tối ưu hóa hiệu suất sử dụng pin
Chọn đáp án B
Trong kiến trúc MVVM (Model-View-ViewModel), vai trò chính của ‘ViewModel’ là gì?
Chứa logic trình bày (presentation logic) và cung cấp dữ liệu cho View, đồng thời xử lý các hành động từ View
Đại diện cho dữ liệu của ứng dụng và logic nghiệp vụ liên quan đến dữ liệu
Hiển thị giao diện người dùng và nhận tương tác từ người dùng
Quản lý kết nối mạng và truy cập cơ sở dữ liệu
Chọn đáp án B
Quá trình ‘debugging’ trong phát triển ứng dụng di động đề cập đến hoạt động nào?
Tìm kiếm, xác định và sửa chữa các lỗi (bugs) trong mã nguồn ứng dụng
Thiết kế giao diện người dùng và trải nghiệm người dùng
Tối ưu hóa hiệu suất và tốc độ tải của ứng dụng
Phân tích hành vi và thu thập phản hồi từ người dùng
Chọn đáp án B
Tại sao việc tối ưu hóa hiệu suất (performance optimization) lại quan trọng trong phát triển ứng dụng di động?
Để đảm bảo ứng dụng phản hồi nhanh, sử dụng ít tài nguyên (pin, bộ nhớ) và mang lại trải nghiệm người dùng tốt
Để giảm kích thước tệp tin cài đặt ứng dụng xuống mức tối thiểu
Để tăng khả năng tương thích với các phiên bản hệ điều hành cũ
Để đơn giản hóa quy trình debug và bảo trì ứng dụng
Chọn đáp án B
Trong iOS, ‘Delegate Pattern’ là một mẫu thiết kế quan trọng. Vai trò của Delegate trong mẫu này là gì?
Cho phép một đối tượng ủy thác trách nhiệm xử lý một sự kiện hoặc nhiệm vụ cho một đối tượng khác
Quản lý vòng đời của ứng dụng
Định nghĩa cấu trúc dữ liệu
Truyền dữ liệu giữa các màn hình
Chọn đáp án B
Trong Android, lớp (class) nào chịu trách nhiệm quản lý giao diện người dùng và vòng đời của một màn hình?
Activity
Service
BroadcastReceiver
ContentProvider
Chọn đáp án B
Thành phần nào của iOS cho phép bạn quản lý các đối tượng giao diện người dùng (UI Elements) và các sự kiện tương tác của người dùng?
UIViewController
AppDelegate
NSObject
UIApplication
Chọn đáp án B
Ưu điểm của việc sử dụng thư viện (libraries) hoặc framework trong phát triển ứng dụng di động là gì?
Tăng tốc độ phát triển, giảm thiểu mã lặp lại và tận dụng các giải pháp đã được kiểm chứng
Đảm bảo ứng dụng chỉ chạy trên một hệ điều hành duy nhất
Yêu cầu ít kiến thức chuyên môn hơn từ nhà phát triển
Giảm đáng kể chi phí bản quyền phần mềm.Phần mềm
Chọn đáp án B
Trong iOS, ‘Core Data’ là một framework dùng để làm gì?
Quản lý vòng đời của các đối tượng và lưu trữ dữ liệu một cách bền vững trên thiết bị
Xử lý các yêu cầu mạng
Thiết kế giao diện người dùng
Tạo hoạt ảnh (animations) cho ứng dụng
Chọn đáp án B
API (Application Programming Interface) trong phát triển ứng dụng di động có chức năng cơ bản là gì?
Cung cấp một bộ quy tắc và định nghĩa để các phần mềm khác nhau có thể tương tác và trao đổi dữ liệu với nhau
Xác định cấu trúc và bố cục của giao diện người dùng
Quản lý vòng đời của ứng dụng và các thành phần của nó
Tối ưu hóa việc sử dụng bộ nhớ và CPU của thiết bị
Chọn đáp án B








