Ngân hàng câu hỏi của chương

Câu hỏi: PRM392 - Chương 8: Mạng, Retrofit và Google Maps

28 câu trắc nghiệm kèm lời giải của môn Mobile Programming - Lập trình di động, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/28 câuCòn 8
AAppend the query to the end of the request URL.
BAdd a parameter for the query to the function that makes the request and annotate the parameter with @Query.
CUse the Query class to build a request.
DUse the addQuery() method in the Retrofit builder.
Lời giải

Để thêm một tùy chọn truy vấn vào một cuộc gọi REST web-service bằng Retrofit, bạn cần sử dụng annotation @Query. Annotation này cho phép bạn thêm một hoặc nhiều tham số vào URL của cuộc gọi. Bạn cần thêm tham số vào hàm tạo request và đánh dấu tham số đó với @Query. Ví dụ, nếu bạn muốn thêm tham số 'page' và 'limit' vào URL, bạn có thể sử dụng code như sau: @GET("users")

Lời giải
Call<List<User>> getUsers(@Query("page") int page, @Query("limit") int limit);

Trong ví dụ trên, tham số 'page' và 'limit' sẽ được thêm vào URL như sau: https://example.com/users?page=1&limit=10. Ngoài ra, bạn cũng có thể thêm tham số mặc định bằng cách sử dụng tham số thứ hai trong annotation @Query. Ví dụ: @GET("users")

Lời giải
Call<List<User>> getUsers(@Query("page") int page, @Query("limit") int limit = 10);

Trong ví dụ trên, tham số 'limit' sẽ có giá trị mặc định là 10 nếu không được cung cấp.

Mở trang câu hỏi này →
Aandroid.permission.ACCESS_FINE_LOCATION
Bandroid.permission.ACCESS_COARSE_LOCATION
Candroid.permission.ACCESS_LOCATION
Dandroid.permission. INTERNET
Lời giải
Để theo dõi vị trí chính xác của điện thoại, ứng dụng Android cần sử dụng quyền truy cập vị trí chính xác. Quyền này cho phép ứng dụng truy cập vào vị trí hiện tại của thiết bị, bao gồm cả thông tin về độ chính xác cao. Điều này thường được sử dụng trong các ứng dụng như bản đồ, định vị, và các ứng dụng cần biết vị trí chính xác của người dùng. Quyền truy cập vị trí chính xác được biểu thị bởi android.permission.ACCESS_FINE_LOCATION.
Mở trang câu hỏi này →
AonMapReady(GoogleMap)
BonMapLoaded(GoogleMap)
ConMapCreate(GoogleMap)
DonMapInitialize(GoogleMap)
Lời giải
Khi bạn muốn sử dụng bản đồ trong ứng dụng, bạn cần gọi một phương thức đặc biệt để kiểm tra xem bản đồ đã sẵn sàng chưa. Phương thức này được gọi khi bản đồ được tải và sẵn sàng để sử dụng. Trong Google Maps, phương thức này được gọi là "onMapReady(GoogleMap)". Nó được sử dụng để xác định khi bản đồ đã được tải và sẵn sàng để sử dụng, giúp bạn có thể thêm các tính năng và chức năng vào bản đồ. Phương thức này được gọi một lần khi bản đồ được tải và sẵn sàng, giúp bạn có thể thực hiện các hành động cần thiết để sử dụng bản đồ.
Mở trang câu hỏi này →
AsetMarker
BaddMarker
Csetpoint
DaddPoint
Lời giải

Để thêm một dấu hiệu (marker) vào bản đồ Google, chúng ta cần sử dụng phương pháp phù hợp. Trong các lựa chọn trên, phương pháp được sử dụng phổ biến nhất là "addMarker". Phương pháp này cho phép chúng ta thêm một dấu hiệu vào vị trí cụ thể trên bản đồ Google. Để sử dụng phương pháp này, chúng ta cần cung cấp thông tin về vị trí và nội dung của dấu hiệu. Ví dụ, chúng ta có thể sử dụng phương pháp "addMarker" như sau:

Lời giải
map.addMarker({
  lat: 10.823, lng: 106.629, title:

'Dấu hiệu', icon: 'red-dot' });. Phương pháp này rất hữu ích khi chúng ta cần thêm nhiều dấu hiệu vào bản đồ Google.

