wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi về Kotlin và Lifecycle

Total questions: 86

Worksheet time: 45mins

Name
Class
Date
1.

Câu nào sau đây là sai về collections và higher order functions trong Kotlin?

a)

A. Danh sách, bản đồ và tập hợp đều có thể sử dụng higher order functions.

b)

B. Danh sách là không có thứ tự, trong khi bản đồ và tập hợp là các kiểu dữ liệu có thứ tự.

c)

C. Giống như các phần tử trong một tập hợp, các khóa trong một bản đồ phải là duy nhất. Tuy nhiên, nhiều khóa có thể ánh xạ đến cùng một giá trị.

d)

D. Các hàm higher order như map và filter có thể nhận các hàm lambda làm tham số.

2.

Cho đoạn mã sau, kết quả của oneWordCities[1] là gì?

val cities = listOf("Jeddah", "Bengaluru", "Shenzhen", "Abu Dhabi", "Mountain View", "Tripoli", "Bengaluru", "Lima", "Mandalay", "Tripoli") val oneWordCities = cities.toSet().toList().filter { !it.contains(" ")}.sorted()

a)

A. Tripoli

b)

B. Abu Dhabi

c)

C. Jeddah

d)

D. Bengaluru

3.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. A(n)extrais là một mảnh dữ liệu được truyền giữa các hoạt động khi khởi động một intent.

(a)  

4.

Nếu bạn mở một ứng dụng, và sau đó rời khỏi ứng dụng bằng cách sử dụng nút quay lại, thứ tự nào sau đây đã được gọi?

a)

A. onStart(), onCreate(), onDestroy(), onStop()

b)

B. onDestroy(), onStart(), onCreate(), onStop()

c)

C. onCreate(), onStart(), onStop(), onDestroy()

d)

D. onStart(), onCreate(), onStop(), onDestroy()

5.

Phương thức lifecycle nào sẽ được gọi nếu một hộp thoại xuất hiện trên màn hình, che khuất một hoạt động?

a)

A. onPause() vì hoạt động vẫn được hiển thị, nhưng không còn có tiêu điểm.

b)

B. onStop() vì hoạt động không cần phản hồi với đầu vào của người dùng trong khi hộp thoại đang trên màn hình.

c)

C. onResume() vì hoạt động cần phản hồi với đầu vào của người dùng để hiển thị hộp thoại.

d)

D. onDestroy() vì hoạt động không cần tồn tại miễn là nó không có tiêu điểm.

6.

Câu nào sau đây là đúng về vòng đời của một hoạt động đơn?

a)

A. onStart() có thể được gọi nhiều lần, trong khi onCreate() chỉ có thể được gọi một lần.

b)

B. onStop() có thể được gọi nhiều lần, trong khi onPause() chỉ có thể được gọi một lần.

c)

C. onDestroy() được gọi khi ứng dụng vào nền.

d)

D. onResume() được gọi khi hoạt động có tiêu điểm.

7.

Câu nào sau đây là sai về intents?

a)

A. Cả intents ngầm định và rõ ràng đều cho phép ứng dụng của bạn khởi động một hoạt động khác.

b)

B. Intents rõ ràng yêu cầu bạn chỉ định lớp của hoạt động mà bạn muốn hiển thị.

c)

C. Intents được thực hiện bằng cách sử dụng phương thức startActivity().

d)

D. Một intent ngầm định luôn dẫn đến hệ thống hỏi người dùng ứng dụng nào để mở.

8.

Một hoạt động chứa đoạn mã sau trong onCreate(). Điều gì sẽ xảy ra khi đoạn mã này được thực thi, nếu thuộc tính intent là null?

a)

A. Ứng dụng sẽ bị sập vì đã cố gắng truy cập thuộc tính extras trên một đối tượng null.

b)

B. Ứng dụng sẽ bị sập vì đã cố gắng truy cập một đối tượng null.

c)

C. Ứng dụng sẽ không bị sập vì thuộc tính extras được truy cập một cách không an toàn bằng ?.

d)

D. Ứng dụng sẽ không bị sập vì thuộc tính extras được truy cập một cách an toàn bằng ?.

9.

Câu nào sau đây có thể được thực hiện trong onCreate()?

a)

A. Cấu hình các view, chẳng hạn như thiết lập trình quản lý bố cục của một recycler view.

