Ngân hàng câu hỏi môn Mobile Programming - Lập trình di động

Ôn luyện PRM392 – Lập trình di động (Mobile Programming) với ngân hàng câu hỏi trắc nghiệm Android có đáp án và giải thích chi tiết, luyện thi cuối kỳ hiệu quả. Nội dung bao quát Activity, Fragment, RecyclerView, Intent, Service, BroadcastReceiver, lưu trữ SharedPreferences/SQLite và gọi API/Retrofit. Môn 3 tín chỉ tại FPT University, tiên quyết PRO192, lập trình bằng Java trên Android Studio.

Học từ ngân hàng câu hỏi

Bắt đầu một phiên học theo môn

Tiến độ của bạn sẽ luôn được tính toán và đồng bộ trực tiếp theo tổng số lượng câu hỏi mới nhất của môn học này.

271Ngân hàng hiện tại
--Tiến độ môn
Số câu hỏi
Độ khó
Phiên sắp tạo
271 câu Chế độ học Không giới hạn Trộn

Bạn cần đăng nhập để bắt đầu học từ ngân hàng câu hỏi và lưu tiến độ theo môn.

0Dễ · --
0Trung bình · --
0Khó · --
--Đã học
--Đang nắm chắc
Đăng nhập để xemLần hoàn tất gần nhất

Đang tải phân bố độ khó.

Đăng nhập để bắt đầu học từ ngân hàng câu hỏi, lưu tiến độ theo môn, resume phiên đang dở và cập nhật thống kê dài hạn.
Đang hiển thị 15 / 271 câu hỏi
Bấm vào từng câu để xem đáp án
#001
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Aandroid.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGEĐÚNG
Candroid.permission.CAMERA
Dandroid.permission.SEND_SMS
Giải thích

Để một ứng dụng Android có thể ghi vào bộ nhớ ngoài, ứng dụng đó cần có quyền truy cập vào bộ nhớ ngoài. Trong danh sách các quyền được liệt kê, quyền "android.permission.WRITE_EXTERNAL_STORAGE" là quyền cho phép ứng dụng ghi vào bộ nhớ ngoài. Điều này có nghĩa là ứng dụng có thể lưu trữ dữ liệu của mình vào bộ nhớ ngoài, chẳng hạn như bộ nhớ đệm, thẻ nhớ hoặc bộ nhớ USB. Quyền này rất quan trọng vì nó cho phép ứng dụng lưu trữ dữ liệu lớn và truy cập vào bộ nhớ ngoài một cách dễ dàng. Tuy nhiên, quyền này cũng có thể gây ra vấn đề bảo mật nếu không được sử dụng một cách cẩn thận.

#002
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AViewModel
ActivityĐÚNG
CService
DBroadcastReceiver
Giải thích

Trong mô hình MVC (Model-View-Controller), Controller đóng vai trò là lớp trung gian giữa Model và View, chịu trách nhiệm xử lý các yêu cầu từ View và cập nhật Model. Trong Android, lớp tương tự như Controller là Activity. Activity là lớp chính của ứng dụng Android, chịu trách nhiệm quản lý vòng đời của ứng dụng, xử lý các sự kiện và cập nhật giao diện người dùng. Activity cũng có thể tương tác với các lớp khác như Service, BroadcastReceiver và ViewModel để thực hiện các tác vụ phức tạp hơn.

#003
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
shared preferencesĐÚNG
internal storageĐÚNG
Cexternal storage
DSd card
Giải thích

Trong lập trình di động, việc lưu trữ dữ liệu là một phần quan trọng. Có nhiều cách lưu trữ dữ liệu khác nhau, bao gồm Shared Preferences, Internal Storage, External Storage và SD Card. Tuy nhiên, không phải tất cả các cách lưu trữ đều cần có sự cho phép của người dùng. Cụ thể, Shared Preferences và Internal Storage không cần có sự cho phép của người dùng để lưu trữ dữ liệu. Shared Preferences là một cơ sở dữ liệu nhỏ gọn được sử dụng để lưu trữ các giá trị nhỏ như chuỗi, số nguyên, v.v. Internal Storage là bộ nhớ trong của thiết bị di động, nơi mà ứng dụng có thể lưu trữ dữ liệu của mình mà không cần có sự cho phép của người dùng. Điều này giúp ứng dụng có thể lưu trữ dữ liệu một cách nhanh chóng và dễ dàng mà không cần phải hỏi ý kiến của người dùng.

