PRM392Chưa đoKỳ 7Chuyên ngành Cập nhật 24/07/2026
Mobile Programming - Lập trình di động
271Câu hỏi
9Chủ đề
Câu hỏi của môn
104/271 câuCòn 167
85What does MVP stand for?4 lựa chọn
AModel - View - Presentation
BModern - View - Presentation
CModel - View - Presenter
DModern- View - Presenter
Lời giải
Mở trang câu hỏi này →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 đó.
A
query()B
execSQL()C
rawQuery()D
doQuery()Lời giải
Mở trang câu hỏi này →Để trả lời câu hỏi này, chúng ta cần hiểu về các phương thức khác nhau trong SQLite. Phương thức query() thường được sử dụng để thực hiện các truy vấn SQL và trả về kết quả dữ liệu. Phương thức rawQuery() cũng được sử dụng để thực hiện các truy vấn SQL nhưng nó không hỗ trợ các tham số được đặt tên. Phương thức doQuery() không phải là một phương thức thực sự trong SQLite, có thể nó là một phương thức được sử dụng trong một thư viện hoặc framework cụ thể. Phương thức execSQL() là phương thức được sử dụng để thực hiện một câu lệnh SQL không trả về kết quả dữ liệu. Ví dụ, khi bạn muốn tạo một bảng mới, thêm hoặc xóa dữ liệu, bạn sẽ sử dụng phương thức execSQL().
A
Theme.AppCompat.LightB
Theme.AppCompat.Dark.NoActionBarC
Theme.AppCompat.Light.DarkActionBarD
Theme.AppCompat.NoActionBarLời giải
Mở trang câu hỏi này →Để tạo một ứng dụng có nền trắng, văn bản màu tối và thanh tác vụ màu tối, bạn cần kế thừa từ một kiểu cơ bản nào đó. Kiểu cơ bản này sẽ cung cấp các thuộc tính cơ bản cho ứng dụng của bạn. Trong trường hợp này, bạn muốn nền trắng và văn bản màu tối, vì vậy bạn cần kế thừa từ kiểu có nền sáng. Tuy nhiên, bạn cũng muốn thanh tác vụ màu tối, vì vậy kiểu này không phải là kiểu có nền sáng và thanh tác vụ sáng. Vì vậy, kiểu phù hợp nhất cho ứng dụng của bạn là Theme.AppCompat.Light.DarkActionBar. Đây là kiểu có nền sáng và thanh tác vụ màu tối.
AIcon that represents the action
BTitle that describes the action
CAction button
DPendingIntent that's sent when the user taps the action button.
Lời giải
Mở trang câu hỏi này →Trong Android, khi người dùng nhấn vào một thông báo, hệ thống sẽ mở một hoạt động (Activity) cụ thể. Để thực hiện điều này, hệ thống sử dụng một thành phần gọi là PendingIntent. PendingIntent là một đối tượng được gửi khi người dùng nhấn vào nút hành động (action button) trong thông báo. Nó chứa thông tin về hoạt động cần mở và các thông tin khác cần thiết để mở hoạt động đó. Khi người dùng nhấn vào thông báo, hệ thống sẽ nhận được PendingIntent và sử dụng nó để mở hoạt động cần thiết. Vì vậy, thành phần được sử dụng để mở hoạt động khi người dùng nhấn vào thông báo là PendingIntent.
AThe base URI for the web service and a GET query
BThe base URI for the web service and a converter factory
CA network connection to the web service and an authorization token
DA converter factory and a parser for the response
Lời giải
Mở trang câu hỏi này →Để xây dựng một API web dịch vụ bằng Retrofit, có hai yếu tố quan trọng cần có. Thứ nhất, bạn cần cung cấp URI cơ bản cho dịch vụ web. Điều này giúp Retrofit biết cách kết nối và truy cập vào dịch vụ web. Thứ hai, bạn cần cung cấp một factory chuyển đổi (converter factory). Factory chuyển đổi giúp Retrofit chuyển đổi dữ liệu từ định dạng JSON sang các đối tượng Java, và ngược lại. Điều này cho phép bạn dễ dàng sử dụng dữ liệu từ API web trong ứng dụng của mình. Bằng cách cung cấp URI cơ bản và factory chuyển đổi, bạn có thể xây dựng một API web dịch vụ mạnh mẽ và dễ sử dụng bằng Retrofit.
A
VISIBLEB
GONEC
CLEARD
INVISIBLELời giải
Mở trang câu hỏi này →Để ẩn hoặc hiển thị một view trong ứng dụng của bạn, bạn có thể sử dụng thuộc tính visibility. Các giá trị có thể được sử dụng cho thuộc tính này bao gồm VISIBLE, GONE và INVISIBLE. VISIBLE dùng để hiển thị view, GONE dùng để ẩn view và INVISIBLE dùng để ẩn view nhưng vẫn chiếm chỗ trong layout. CLEAR không phải là một giá trị hợp lệ cho thuộc tính visibility.
AA fragment has its own lifecycle and receives its own input events.
BIt is not possible to remove a fragment while the activity is running.
CA fragment is defined in a Kotlin class.
DA fragment's UI is defined in an XML layout file.
Lời giải
Mở trang câu hỏi này →Các câu trả lời đúng về các fragment bao gồm: Một fragment có lifecycle riêng và nhận được các sự kiện nhập vào riêng, Một fragment được định nghĩa trong một lớp Kotlin, Và giao diện người dùng của một fragment được định nghĩa trong một tệp layout XML. Tuy nhiên, câu trả lời sai là: Một fragment có lifecycle riêng và nhận được các sự kiện nhập vào riêng. Điều này không đúng vì các fragment không có lifecycle riêng biệt như các hoạt động, mà chúng phải phụ thuộc vào lifecycle của hoạt động chứa nó. Ngoài ra, các fragment cũng không nhận được các sự kiện nhập vào riêng biệt như các hoạt động.
AonSaveInstanceState() is called before the onStop() method.
BonSaveInstanceState() is called before the onResume() method.
ConSaveInstanceState() is called before the onCreate() method.
DonSaveInstanceState() is called before the onDestroy() method.
Lời giải
Mở trang câu hỏi này →onSaveInstanceState() được gọi trong Activity lifecycle khi ứng dụng đang thay đổi trạng thái, chẳng hạn như khi người dùng chuyển sang màn hình khác hoặc khi ứng dụng bị tạm dừng. Điều này xảy ra trước khi onStop() được gọi, vì onSaveInstanceState() được sử dụng để lưu trữ trạng thái của ứng dụng trước khi nó bị hủy bỏ. Điều này giúp ứng dụng có thể phục hồi trạng thái trước đó khi nó được khởi tạo lại. Vì vậy, onSaveInstanceState() được gọi trước onStop() để đảm bảo rằng trạng thái của ứng dụng được lưu trữ trước khi ứng dụng bị hủy bỏ.
Aapp_name
Bxmlns:app
Candroid:name
DapplicationId
Lời giải
Mở trang câu hỏi này →Để xác định tên của ứng dụng, bạn cần sử dụng một tài nguyên chuỗi (string resource) có tên là 'app_name'. Đây là một phần quan trọng trong quá trình thiết kế và phát triển ứng dụng Android. Khi bạn tạo một ứng dụng mới, hệ thống sẽ tự động tạo một tài nguyên chuỗi có tên là 'app_name' để lưu trữ tên của ứng dụng. Bạn có thể thay đổi tên này trong tệp 'strings.xml' của dự án. Tên của ứng dụng sẽ được hiển thị trên màn hình chính của thiết bị khi người dùng cài đặt ứng dụng. Vì vậy, việc chọn một tên phù hợp và hấp dẫn là rất quan trọng để thu hút người dùng.
94Which constructor method do you use to create an implicit Intent to launch a camera app?4 lựa chọn
Anew Intent()
Bnew Intent(Context context, Class<?> class)
Cnew Intent(String action, Uri uri)
Dnew Intent(String action)
Lời giải
Mở trang câu hỏi này →Để tạo một Intent ngầm định để mở ứng dụng camera, bạn cần sử dụng phương thức constructor "new Intent(String action)". Phương thức này yêu cầu bạn cung cấp một hành động (action) cụ thể, trong trường hợp này là hành động mở ứng dụng camera. Hành động này thường được định nghĩa bởi hệ điều hành hoặc các ứng dụng khác. Ví dụ, để mở ứng dụng camera, bạn có thể sử dụng hành động "android.media.action.IMAGE_CAPTURE". Phương thức constructor này cho phép bạn tạo một Intent ngầm định mà không cần cung cấp thông tin về ứng dụng cụ thể mà bạn muốn mở.
95What is contained within the manifest xml file?4 lựa chọn
AThe permissions the app require
BThe list of strings used in the app
CThe source code
DLayout
Lời giải
Mở trang câu hỏi này →Văn bản XML chứa thông tin về ứng dụng, bao gồm các quyền cần thiết để chạy ứng dụng. Trong đó, các quyền này được liệt kê rõ ràng để người dùng hiểu ứng dụng cần những quyền nào để hoạt động bình thường. Ví dụ, một ứng dụng cần quyền truy cập vào camera, microphone, hoặc lưu trữ để thực hiện các chức năng tương ứng. Ngoài ra, manifest XML cũng chứa thông tin về tên, mô tả, và logo của ứng dụng. Tất cả những thông tin này đều được sử dụng để giới thiệu ứng dụng và giúp người dùng hiểu rõ hơn về ứng dụng trước khi cài đặt.
96What is the purpose of Data access object (DAO)?4 lựa chọn
Aprovides the methods that the rest of the app uses to interact with UI in the activity.
Bprovides the methods that the rest of the app uses to interact with sharedpreferences.
Cprovides the methods that the rest of the app uses to interact with data in reference table.
DNone of the others.
Lời giải
Mở trang câu hỏi này →Mục đích của lớp Data Access Object (DAO) là cung cấp các phương thức cho phần còn lại của ứng dụng để tương tác với dữ liệu trong bảng tham chiếu. DAO giúp tách biệt logic truy vấn dữ liệu khỏi phần còn lại của ứng dụng, làm cho mã nguồn trở nên dễ đọc, dễ bảo trì và dễ mở rộng. Nó cũng giúp giảm thiểu sự phụ thuộc vào cơ sở dữ liệu và tăng cường tính bảo mật. DAO thường được sử dụng trong các ứng dụng lớn hoặc phức tạp, nơi mà dữ liệu được lưu trữ trong nhiều bảng và cần được truy xuất một cách linh hoạt.
97Which of the following are UI elements that you can use in a window in an Android application?4 lựa chọn
A
TextBoxB
TextViewC
EditTextD
LabelViewLời giải
Mở trang câu hỏi này →Tóm lại, TextView và EditText là hai thành phần UI phổ biến được sử dụng trong một cửa sổ của ứng dụng Android.
AImplicit intent
BExplicit intent
CService intent
DComponent
Lời giải
Mở trang câu hỏi này →Trong các lựa chọn trên, gửi tin (sender) chỉ định loại nhận tin (type of receiver) ở đâu? Câu trả lời đúng là Explicit intent. Explicit intent là một cách thức trong đó sender có thể chỉ định rõ ràng loại hoạt động mà receiver sẽ thực hiện. Điều này được thực hiện thông qua việc sử dụng các hành động (actions) và các loại dữ liệu (data types) cụ thể. Ví dụ, sender có thể chỉ định rằng receiver cần phải xử lý một file ảnh (image file) hoặc một file văn bản (text file). Điều này giúp cho việc giao tiếp giữa sender và receiver trở nên rõ ràng và hiệu quả hơn.
ALayout file
BStrings XML
CR file
DManifest file
Lời giải
Mở trang câu hỏi này →Tệp tin nào chịu trách nhiệm liên kết mọi thứ lại với nhau, giải thích ứng dụng bao gồm những gì và các khối xây dựng chính của nó?
100Which one of the following is the output of the above code?4 lựa chọncó code
private static int DoComputation(int start){
int sum = 0;
for (var value = 1; value <= start; value++){
sum += value;
}
return sum;
}
public static void Main(){
int sum = 0;
Task<int>[] taskArray = {
Task<int>.Factory.StartNew(() => DoComputation(3)), Task<int>.Factory.StartNew(() => DoComputation(4))
}
;
for (int i = 0; i < taskArray.Length; i++){
sum += taskArray[i].Result;
}
Console.WriteLine($"{sum}");
Console.ReadLine();
}A16
B6
C10
DResults are unpredictable
Lời giải
Mở trang câu hỏi này →Mã nguồn trên sử dụng kỹ thuật đa luồng để thực hiện tính toán. Hàm DoComputation tính tổng các số từ 1 đến một số nhập vào. Trong hàm Main, chúng ta tạo 2 nhiệm vụ (task) thực hiện tính toán cho 2 số khác nhau là 3 và 4. Sau đó, chúng ta chờ các nhiệm vụ hoàn thành và cộng kết quả lại với nhau. Kết quả cuối cùng được in ra màn hình.
101What's the most important difference between checkboxes and a RadioGroup of radio buttons?4 lựa chọn
AThe only difference is in how they appear: checkboxes show a checkmark when selected, while circular "radio" buttons appear filled when selected.
BCheckBox elements in the layout can use the android:onClick attribute to call a handler when selected.
CThe major difference is that checkboxes enable multiple selections, while a RadioGroup allows only one selection.
DNone of the others
Lời giải
Mở trang câu hỏi này →Checkbox và RadioGroup là hai loại đối tượng chọn lựa khác nhau trong thiết kế giao diện người dùng. Checkbox cho phép người dùng chọn nhiều lựa chọn trong khi RadioGroup chỉ cho phép chọn một lựa chọn duy nhất. Điều này là do Checkbox được thiết kế để chọn hoặc bỏ chọn một lựa chọn trong khi RadioGroup được thiết kế để chọn một trong nhiều lựa chọn. Ví dụ, khi bạn muốn người dùng chọn một trong nhiều màu sắc yêu thích, bạn nên sử dụng RadioGroup. Ngược lại, khi bạn muốn người dùng chọn nhiều màu sắc yêu thích, bạn nên sử dụng Checkbox. Tóm lại, sự khác biệt chính giữa Checkbox và RadioGroup là Checkbox cho phép chọn nhiều lựa chọn trong khi RadioGroup chỉ cho phép chọn một lựa chọn duy nhất.
102How do you add images to an Android Studio project?4 lựa chọn
ADrag each image to the layout editor.
BCopy the image files into your project's drawable folder.
CDrag an ImageButton to the layout editor
DChoose New > Image Asset and then choose the image file.
Lời giải
Mở trang câu hỏi này →Để thêm hình ảnh vào dự án Android Studio, bạn cần thực hiện các bước sau. Đầu tiên, hãy chọn hình ảnh mà bạn muốn thêm vào dự án. Sau đó, hãy sao chép hình ảnh vào thư mục drawable của dự án. Thư mục drawable là nơi lưu trữ các hình ảnh được sử dụng trong dự án. Khi bạn sao chép hình ảnh vào thư mục này, nó sẽ được tự động thêm vào dự án của bạn. Bạn có thể sử dụng hình ảnh này trong các hoạt động như thiết kế giao diện người dùng, tạo biểu tượng ứng dụng, v.v. Ngoài ra, bạn cũng có thể sử dụng các công cụ khác như New > Image Asset để thêm hình ảnh vào dự án.
Ahash map
Bkey-value pair
Cbuilt in database
DB-Tree
Lời giải
Mở trang câu hỏi này →Shared Preferences trong Android sử dụng một cấu trúc dữ liệu để lưu trữ dữ liệu. Cấu trúc này là một cặp khóa-giá trị (key-value pair), nơi mỗi khóa (key) được liên kết với một giá trị (value) cụ thể. Điều này cho phép bạn lưu trữ và lấy lại dữ liệu một cách dễ dàng và hiệu quả. Khi bạn lưu trữ dữ liệu vào Shared Preferences, nó sẽ được chuyển đổi thành một chuỗi JSON và được lưu trữ trong một tệp tin trên thiết bị. Khi bạn muốn lấy lại dữ liệu, bạn có thể sử dụng khóa (key) để truy cập vào giá trị (value) tương ứng. Cấu trúc cặp khóa-giá trị này là một trong những lý do khiến Shared Preferences trở thành một công cụ phổ biến trong việc lưu trữ dữ liệu trong ứng dụng Android.
AIt is a component that provides a screen within which users can interact in order to do something
BIt expresses requests as intents & passes them between threads and/or processes
CIt's a framework that handles asynchronous requests on demand
DIt is an event handler that responds to system-side broadcast announcement
Lời giải
Mở trang câu hỏi này →IntentService là một thành phần trong Android giúp thực hiện các yêu cầu nền (background task) một cách không đồng bộ (asynchronous). Nó thực hiện các yêu cầu này một cách độc lập và không cần phải chờ đợi kết quả. IntentService sử dụng các intent để thực hiện các yêu cầu này và có thể chạy trong nền mà không ảnh hưởng đến giao diện người dùng (UI). Nó cũng có thể được sử dụng để thực hiện các tác vụ lặp đi lặp lại như cập nhật dữ liệu từ mạng hoặc thực hiện các tác vụ khác mà không cần phải chờ đợi người dùng.