b)

B. Xác định các mục sẽ được hiển thị trong menu tùy chọn.

c)

C. Thiết lập onClickListener cho các mục trong menu tùy chọn.

d)

D. Lấy extras từ intent đã khởi động hoạt động.

10.

Trong phương thức nào bạn nên xử lý những gì xảy ra khi một nút trong thanh ứng dụng được nhấn?

a)

A. onCreateOptionsMenu()

b)

B. openOptionsMenu()

c)

C. onOptionsItemSelected()

d)

D. onPrepareOptionsMenu()

11.

Đúng hay sai: onCreateView() chỉ được gọi một lần cho toàn bộ vòng đời của một fragment.

a)

A. Đúng

b)

B. Sai

12.

Câu nào sau đây là lợi ích của việc sử dụng fragments?

a)

A. Điều hướng giữa các fragments cho phép các mẫu giao diện người dùng tinh vi hơn, chẳng hạn như thanh tab.

b)

B. Sử dụng nhiều fragments trong một hoạt động cho phép bố cục thích ứng trên nhiều kích thước màn hình.

c)

C. Các fragments giống nhau có thể được tái sử dụng trên nhiều hoạt động.

d)

D. Tất cả các điều trên

13.

Trong vòng đời của fragment, những nhiệm vụ nào nên được thực hiện trong onViewCreated()?

a)

A. Inflating layout

b)

B. Liên kết các đối tượng view với các thuộc tính trong fragment của bạn

c)

C. Cấu hình menu tùy chọn

d)

D. Thiết lập các thuộc tính của các view riêng lẻ, chẳng hạn như adapter của recycler view

14.

Trong vòng đời của fragment, những nhiệm vụ nào nên được thực hiện trong onCreateView()?

a)

A. Inflating layout

b)

B. Liên kết các đối tượng view với các thuộc tính trong fragment của bạn

c)

C. Cấu hình menu tùy chọn

d)

D. Thiết lập các thuộc tính của các view riêng lẻ, chẳng hạn như adapter của recycler view

15.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. Phương thức ____________________ cần được ghi đè trong hoạt động chủ để đảm bảo điều hướng dựa trên fragment của ứng dụng bạn phản hồi với nút "Lên" của ứng dụng.

a)

onSupportNavigateUp

b)

a

16.

Cho đoạn mã cho việc điều hướng giữa hai fragments trong một ứng dụng ghi chú, danh sách sách và danh sách ghi chú, câu nào sau đây là đúng về tệp đồ thị điều hướng?

val action = BooksListFragmentsDirections.actionBooksListToNotesList(bookIndex = index) holder.view.findNavController().navigate(action)

a)

A: Cả danh sách sách và danh sách ghi chú đều là các điểm đến.

b)

B: Fragment danh sách sách có một tham số gọi là bookIndex.

c)

C: Có một hành động được định nghĩa trên đồ thị điều hướng đi từ danh sách sách đến danh sách ghi chú.

d)

D: A, B và C đều đúng.

17.

Câu nào sau đây là lý do để sử dụng ViewModel?

a)

A. Một ViewModel và dữ liệu của nó có thể sống sót qua các thay đổi định hướng trong một Activity/Fragment.

b)

B. Một ViewModel cho phép bạn tách mã cập nhật UI khỏi mã không cần dựa vào UI hoặc vòng đời của nó.

c)

C. Một ViewModel ngăn dữ liệu của bạn tự động cập nhật UI.

18.

Một ViewModel bị hủy sau khi nào trong số các điều sau?

a)

A. luôn sau onStop

b)

B. luôn sau onDestroy

c)

C. sau onDestroy, nếu không phải là một thay đổi cấu hình

19.

Đúng hay sai: Bạn nên thực hiện các tác vụ tốn thời gian và yêu cầu I/O trong Activity/Fragment của bạn.

a)

A. Đúng

b)

B. Sai

20.

Tại sao bạn nên khởi tạo và lưu trữ LiveData trong ViewModel của bạn thay vì trong một UI Controller?

a)

A. Cả ViewModel và LiveData đều nhận thức vòng đời.

b)

B. Để đảm bảo rằng LiveData không bị hủy khi UI Controller bị hủy.

c)