#004
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ViewĐÚNG
BModel
CController
DPresenter
Giải thích

Trong kiến trúc MVC, logic kinh doanh nên được xử lý ở đâu? Để trả lời câu hỏi này, chúng ta cần hiểu rõ chức năng của từng thành phần trong kiến trúc MVC. View (Trình bày) chịu trách nhiệm hiển thị dữ liệu, Model (Mô hình) chịu trách nhiệm lưu trữ và xử lý dữ liệu, Controller (Quản lý) chịu trách nhiệm điều hướng và xử lý logic kinh doanh, còn Presenter (Trình bày viên) là một thành phần bổ sung trong kiến trúc MVP (Model-View-Presenter), có chức năng tương tự như Controller trong kiến trúc MVC. Tuy nhiên, trong kiến trúc MVC, logic kinh doanh nên được xử lý ở Controller, vì Controller là thành phần chịu trách nhiệm điều hướng và xử lý logic kinh doanh. Vì vậy, phương pháp nên tránh khi xử lý logic kinh doanh trong kiến trúc MVC là View.

#005
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AStorage
PermissionĐÚNG
CDatabase
DBroadcastReceiver
Giải thích

Từ Android 6.0 trở lên, hệ điều hành đã thay đổi cách quản lý quyền truy cập (permission) của ứng dụng. Trước đây, ứng dụng có thể yêu cầu quyền truy cập mà không cần sự cho phép của người dùng. Tuy nhiên, từ Android 6.0, người dùng phải cho phép ứng dụng truy cập vào các quyền cụ thể. Điều này giúp tăng cường bảo mật và quyền riêng tư cho người dùng. Ngoài ra, ứng dụng cũng phải khai báo rõ ràng các quyền mà nó cần để hoạt động. Vì vậy, từ Android 6.0, component quản lý quyền truy cập (Permission) đã thay đổi đáng kể.

#006
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
RoomĐÚNG
BViewModel
CData
DNavigation
Giải thích

Các thư viện Jetpack có thể được sử dụng trong lớp dữ liệu là những thư viện giúp chúng ta quản lý dữ liệu một cách hiệu quả. Trong số các lựa chọn trên, Room là một thư viện quan trọng trong lớp dữ liệu. Room giúp chúng ta tạo ra cơ sở dữ liệu địa phương trên thiết bị di động và thực hiện các truy vấn cơ sở dữ liệu một cách hiệu quả. Ngoài ra, Room cũng hỗ trợ các tính năng như lưu trữ dữ liệu, truy vấn dữ liệu và cập nhật dữ liệu một cách tự động. Vì vậy, Room là một lựa chọn tốt cho lớp dữ liệu.

#007
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ARequest the permission.
BDesign your app UX to be self-explanatory.
Declare the permission in your app's manifest file.ĐÚNG
DWait for the user to request a specific action.
Giải thích

Bước đầu tiên trong quy trình xử lý quyền cho ứng dụng Android là gì? Để bắt đầu, bạn cần khai báo quyền trong tệp manifest.xml của ứng dụng. Tệp này chứa thông tin cơ bản về ứng dụng, bao gồm quyền cần thiết. Khi khai báo quyền, bạn cần chỉ định quyền đó có thể được sử dụng ở cấp độ nào: cấp độ ứng dụng (app), cấp độ hoạt động (activity) hoặc cấp độ dịch vụ (service). Sau khi khai báo quyền, bạn có thể yêu cầu quyền này khi ứng dụng được chạy.

#008
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo allow the app to access the device's camera.
To enable the app to make network calls.ĐÚNG
CTo permit the app to read user contacts.
DTo allow the app to access the device's location.
Giải thích