Mở trang câu hỏi này →
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
Để 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.
Mở trang câu hỏi này →
AIt performs optimizations for intra-app communication by ensuring intents don't cross process boundaries
BIt enhances app security by ensuring intents can't be sent or received by components in other apps
CIt allows broadcast receivers to run in the background performing long-running operations and/or accessing remote resources
DIt uses the Activity Manager Service to efficiently route intents to zero or more components
Lời giải
LocalBroadcastManager là một lớp trong Android giúp thực hiện giao tiếp giữa các thành phần trong cùng một ứng dụng. Nó thực hiện các tối ưu hóa cho giao tiếp nội bộ ứng dụng bằng cách đảm bảo các intent không vượt quá ranh giới quy trình. Điều này giúp tăng hiệu suất và giảm thiểu các vấn đề liên quan đến giao tiếp giữa các quy trình khác nhau. Ngoài ra, LocalBroadcastManager cũng giúp tăng cường bảo mật ứng dụng bằng cách đảm bảo các intent chỉ có thể được gửi và nhận bởi các thành phần trong cùng một ứng dụng, ngăn chặn các hành vi không mong muốn từ các ứng dụng khác.
Mở trang câu hỏi này →
Asocket.accept()
Bsocket.sendto(address)
Csocket.acceptsocket
Daccept.socket()
Lời giải
Phương thức nào của mô-đun socket cho phép một socket server chấp nhận yêu cầu từ một socket client ở một máy chủ khác?
Mở trang câu hỏi này →
AIt sends data to the client.
BIt receives data from the client.
CIt listens for a connection to be made to the socket and accepts it.
DIt ses the connection with the client.
Lời giải
Khi thiết lập kết nối giữa một client và một server sử dụng socket, mục đích của phương thức accept() trong socket server-side là để lắng nghe khi một kết nối được tạo đến socket và chấp nhận nó. Phương thức accept() sẽ chờ đợi cho đến khi một client kết nối đến server và khi đó nó sẽ tạo ra một kết nối mới với client đó. Kết nối này sẽ được tạo ra thông qua một socket mới, được gọi là socket kết nối. Socket kết nối này sẽ được sử dụng để truyền dữ liệu giữa client và server. Phương thức accept() đóng vai trò quan trọng trong việc thiết lập và quản lý kết nối giữa client và server.
Mở trang câu hỏi này →
9What is a Socket in networking?4 lựa chọn
AA protocol for securing network communication
BAn endpoint for sending and receiving data across a network
CA type of network cable
DA device for connecting multiple Ethernet cables
Lời giải
Một Socket trong mạng lưới là một điểm kết nối (endpoint) quan trọng cho việc gửi và nhận dữ liệu (data) qua mạng lưới. Nó là một phần quan trọng của giao thức truyền thông mạng lưới (network communication protocol). Socket hoạt động như một cổng giao tiếp giữa các thiết bị mạng lưới, cho phép chúng gửi và nhận dữ liệu một cách an toàn và hiệu quả. Mỗi Socket có một địa chỉ duy nhất, giúp xác định vị trí của nó trên mạng lưới. Điều này cho phép các thiết bị mạng lưới khác liên lạc với Socket một cách chính xác và hiệu quả. Socket được sử dụng rộng rãi trong nhiều ứng dụng mạng lưới, bao gồm cả các ứng dụng web, ứng dụng di động và các ứng dụng khác.
Mở trang câu hỏi này →
AIt initiates a connection to another socket
BIt passively waits for a connection from a client
CIt sends data to a connected socket
DIt reads data from a connected socket
Lời giải
Trong socket programming, phương thức accept() đóng vai trò quan trọng trong việc xử lý kết nối từ khách hàng. Khi một socket được tạo thành một server, nó sẽ sử dụng phương thức accept() để chờ đợi một kết nối từ một client. Khi một client kết nối đến server, phương thức accept() sẽ được gọi để xác nhận và xử lý kết nối đó. Phương thức accept() sẽ trả về một đối tượng socket mới, đại diện cho kết nối giữa server và client. Đối tượng socket này có thể được sử dụng để gửi và nhận dữ liệu giữa server và client. Tóm lại, phương thức accept() giúp server passively chờ đợi và xử lý kết nối từ khách hàng.
Mở trang câu hỏi này →
AInitializes the Google Play Services.
BLoads the Google Map API key.
CNotifies when the map is ready to be used.
DAdds the map fragment to the layout.
Lời giải
Lớp OnMapReadyCallback là một giao diện trong Google Maps Android API, được sử dụng để thông báo khi bản đồ đã sẵn sàng để sử dụng. Khi bạn tạo một đối tượng GoogleMap, nó sẽ được gọi khi bản đồ đã được tải và sẵn sàng để sử dụng. Trong phương thức này, bạn có thể thêm các marker, polyline, circle, polygon, v.v. vào bản đồ. Nó cũng cho phép bạn thay đổi các thuộc tính của bản đồ như zoom, rotate, v.v. Ngoài ra, bạn cũng có thể sử dụng phương thức này để tải các dữ liệu từ server và hiển thị chúng trên bản đồ.
Mở trang câu hỏi này →
A<MapView>
B<MapFragment>
C<fragment>
D<GoogleMap>
Lời giải