C. Để ẩn hoặc tách biệt các chi tiết thực hiện làm cho ứng dụng của bạn linh hoạt hơn.

d)

D. Tất cả các điều trên

21.

Câu nào sau đây cho phép bạn sử dụng observe để theo dõi các thay đổi?

a)

A. một đối tượng LiveData

b)

B. bất kỳ đối tượng có thể thay đổi nào

c)

C. bất kỳ thuộc tính nào trong ViewModel

d)

D. bất kỳ thuộc tính nào trong ViewModel hoặc đối tượng LiveData

22.

Đúng hay sai: Thật ổn khi một ViewModel tham chiếu trực tiếp đến một lớp View hoặc LifecycleOwner.

a)

A. Đúng

b)

B. Sai

23.

Bạn có thể sử dụng cùng một ViewModel cho nhiều Activities hoặc Fragments để chia sẻ dữ liệu?

a)

A. Đúng

b)

B. Sai

24.

Cách chính xác để truy cập view model chia sẻ bằng cách sử dụng cách tiếp cận delegate thuộc tính Kotin là gì?

a)

A. val viewModel: OrderViewModel by viewModels()

b)

B. val viewModel: OrderViewModel by activityViewModels()

c)

C. val viewModel: OrderViewModel by sharedViewModels()

d)

D. val viewModel: OrderViewModel by fragmentViewModels()

25.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. Sử dụng một LiveData (a)   để trả về một thể hiện LiveData khác dựa trên giá trị của một thể hiện khác.

26.

Hàm apply trong Kotlin có thể được sử dụng để cấu hình một đối tượng như thế nào?

a)

A. Nó có thể áp dụng trực tiếp đối tượng.

b)

B. Nó có thể áp dụng một tập hợp các gán cho đối tượng.

c)

C. Nó có thể áp dụng các thể hiện mới từ đối tượng.

d)

D. Không nên sử dụng apply để cấu hình một đối tượng.

27.

Sử dụng biểu thức liên kết dữ liệu, cú pháp đúng để thêm thuộc tính vào nút trong bố cục này nhằm liên kết một trình lắng nghe nhấp chuột là gì?

<Button

android:id="@+id/next_button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/next" />

a)

android:onClick="@{detailFragment.next()}"

b)

android:onClick="@{(Int) -> detailFragment()}"

c)

android:click="@{() -> detailFragment.next()}"

d)

android:onClick="@{() -> detailFragment.next()}"

28.

Mẫu ___ bao gồm một danh sách các mục và nhiều nội dung cho mục đã chọn.

a)

list-expansion

b)

data-detail

c)

list-detail

d)

Item-list

29.

Trong hầu hết các trường hợp, pane sẽ chỉ trượt trên các thiết bị nhỏ, chẳng hạn như điện thoại, nhưng được hiển thị song song trên máy tính bảng.

a)

Đúng

b)

Sai

30.

Chiều rộng gọn gàng thường được định nghĩa là chiều rộng màn hình nhỏ hơn ___dp.

a)

600

b)

720

c)

840

d)

1200

31.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. Thiết lập thuộc tính android: (a)   xác định cách không gian còn lại trong SlidingPaneLayout được phân phối giữa các chế độ xem con.

32.

Nói chung, isSlideable sẽ chỉ đúng trên các thiết bị lớn hơn, nơi hai bố cục được hiển thị song song.

a)

Đúng

b)

Sai

33.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu.

Phương thức _________ của OnBackPressedCallback được sử dụng để xử lý nút quay lại của hệ thống khi sử dụng SlidingPaneLayout.

a)

handleOnBackPressed()

b)

a

34.

Những sự kiện nào sau đây là sự kiện của SlidingPaneLayout? Chọn nhiều câu trả lời mà bạn thấy phù hợp.

a)

OnPanelOpened()

b)

OnPanelChanged()

c)

OnPanelClosed()

d)

OnPanelSlide()

35.

Đúng hay Sai: INSERT, UPDATE và DELETE có thể được sử dụng để sửa đổi nhiều hàng trong một bảng dữ liệu.

a)

Đúng

b)

Sai

36.

Những điều nào sau đây là đúng về từ khóa DISTINCT? Chọn nhiều câu trả lời mà bạn thấy phù hợp.

a)

Từ khóa DISTINCT có thể được sử dụng trong một hàm tổng hợp.