Mục đích của việc thêm android.permission.INTERNET vào file AndroidManifest.xml là để cho phép ứng dụng của bạn truy cập internet và thực hiện các yêu cầu mạng. Điều này cho phép ứng dụng của bạn gửi yêu cầu đến các dịch vụ mạng, tải dữ liệu từ internet và thực hiện các hoạt động mạng khác. Nếu bạn không thêm quyền truy cập internet vào file AndroidManifest.xml, ứng dụng của bạn sẽ không thể thực hiện các yêu cầu mạng và sẽ không thể hoạt động đúng cách. Vì vậy, việc thêm android.permission.INTERNET vào file AndroidManifest.xml là rất quan trọng để đảm bảo ứng dụng của bạn có thể truy cập internet và thực hiện các yêu cầu mạng một cách hiệu quả.

#009
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
shouldShowRequestPermissionRationale()ĐÚNG
BisPermissionGranted()
CPermissionDenied()
DisPermissionGrantedByUser()
Giải thích

Để kiểm tra xem người dùng đã từ chối yêu cầu cấp quyền trước đó hay chưa, bạn cần gọi đến phương thức shouldShowRequestPermissionRationale() của lớp ActivityCompat. Phương thức này sẽ trả về kết quả là true nếu người dùng đã từ chối yêu cầu cấp quyền trước đó, và false nếu yêu cầu cấp quyền chưa được thực hiện. Điều này giúp bạn có thể đưa ra quyết định về cách tiếp cận khi yêu cầu cấp quyền. Ví dụ, nếu người dùng đã từ chối yêu cầu cấp quyền trước đó, bạn có thể hiển thị thông báo giải thích tại sao bạn cần quyền đó, hoặc đưa ra lựa chọn khác để người dùng có thể cấp quyền.

#010
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo test network connectivity
BTo measure battery usage
To simulate and verify user interface interactions within a single appĐÚNG
DTo build app APKs
Giải thích

Câu hỏi này hỏi về mục đích chính của framework kiểm thử Espresso. Framework này được sử dụng để mô phỏng và xác minh các tương tác giao diện người dùng (UI) trong một ứng dụng duy nhất. Điều này giúp các nhà phát triển kiểm thử và đảm bảo rằng ứng dụng của họ hoạt động đúng cách và đáp ứng được các yêu cầu của người dùng. Trong quá trình kiểm thử, Espresso cho phép các nhà phát triển mô phỏng các hành động của người dùng, chẳng hạn như nhấp vào các nút, nhập văn bản vào các trường và kiểm tra các kết quả. Điều này giúp các nhà phát triển xác định và sửa lỗi sớm, từ đó cải thiện chất lượng của ứng dụng.

#011
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AModel - View - Presentation
BModern - View - Presentation
Model - View - PresenterĐÚNG
DModern- View - Presenter
Giải thích

MVP là một mô hình thiết kế lập trình hướng đối tượng (OOP) được sử dụng rộng rãi trong lập trình web và di động. Nó được giới thiệu lần đầu tiên bởi Martin Fowler và được sử dụng để tách biệt logic kinh doanh khỏi giao diện người dùng. Trong MVP, có ba thành phần chính: Model (đại diện cho dữ liệu và logic kinh doanh), View (đại diện cho giao diện người dùng) và Presenter (đại diện cho logic kinh doanh và giao tiếp giữa Model và View). Presenter chịu trách nhiệm lấy dữ liệu từ Model và hiển thị nó lên View, đồng thời cũng chịu trách nhiệm xử lý các sự kiện từ View và cập nhật Model theo đó.

#012
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
MVP allows for easier unit testing by decoupling the View and the Model through the PresenterĐÚNG
BMVP is officially recommended by Google
CMVP supports asynchronous data loading natively
DMVP is simpler and requires less code
Giải thích