Để thêm một bản đồ Google vào một layout Android, bạn cần sử dụng thẻ XML <fragment>. Thẻ này cho phép bạn thêm các yếu tố UI khác nhau vào layout của mình, bao gồm cả bản đồ Google. Khi sử dụng thẻ <fragment>, bạn cần thêm một thẻ <com.google.android.gms.maps.MapFragment> bên trong nó để hiển thị bản đồ Google. Điều này cho phép bạn dễ dàng thêm và quản lý các yếu tố UI khác nhau trong layout của mình.

Mở trang câu hỏi này →
AMapView
BGoogleMap
CMapFragment
DLocationManager
Lời giải
Khi sử dụng Google Maps API trong Android, lớp chính mà bạn tương tác với là GoogleMap. GoogleMap là một lớp quan trọng trong thư viện Google Maps Android API, cung cấp các phương thức để hiển thị bản đồ, thêm các marker, đường cong, hình dạng và các tính năng khác. Để sử dụng GoogleMap, bạn cần thêm thư viện Google Maps Android API vào dự án của mình và tạo một đối tượng GoogleMap trong Activity hoặc Fragment của mình. Sau đó, bạn có thể sử dụng các phương thức của GoogleMap để tùy chỉnh bản đồ và thêm các tính năng khác.
Mở trang câu hỏi này →
ARetrofit retrofit = new Retrofit(); MyApiEndpointInterface api = retrofit.create(MyApiEndpointInterface.class);
BRetrofit retrofit = Retrofit.create(); MyApiEndpointInterface api = retrofit.newInstance(MyApiEndpointInterface.class);
CRetrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build(); MyApiEndpointInterface api = retrofit.create(MyApiEndpointInterface.class);
DRetrofit retrofit = Retrofit.newInstance(BASE_URL); MyApiEndpointInterface api = retrofit.createInstance(MyApiEndpointInterface.class);
Lời giải

Để tạo một instance của một interface Retrofit API, bạn cần sử dụng một cách cụ thể. Đầu tiên, bạn cần tạo một đối tượng Retrofit Builder bằng cách sử dụng phương thức new. Sau đó, bạn cần thêm baseUrl và converter factory vào đối tượng này. Cuối cùng, bạn có thể tạo instance của interface Retrofit API bằng phương thức create(). Ví dụ, bạn có thể sử dụng đoạn mã sau: Retrofit retrofit =

Lời giải
new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();

MyApiEndpointInterface api =