b)

Từ khóa DISTINCT có thể được sử dụng để xác định tất cả các giá trị duy nhất trong một cột.

c)

Từ khóa DISTINCT chỉ có thể được sử dụng khi chọn một cột duy nhất.

d)

Từ khóa DISTINCT có thể được sử dụng như một phần của câu WHERE.

37.

Thứ tự các mệnh đề trong một câu SELECT nào là đúng?

a)

WHERE, LIMIT, ORDER BY, GROUP BY

b)

WHERE, LIMIT, GROUP BY, ORDER BY

c)

WHERE, ORDER BY, GROUP BY, LIMIT

d)

WHERE, GROUP BY, ORDER BY, LIMIT

38.

Đúng hay Sai: Câu lệnh ORDER BY trả về kết quả theo thứ tự giảm dần theo mặc định.

a)

Đúng

b)

Sai

39.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. SQL là viết tắt của Ngôn ngữ Truy vấn Cấu trúc.

(a)  

40.

Đúng hay Sai: Bạn có thể sử dụng * để chọn tất cả các cột trong một bảng dữ liệu.

a)

Đúng

b)

Sai

41.

Khóa chính cho phép:

a)

Cơ sở dữ liệu đại diện cho các mối quan hệ giữa các bảng.

b)

Các hàng trong một bảng tham chiếu đến các hàng trong bảng khác.

c)

Nội dung của các hàng riêng lẻ trong một bảng phải là duy nhất.

d)

Một định danh duy nhất cho mỗi hàng trong một bảng.

42.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. Room là một thư viện ORM. ORM là viết tắt của _______

a)
Object-Relational Mapping
b)

a

43.

Những điều nào sau đây là đúng về ListAdapter? Chọn nhiều câu trả lời mà bạn thấy phù hợp.

a)

ListAdapter không phải là RecyclerViewAdapter, do đó, không thể được sử dụng với RecyclerView.

b)

Giống như RecyclerViewAdapter, ListAdapter sử dụng một lớp ViewHolder.

c)

ListAdapter sử dụng DiffUtil.

d)

Cài đặt cho areContentsTheSame() chỉ so sánh các ID giữa các thực thể, trong khi areItemsTheSame() so sánh tất cả các thuộc tính.

44.

Điều nào sau đây là sai về việc sử dụng flow?

a)

Trả về một kiểu thông thường, như danh sách, từ một hàm DAO sẽ không cho phép ứng dụng của bạn phản hồi với các thay đổi dữ liệu.

b)

Dữ liệu trả về dưới dạng flow có thể được xử lý bằng cách sử dụng hàm collect().

c)

Một flow chỉ có thể được truy cập từ một coroutine.

d)

Flow là một tính năng của Kotlin trả về nhiều giá trị tính toán bất đồng bộ.

45.

Điều nào sau đây là sai về chú thích @Query?

a)

Chú thích @Query được sử dụng với một phương thức trong DAO.

b)

Chú thích @Query tương ứng với một truy vấn SELECT.

c)

Chú thích @Query có thể truyền tham số vào một câu lệnh SQL bằng cách đặt tên của chúng với dấu hai chấm.

d)

Chú thích @Query chỉ có thể được sử dụng với một hàm suspend.

46.

Những điều nào sau đây là đúng về DAO? Chọn nhiều câu trả lời mà bạn thấy phù hợp.

a)

Các hàm DAO sử dụng các chú thích như @Insert và @Update tương ứng với một thao tác trên cơ sở dữ liệu.

b)

Các hàm DAO thường được gọi trực tiếp từ một fragment.

c)

Các hàm DAO có thể trả về một flow.

d)

Các thể hiện của các lớp DAO được tham chiếu trong lớp AppDatabase.

47.

Tại sao bạn cần sử dụng hàm synchronized() khi tạo cơ sở dữ liệu?

a)

synchronized() được sử dụng để tránh các điều kiện đua.

b)

synchronized() đảm bảo chỉ một luồng có thể vào khối mã tại một thời điểm.

c)

Làm như vậy cho phép tạo nhiều bản sao của cơ sở dữ liệu.

d)

Gọi synchronized() cho phép mã này được truy cập an toàn từ nhiều luồng cùng một lúc.

48.

Điều nào sau đây là sai về lớp AppDatabase?