MVP (Model-View-Presenter) có thể được ưa chuộng hơn so với MVC (Model-View-Controller) trong phát triển Android vì một số lý do. Trước hết, MVP cho phép đơn vị kiểm tra dễ dàng hơn bằng cách tách rời View và Model thông qua Presenter. Điều này giúp giảm thiểu sự phụ thuộc giữa các lớp và tăng cường tính linh hoạt trong việc thay đổi hoặc sửa đổi mã. Ngoài ra, MVP cũng hỗ trợ tải dữ liệu bất đồng bộ một cách tự nhiên, giúp ứng dụng trở nên mượt mà và hiệu quả hơn. Tuy nhiên, không phải tất cả các lý do đều đúng. MVP không phải là cách được Google khuyến nghị chính thức và nó không đơn giản hơn so với MVC. Vì vậy, đáp án đúng là: MVP cho phép đơn vị kiểm tra dễ dàng hơn bằng cách tách rời View và Model thông qua Presenter.

#013
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AppCompatĐÚNG
BRecycler
CRetrofit
DConstraintLayout
Giải thích

Thư viện hỗ trợ AppCompat cung cấp các phiên bản tương thích ngược của các yếu tố UI. Điều này có nghĩa là bạn có thể sử dụng các yếu tố UI này trong các ứng dụng Android cũ mà không cần phải lo lắng về việc chúng không tương thích. AppCompat cung cấp các phiên bản tương thích của các yếu tố UI như Button, TextView, EditText, v.v. Điều này giúp đảm bảo rằng ứng dụng của bạn vẫn hoạt động bình thường ngay cả khi bạn sử dụng các phiên bản cũ của Android. Ngoài ra, AppCompat cũng cung cấp các tính năng khác như hỗ trợ cho các loại font, hỗ trợ cho các loại hình ảnh, v.v. Tóm lại, AppCompat là một thư viện hỗ trợ quan trọng cho các nhà phát triển Android, giúp họ tạo ra các ứng dụng tương thích ngược và dễ dàng sử dụng.

#014
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
In MVC, the Controller updates the View directly, while in MVP, the View is updated through the Presenter using interfaces.ĐÚNG
BMVC does not support user input directly, while MVP is designed to handle user input through the Presenter.
CIn MVC, the Model updates the View directly, while in MVP, the Model updates the View through the Presenter.
DMVC is used exclusively for web applications, while MVP is used for both web and mobile applications.
Giải thích

MVC (Model-View-Controller) và MVP (Model-View-Presenter) là hai mô hình kiến trúc phổ biến trong lập trình. Mô hình MVC thường được sử dụng trong các ứng dụng web, trong đó Controller cập nhật View trực tiếp. Ngược lại, mô hình MVP sử dụng Presenter để cập nhật View thông qua các giao diện. Điều này giúp tách biệt logic kinh doanh và giao diện người dùng, tạo điều kiện thuận lợi cho việc bảo trì và mở rộng ứng dụng. Trong khi đó, MVP được thiết kế để hỗ trợ xử lý đầu vào từ người dùng thông qua Presenter, giúp tăng cường khả năng tương tác của ứng dụng.

#015
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Add a <uses-permission> tag as a child tag of the <manifest> tag in AndroidManifest.xmlĐÚNG
BAdd a <add-permission> tag as a child tag of the <manifest> tag in AndroidManifest.xml.
CAdd a <uses-permission> tag as a child tag of the <application> tag in AndroidManifest.xml.
DAdd a <permission> tag as a child tag of the <application> tag in AndroidManifest.xml
Giải thích

Để thêm quyền truy cập vào ứng dụng của bạn, bạn cần thêm thẻ <uses-permission> như một thẻ con của thẻ <manifest> trong AndroidManifest.xml. Điều này cho phép ứng dụng của bạn truy cập các quyền hệ thống cần thiết để hoạt động. Ví dụ, nếu ứng dụng của bạn cần truy cập camera, bạn cần thêm thẻ <uses-permission android:name="android.permission.CAMERA"/> như một thẻ con của thẻ <manifest>. Điều này giúp bảo đảm rằng ứng dụng của bạn không vi phạm các quy định bảo mật và quyền riêng tư của người dùng.

Cuộn để tải thêm…