Lời giải
retrofit.create(MyApiEndpointInterface.class);
Mở trang câu hỏi này →
A@Path is used to insert values into the URL path, while @Query is used to add parameters to the URL's query string.
B@Path encrypts data before sending, whereas @Query sends data in plain text.
C@Path is used for POST requests, and @Query is used for GET requests.
D@Path and @Query serve the same purpose and can be used interchangeably.
Lời giải
Trong Retrofit, @Path và @Query là hai loại annotation khác nhau được sử dụng để tạo ra các API endpoint. @Path được sử dụng để chèn giá trị vào phần đường dẫn URL, trong khi @Query được sử dụng để thêm tham số vào phần query string của URL. Ví dụ, nếu bạn muốn tạo một API endpoint để lấy dữ liệu theo id, bạn có thể sử dụng @Path để chèn id vào phần đường dẫn URL. Ngược lại, nếu bạn muốn thêm một tham số query string vào URL, bạn có thể sử dụng @Query. Điều này giúp bạn tạo ra các API endpoint linh hoạt và dễ dàng sử dụng. Ngoài ra, @Path và @Query cũng giúp bạn phân biệt giữa các phương thức HTTP khác nhau, chẳng hạn như GET và POST.
Mở trang câu hỏi này →
ATo animate the camera's movement.
BTo instantly move the camera to a new position.
CTo add items to the map.
DTo change the map's type.
Lời giải
Phương thức GoogleMap.moveCamera() được sử dụng để di chuyển camera trên bản đồ. Nó cho phép bạn di chuyển camera đến một vị trí mới mà không cần phải sử dụng animation. Điều này có nghĩa là camera sẽ di chuyển đến vị trí mới một cách nhanh chóng và trực tiếp, mà không có bất kỳ hiệu ứng animation nào. Phương thức này rất hữu ích khi bạn cần di chuyển camera đến một vị trí cụ thể trên bản đồ, chẳng hạn như khi bạn muốn hiển thị một điểm quan trọng trên bản đồ.
Mở trang câu hỏi này →
AServerSocket.create()
Bnew ServerSocket(PORT)
CSocketServer(PORT)
Dnew SocketServer()
Lời giải
Để tạo một socket server trên Android, bạn cần sử dụng lớp ServerSocket. Phương thức được sử dụng để tạo một socket server là new ServerSocket(PORT), nơi PORT là số cổng mà socket server sẽ lắng nghe. Đây là cách phổ biến và được khuyến nghị để tạo một socket server trên Android.
Mở trang câu hỏi này →
Aandroid.permission.INTERNET
Bandroid.permission.BLUETOOTH
Candroid.permission.CAMERA
Dandroid.permission.READ_CONTACTS
Lời giải
Để Google Maps hoạt động trên ứng dụng Android, bạn cần thêm các quyền sau vào file AndroidManifest.xml. Trước hết, bạn cần có quyền truy cập Internet để tải dữ liệu từ Google Maps. Quyền này được biểu diễn bởi android.permission.INTERNET. Ngoài ra, một số ứng dụng có thể yêu cầu quyền truy cập Bluetooth, camera hoặc danh bạ, nhưng đối với Google Maps, quyền Internet là đủ.
Mở trang câu hỏi này →
AACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION
BINTERNET and ACCESS_WIFI_STATE
CWRITE_EXTERNAL_STORAGE
DACCESS_NETWORK_STATE
Lời giải
Để truy cập vị trí điện thoại và sử dụng Google Maps, bạn cần có các quyền truy cập sau: ACCESS_COARSE_LOCATION hoặc ACCESS_FINE_LOCATION. ACCESS_COARSE_LOCATION cho phép ứng dụng biết được vị trí của bạn với độ chính xác khoảng vài trăm mét, trong khi ACCESS_FINE_LOCATION cho phép ứng dụng biết được vị trí của bạn với độ chính xác cao hơn, thường là vài mét. Điều này giúp ứng dụng Google Maps có thể hiển thị chính xác vị trí của bạn trên bản đồ.
Mở trang câu hỏi này →
A@Body
B@PostBody
C@Json
D@RequestBody
Lời giải

Để xác định một cơ thể JSON trong một yêu cầu POST bằng Retrofit, bạn cần sử dụng annotation '@Body'. Annotation này cho phép bạn truyền một đối tượng Java sang phương thức API của Retrofit. Khi sử dụng '@Body', bạn cần tạo một lớp Java có phương thức toString() để chuyển đổi đối tượng thành JSON. Ví dụ, nếu bạn muốn gửi một đối tượng User sang API, bạn cần tạo một lớp User với phương thức toString() như sau:

Lời giải
public class User {
private String name;
private int age;

@Override

Lời giải
public String toString() {
return "User {name='" + name + "', age=" + age + "}";
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

Sau đó, bạn có thể sử dụng '@Body' để gửi đối tượng User sang API như sau: @POST("/users")

Lời giải
Call<User> createUser(@Body User user);

Bằng cách sử dụng '@Body', bạn có thể dễ dàng gửi các đối tượng Java sang API của Retrofit.

Mở trang câu hỏi này →