a)

AppDatabase là một lớp trừu tượng kế thừa từ RoomDatabase.

b)

AppDatabase giữ một tham chiếu đến các view model.

c)

Chú thích @Database xác định các thực thể (bảng) trong cơ sở dữ liệu.

d)

Hàm getDatabase() có thể tạo một cơ sở dữ liệu mới, được tiền nạp từ một tệp.

49.

Chú thích @Insert và @Delete có thể được sử dụng mà không cần cung cấp một câu lệnh SQL.

a)

Đúng

b)

Sai

50.

Điều nào sau đây là đúng về ViewModel trong một ứng dụng sử dụng Room? Chọn nhiều câu trả lời mà bạn thấy phù hợp.

a)

ViewModel tương tác với DAO.

b)

ViewModel cập nhật UI trên luồng chính.

c)

ViewModel cung cấp dữ liệu từ cơ sở dữ liệu cho UI của ứng dụng.

d)

ViewModel được giữ bởi một tham chiếu trong lớp AppDatabase.

51.

Điền vào chỗ trống Nhập một hoặc nhiều từ để hoàn thành câu. Để xử lý xung đột khi chèn vào cơ sở dữ liệu, bạn có thể truyền một OnConflictStrategy, chẳng hạn như IGNORE, vào chú thích @Insert.

(a)  

52.

Lớp ViewModel factory là một lớp kế thừa từ ___ và chịu trách nhiệm tạo các thể hiện của lớp ViewModel.

a)

ViewModelFactory

b)

ViewModelFactory.Provider

c)

ViewModelProvider.Factory

d)

ViewModelProvider

53.

Đúng hay Sai: Trong một ứng dụng Room, lớp Application cho phép các đối tượng khác truy cập lớp AppDatabase.

a)

Đúng

b)

Sai

54.

Phương thức nào trên một Activity làm cho bố cục của ứng dụng được nén và làm cho các view của nó có sẵn dưới dạng đối tượng?

a)

onCreate()

b)

setClickListener()

c)

setContentView()

d)

show()

55.

Phương thức nào thay đổi tài nguyên hình ảnh cho một ImageView trong mã Kotlin?

a)

setImageResource()

b)

setImageURI()

c)

setImage()

d)

setImageRes()

56.

Ý nghĩa của từ khóa lateinit trong khai báo biến trong mã Kotlin là gì?

a)

Biến không bao giờ được khởi tạo.

b)

Biến chỉ được khởi tạo tại thời điểm chạy ứng dụng.

c)

Biến tự động được khởi tạo thành null.

d)

Biến sẽ được khởi tạo sau.

57.

Cấu hình Gradle nào chỉ ra mức API gần đây nhất mà ứng dụng của bạn đã được thử nghiệm?

a)

minSdkVersion

b)

compileSdkVersion

c)

targetSdkVersion

d)

testSdkVersion

58.

Giá trị nào của thuộc tính scaleType của ImageView cho phép chúng ta giữ nguyên tỷ lệ khung hình (hình ảnh sẽ không bị cắt)?

a)

centerInside

b)

fitXY

c)

centerCrop

d)

center

59.

Làm thế nào để xử lý sự kiện mà người dùng nhấn nút và giữ trong một thời gian dài?

a)

setLongClickListener

b)

setOnLongClickListener

c)

setOnClickListener

d)

setOnLongTouchListener

60.

Giả sử chúng ta có một hình ảnh tên là "mobile.png" trong thư mục res/drawable, và chúng ta có một ImageView trong bố cục hoạt động, phương thức nào có thể được sử dụng để đặt nguồn hình ảnh cho ImageView là hình ảnh mobile.png?

a)

setImageResource(R.id.mobile)

b)

setImageResource(R.drawable.mobile)

c)

setImageDrawable(R.drawable.mobile)

d)

setImageResource(R.drawable.mobile.png)

61.

Câu nào sau đây không phải là một thách thức cho phát triển ứng dụng Android?

a)

Nhà phát triển có thể phải sử dụng các công cụ phát triển khác nhau trên các hệ điều hành khác nhau

b)

Ứng dụng phải tương thích với nhiều phiên bản Android khác nhau

c)

Ứng dụng phải được thiết kế cho nhiều độ phân giải khác nhau

d)

Mã nguồn và dữ liệu của người dùng phải được bảo mật

62.

Câu nào sau đây là sai về ý định ngầm?

a)

Để gọi ý định ngầm, bạn phải biết tên lớp của hoạt động đích

b)

Thời gian chạy Android sẽ mở trình chọn ứng dụng nếu có nhiều ứng cử viên cho ý định ngầm

c)

Thời gian chạy Android nhận các yêu cầu và cố gắng tìm ứng dụng phù hợp

d)

Thời gian chạy Android giữ danh sách các ứng dụng đăng ký để chạy ý định ngầm

63.

Giả sử chúng ta viết một ứng dụng để khảo sát sở thích của mọi người (có 5 sở thích để khảo sát), một người có thể có nhiều sở thích. Điều khiển đầu vào nào là phù hợp cho mục đích này?

a)

RadioButton

b)

Recycler View

c)

DropDownList

d)

ListView

e)

Checkbox

64.

Câu nào sau đây là ngôn ngữ để lập trình Android một cách tự nhiên (chọn tất cả các câu trả lời đúng)?

a)

Java

b)

HTML, CSS, Javascript

c)

Kotlin

d)

C/C++

65.

Ghi đè callback onSaveInstanceState không phù hợp trong tình huống nào?

a)

Lưu một số trạng thái của Activity và khôi phục sau khi có sự thay đổi cấu hình thiết bị

b)

Lưu một số trạng thái của Activity và khôi phục sau khi người dùng xoay màn hình thiết bị

c)

Lưu một số trạng thái của Activity và khôi phục sau khi người dùng thay đổi ngôn ngữ của thiết bị

d)

Lưu dữ liệu vào thẻ SD để sử dụng sau này.

66.

Cả Toast và Logcat đều có thể được sử dụng để gỡ lỗi chương trình, biểu thức nào dưới đây là sai?

a)

Toast hiển thị thông tin trên thiết bị trong khi Logcat hiển thị thông tin trên máy chủ

b)

Logcat chỉ hiển thị thông tin mà nhà phát triển ghi lại

c)

Logcat không thể được hiển thị trên máy tính mà không có kết nối giữa máy tính và thiết bị Android

d)

Toast có thể được sử dụng để hiển thị một số hướng dẫn cho người dùng

67.

Nếu bạn có hoạt động có tên: SampleActivity, tên của lớp liên kết nào được tạo tự động bởi Android khi bạn cấu hình ứng dụng của mình với tính năng liên kết dữ liệu được bật?

a)

sample_activity_binding

b)

ActivitySampleBinding

c)

activity_sample_binding

d)

SampleActivityBinding

68.

Mục đích của việc sử dụng RadioGroup là gì?

a)

Để nhóm các đối tượng RadioButton

b)

Để sắp xếp các đối tượng RadioButton theo hàng hoặc theo cột

c)

Để thay thế LinearLayout

d)

Để làm cho RadioButton hoạt động như một CheckBox

e)

Để xác định RadioButton nào được chọn

69.

Khi nào hoạt động hiện tại được đặt lại, tức là callback onCreate được gọi lại?

a)

Người dùng xoay điện thoại

b)

Người dùng thay đổi ngôn ngữ của điện thoại

c)

Người dùng nhấn nút home và mở ứng dụng khác

d)

Điện thoại sắp hết pin

70.

Widget nào có thể được sử dụng để tạo một đối tượng có thể nhấp với nội dung hình ảnh?

a)

Button

b)

ImageButton

c)

ImageView

d)

Image

e)

TextView

71.

Câu nào sau đây là lợi ích của việc sử dụng fragments?

a)

Điều hướng giữa các fragments cho phép các mẫu giao diện người dùng tinh vi hơn, chẳng hạn như thanh tab.

b)

Sử dụng nhiều fragments trong một hoạt động cho phép bố cục thích ứng trên nhiều kích thước màn hình.

c)

Cùng một fragments có thể được tái sử dụng trên nhiều hoạt động.

d)

Fragment nhẹ hơn Activity vì vậy chúng ta nên sử dụng Fragment thay vì

72.

Lợi thế của môi trường phát triển Android so với môi trường phát triển iOS là gì?

a)

Trải nghiệm UI tốt hơn

b)

Có thể phát triển ứng dụng trên nhiều hệ điều hành khác nhau

c)

Dễ dàng kiểm tra trên các thiết bị thực

d)

Có thể sử dụng nhiều IDE cho phát triển ứng dụng

73.

Nơi nào để cấu hình hoạt động chính - hoạt động đầu tiên được chạy trong ứng dụng của bạn?

a)

trong AndroidManifest.xml

b)

trong tệp gradle cấp dự án

c)

trong MainActivity.kt

d)

trong tệp gradle cấp module

74.

Chức năng nào để mở hoạt động mới từ hoạt động hiện tại?

a)

newActivity

b)

beginActivity

c)

startActivity

d)

openActivity

75.

Nếu bạn ghi đè callback onCreateOptionMenu trong hoạt động của mình, bạn sẽ tạo menu nào?

a)

Popup Menu

b)

ActionBar Menu

c)

Context Menu

d)

Navigation Drawer Menu

76.

Trong trường hợp hoạt động có quá nhiều điều khiển đầu vào khiến chiều cao bố cục vượt quá chiều cao của màn hình điện thoại, ViewGroup nào nên được sử dụng?

a)

ScrollView

b)

LinearLayout

c)

HorizontalScrollView

d)

VerticalScrollView

77.

Thư mục res không bao gồm tài nguyên nào sau đây?

a)

tệp để định nghĩa các thư viện phụ thuộc được sử dụng trong dự án

b)

tệp để định nghĩa các chuỗi, màu sắc được sử dụng trong dự án

c)

tệp để định nghĩa các kích thước được sử dụng trong dự án

d)

tệp để định nghĩa cấu trúc menu được sử dụng trong dự án

78.

Android thường lấy tên của một số loại bánh phổ biến để đặt tên cho phiên bản Android. Từ phiên bản nào, tên bánh không được lấy cho phiên bản Android?

a)

Android 11

b)

Android 9

c)

Android 10

d)

Android 8

79.

Cách nào có thể/language để phát triển ứng dụng Android?

a)

Cách tiếp cận tự nhiên: Java/Kotlin

b)

Cách tiếp cận dựa trên web

c)

Cách tiếp cận Universal Windows Platform (UWP)

d)

Object C

e)

Flutter

80.

Lớp cha trực tiếp của lớp Button là gì?

a)

android.widget.View

b)

android.view.TextView

c)

android.view.View

d)

android.widget.TextView

81.

Loại menu nào sẽ được mở nếu người dùng nhấn và giữ trong một thời gian dài?

a)

Instant Menu

b)

Context Menu

c)

Drawer Menu

d)

Option Menu

82.

Điểm linh hoạt của các thiết bị Android so với iOS là gì?

a)

Dữ liệu người dùng được bảo mật hơn

b)

Có thể kết nối với nhiều thiết bị ngoại vi như chuột hoặc bàn phím

c)

Sao lưu và khôi phục dữ liệu dễ dàng với dịch vụ đám mây

d)

Cho phép cài đặt ứng dụng từ các nguồn bên thứ ba (không phải từ cửa hàng Google Play)

83.

Làm thế nào để tắt/kết thúc một hoạt động?

a)

destroy()

b)

finish()

c)

dispose()

d)

finishActivity()

84.

Lớp RadioGroup được kế thừa trực tiếp từ lớp nào?

a)

LinearLayout

b)

RelativeLayout

c)

android.widget.view

d)

ConstrainLayout

e)

ViewGroup

85.

Mục đích của ý định ngầm là gì?

a)

Để đóng một hoạt động trong ứng dụng khác

b)

Để mở một dịch vụ trong ứng dụng hiện tại

c)

Để mở một hoạt động trong ứng dụng khác

d)

Để mở một hoạt động trong ứng dụng hiện tại

86.

Nếu chúng ta có một số nút trong một Hoạt động, và tất cả các nút đều đặt sự kiện onClickListener cho Hoạt động bằng cách gọi setOnClickListener(this). Vậy, trong hàm callback onClick của Hoạt động, làm thế nào bạn biết nút nào đã được nhấp?

a)

Dựa trên thứ tự của các nút trong tệp bố cục xml

b)

Dựa trên tên của mỗi nút

c)

Dựa trên vị trí của mỗi nút

d)

Dựa trên id của mỗi nút