Câu hỏi: PRM393 - Giới thiệu Flutter và kiến trúc
57 câu trắc nghiệm kèm lời giải của môn Lập trình di động (Flutter) - Mobile Programming, xếp theo thứ tự nhập vào ngân hàng. Trang 3/3 — câu 41–57.
Danh sách câu hỏi
57/57 câuHết danh sách
41Which function starts a Flutter app?4 lựa chọn
A
startApp()B
initApp()C
runApp()D
buildApp()Lời giải
Mở trang câu hỏi này →Để bắt đầu một ứng dụng Flutter, bạn cần sử dụng hàm "runApp". Hàm này được sử dụng để khởi động ứng dụng và hiển thị màn hình chính. Nó là một phần quan trọng của quá trình tạo ứng dụng Flutter và phải được gọi trước khi ứng dụng có thể được chạy. Trong mã Flutter, hàm "runApp" thường được sử dụng như sau: runApp(MyApp()), nơi MyApp là một widget đại diện cho màn hình chính của ứng dụng. Khi gọi hàm "runApp", Flutter sẽ khởi động ứng dụng và hiển thị màn hình chính, sau đó ứng dụng sẽ bắt đầu chạy và phản hồi các tương tác của người dùng.
42Which is NOT a Flutter architecture layer?4 lựa chọn
A
FrameworkB
EngineC
EmbedderD
DatabaseLời giải
Mở trang câu hỏi này →Flutter có một kiến trúc đa lớp giúp phân chia ứng dụng thành các phần nhỏ hơn và dễ quản lý hơn. Các lớp chính trong kiến trúc Flutter bao gồm Framework, Engine và Embedder. Framework là lớp cao nhất, chịu trách nhiệm quản lý ứng dụng và cung cấp các công cụ để xây dựng ứng dụng. Engine là lớp trung gian, chịu trách nhiệm thực hiện các tác vụ cơ bản như vẽ hình ảnh và xử lý âm thanh. Embedder là lớp thấp nhất, chịu trách nhiệm tích hợp Flutter vào các nền tảng khác nhau như Android và iOS. Database là một khái niệm khác, không phải là một lớp trong kiến trúc Flutter. Nó là một hệ thống lưu trữ dữ liệu, được sử dụng để lưu trữ và truy xuất dữ liệu trong ứng dụng.
43Which language is used to write Flutter apps?4 lựa chọn
A
JavaB
KotlinC
SwiftD
DartLời giải
Mở trang câu hỏi này →Flutter là một framework để xây dựng ứng dụng di động và web. Để viết ứng dụng Flutter, người dùng cần sử dụng ngôn ngữ lập trình Dart. Dart là một ngôn ngữ lập trình được thiết kế đặc biệt cho việc xây dựng ứng dụng di động và web. Nó cung cấp các tính năng như tính động, an toàn và hiệu suất cao. Dart cũng được tích hợp chặt chẽ với các công cụ và thư viện của Flutter, giúp người dùng có thể xây dựng ứng dụng một cách dễ dàng và hiệu quả. Vì vậy, khi nói đến việc viết ứng dụng Flutter, Dart là ngôn ngữ lập trình được sử dụng phổ biến nhất.
44Which of the following is valid?4 lựa chọn
Adynamic x = 5; x = “Hello”;
Bdynamic x = 5; x = true;
Cdynamic x;
DAll of the above
Lời giải
Mở trang câu hỏi này →Câu hỏi này yêu cầu bạn xác định loại khai báo biến động trong lập trình.
Trong C#, từ khóa 'dynamic' cho phép bạn khai báo biến có thể được gán giá trị khác nhau trong suốt quá trình thực thi chương trình.
Ví dụ, bạn có thể gán giá trị số, chuỗi, hoặc thậm chí là giá trị boolean vào biến đã được khai báo với từ khóa 'dynamic'.
Với câu trả lời 'dynamic x = 5; x = “Hello”;', bạn đang khai báo biến 'x' có giá trị ban đầu là số 5, sau đó gán giá trị chuỗi 'Hello' vào biến này.
Câu trả lời 'dynamic x = 5; x = true;' cũng tương tự, bạn đang khai báo biến 'x' có giá trị ban đầu là số 5, sau đó gán giá trị boolean 'true' vào biến này.
Cuối cùng, câu trả lời 'dynamic x;' chỉ khai báo biến 'x' mà không gán giá trị ban đầu nào vào nó.
Tất cả các câu trả lời trên đều là hợp lệ và được chấp nhận trong lập trình C#.
45Who developed Flutter?4 lựa chọn
A
AppleB
MicrosoftC
GoogleD
MetaLời giải
Mở trang câu hỏi này →Flutter là một công cụ phát triển ứng dụng di động được phát triển bởi Google. Nó được thiết kế để giúp các nhà phát triển tạo ra các ứng dụng di động đa nền tảng với một bộ công cụ duy nhất. Flutter sử dụng ngôn ngữ lập trình Dart để xây dựng các ứng dụng, và nó cung cấp một bộ công cụ mạnh mẽ để tạo ra các giao diện người dùng đẹp mắt và hiệu suất cao. Flutter đã trở thành một trong những công cụ phát triển ứng dụng di động phổ biến nhất trên thế giới, và nó được sử dụng bởi hàng triệu nhà phát triển trên toàn cầu. Các ứng dụng được xây dựng bằng Flutter bao gồm các ứng dụng di động, ứng dụng web và thậm chí cả các ứng dụng desktop.
AFaster compilation
BBetter code reuse and UI consistency
CAutomatic navigation
DReduced memory usage
Lời giải
Mở trang câu hỏi này →Khi lập trình với Flutter, việc tạo ra các widget có thể giúp bạn đạt được nhiều lợi ích. Một trong những lợi ích quan trọng nhất là việc tái sử dụng mã và duy trì sự nhất quán trong giao diện người dùng. Khi bạn tạo ra một widget, bạn có thể sử dụng nó nhiều lần trong ứng dụng của mình mà không cần phải viết mã lặp lại. Điều này giúp giảm thiểu thời gian lập trình và tăng cường hiệu suất của ứng dụng. Ngoài ra, việc tái sử dụng mã cũng giúp duy trì sự nhất quán trong giao diện người dùng, giúp ứng dụng của bạn trông chuyên nghiệp và dễ sử dụng hơn. Vì vậy, việc lập trình widget trong Flutter là một kỹ thuật quan trọng để đạt được sự tái sử dụng mã và duy trì sự nhất quán trong giao diện người dùng.
AManually updating UI elements
BEditing layout XML
CCalling native APIs
DRebuilding UI in response to state changes
Lời giải
Mở trang câu hỏi này →Flutter sử dụng mô hình UI phản ứng, giúp ứng dụng của bạn luôn được cập nhật và đồng bộ với trạng thái dữ liệu. Mô hình này cho phép bạn xây dựng ứng dụng có thể tương tác và phản ứng với các thay đổi trong dữ liệu. Trong các lựa chọn trên, hành động nào cho thấy rõ nhất mô hình UI phản ứng của Flutter? Đó là việc xây dựng lại giao diện người dùng khi có thay đổi trong trạng thái dữ liệu. Điều này cho phép ứng dụng của bạn luôn được cập nhật và phản ứng với các thay đổi trong dữ liệu, tạo ra trải nghiệm người dùng mượt mà và liền mạch.
ANative callbacks
BHot restart
CManual refresh
DWidget rebuilding
Lời giải
Mở trang câu hỏi này →Flutter cung cấp một số cách để hỗ trợ cập nhật giao diện người dùng phản ứng. Trong đó, khái niệm Widget rebuilding là một trong những cách phổ biến nhất. Khi một widget được cập nhật, Flutter sẽ tự động rebuild widget đó và tất cả các widget con của nó, giúp đảm bảo giao diện người dùng luôn được cập nhật một cách phản ứng với các thay đổi dữ liệu. Điều này giúp cho việc phát triển ứng dụng trở nên dễ dàng hơn, vì các nhà phát triển không cần phải lo lắng về việc cập nhật giao diện người dùng thủ công.
AAndroid only
BAndroid, iOS, web, and desktop
CWeb servers only
DiOS only
Lời giải
Mở trang câu hỏi này →Flutter là một framework phát triển ứng dụng di động đa nền tảng, cho phép các nhà phát triển xây dựng ứng dụng trên nhiều nền tảng khác nhau như Android, iOS, web và desktop chỉ với một bộ mã nguồn duy nhất. Điều này giúp giảm thiểu thời gian và công sức phát triển ứng dụng trên nhiều nền tảng khác nhau. Flutter sử dụng ngôn ngữ lập trình Dart để xây dựng ứng dụng, và có một bộ công cụ mạnh mẽ để hỗ trợ quá trình phát triển ứng dụng. Với Flutter, các nhà phát triển có thể xây dựng ứng dụng trên nhiều nền tảng khác nhau, bao gồm cả Android, iOS, web và desktop, chỉ bằng một bộ mã nguồn duy nhất.
50Which status code indicates server error?4 lựa chọn
A301
B404
C500
D200
Lời giải
Mở trang câu hỏi này →Trạng thái mã lỗi 500 là một trong những mã lỗi phổ biến nhất trên máy chủ. Nó thường được sử dụng khi máy chủ gặp sự cố hoặc không thể thực hiện yêu cầu của người dùng. Ví dụ, nếu máy chủ gặp sự cố hoặc không thể truy cập dữ liệu, nó sẽ trả về mã lỗi 500. Ngoài ra, mã lỗi 500 cũng có thể được sử dụng khi máy chủ không thể thực hiện yêu cầu của người dùng do lỗi kỹ thuật hoặc lỗi logic. Trong trường hợp này, người dùng sẽ nhận được thông báo lỗi và có thể phải thử lại yêu cầu sau.
51Why are widgets lightweight in Flutter?4 lựa chọn
AThey are immutable descriptions
BThey store UI state
CThey handle rendering directly
DThey manage system resources
Lời giải
Mở trang câu hỏi này →Trong Flutter, các widget nhẹ nhàng vì chúng được thiết kế để không lưu trữ trạng thái UI. Thay vào đó, chúng chỉ là những mô tả không thể thay đổi về giao diện người dùng. Điều này cho phép Flutter tái sử dụng các widget một cách hiệu quả và giảm thiểu việc tái tạo UI. Ngoài ra, các widget trong Flutter cũng không phải quản lý tài nguyên hệ thống, điều này giúp giảm thiểu việc sử dụng tài nguyên và tăng tốc độ ứng dụng. Nhờ những đặc điểm này, các widget trong Flutter trở nên nhẹ nhàng và dễ dàng sử dụng.
52Why is clean architecture beneficial?4 lựa chọn
AEasier maintenance and testing
BFaster builds
CFewer files
DBetter UI
Lời giải
Mở trang câu hỏi này →Clean architecture là một phương pháp thiết kế phần mềm giúp phân tách các phần của ứng dụng thành các mô-đun độc lập và dễ dàng quản lý. Điều này giúp dễ dàng bảo trì và thử nghiệm ứng dụng. Khi sử dụng clean architecture, các nhà phát triển có thể thay đổi hoặc cập nhật các phần của ứng dụng mà không ảnh hưởng đến các phần khác. Điều này giúp giảm thiểu thời gian và công sức cần thiết để bảo trì và thử nghiệm ứng dụng. Ngoài ra, clean architecture cũng giúp giảm thiểu số lượng file và tăng cường khả năng mở rộng của ứng dụng.
53What is the purpose of the Flutter SDK?4 lựa chọn
ATo store application data permanently
BTo provide tools and libraries for Flutter development
CTo deploy applications directly to app stores
DTo replace the operating system of a device
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Flutter SDK là bộ công cụ phát triển gồm framework widget, công cụ dòng lệnh (flutter run, flutter build), trình biên dịch Dart, engine kết xuất và các thư viện hỗ trợ. Nói ngắn gọn, nó cung cấp CÔNG CỤ VÀ THƯ VIỆN để lập trình viên xây dựng ứng dụng Flutter. Phương án A nhầm sang vai trò của các giải pháp lưu trữ như shared_preferences, Hive hay sqflite; phương án C sai vì việc phát hành lên cửa hàng ứng dụng do các công cụ và quy trình riêng của Google Play hoặc App Store đảm nhiệm; phương án D vô lý vì SDK chạy trên hệ điều hành chứ không thay thế nó.
54What is one of the main advantages of Flutter?4 lựa chọn
ARequires separate codebases for Android and iOS
BUses JavaScript as its primary language
CEnables building apps from a single codebase for multiple platforms
DOnly supports mobile platforms
Lời giải
Mở trang câu hỏi này →Đáp án đúng: C. Ưu thế lớn nhất của Flutter là cho phép xây dựng ứng dụng từ MỘT bộ mã nguồn duy nhất rồi biên dịch ra nhiều nền tảng: Android, iOS, web, Windows, macOS và Linux, nhờ engine tự vẽ giao diện nên hiển thị nhất quán giữa các nền tảng. Phương án A mô tả cách phát triển native truyền thống, đúng là điều Flutter khắc phục; phương án B sai vì Flutter dùng Dart chứ không phải JavaScript; phương án D sai vì từ phiên bản 2 trở đi Flutter đã hỗ trợ chính thức cả web và desktop, không giới hạn ở di động.
55In Flutter architecture, which layer is responsible for rendering and uses C++ with Skia?4 lựa chọn
AFramework Layer
BEngine Layer
CEmbedder Layer
DWidget Layer
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Kiến trúc Flutter gồm ba tầng. Tầng Framework viết bằng Dart, chứa widget, hoạt ảnh, cử chỉ. Tầng Engine viết bằng C++, chịu trách nhiệm kết xuất đồ hoạ thông qua Skia (nay là Impeller), quản lý bố cục ở mức thấp, chạy Dart runtime và xử lý văn bản. Tầng Embedder gắn engine vào từng nền tảng cụ thể, lo vòng đời ứng dụng và sự kiện đầu vào. Vì câu hỏi nói tới việc kết xuất bằng C++ với Skia nên đó chính là Engine Layer; Widget Layer (D) là một phần con của Framework, không phải một tầng riêng.
A
KotlinB
SwiftC
DartD
JavaScriptLời giải
Mở trang câu hỏi này →Đáp án đúng: C. Flutter dùng ngôn ngữ Dart do chính Google phát triển. Dart phù hợp với Flutter nhờ hai chế độ biên dịch: JIT khi phát triển để hỗ trợ hot reload, và AOT khi phát hành để sinh mã máy chạy nhanh; kèm theo là mô hình đơn luồng với isolate và cơ chế thu gom rác tối ưu cho việc dựng cây widget liên tục. Kotlin (A) và Swift (B) là ngôn ngữ native của Android và iOS, chỉ xuất hiện trong Flutter khi cần viết platform channel; JavaScript (D) là ngôn ngữ của React Native, không phải Flutter.
AA cloud hosting service
BA physical server
CAn emulator or physical device
DA database management system
Lời giải
Mở trang câu hỏi này →Đáp án đúng: C. Để chạy và kiểm thử ứng dụng Flutter trên máy cá nhân, bạn cần một đích chạy thực sự: máy ảo Android, trình giả lập iOS hoặc một thiết bị vật lý kết nối qua USB - flutter devices sẽ liệt kê chúng. Dịch vụ lưu trữ đám mây (A) và máy chủ vật lý (B) là hạ tầng phía sau, không cần cho việc chạy ứng dụng di động cục bộ; hệ quản trị cơ sở dữ liệu (D) chỉ cần khi ứng dụng thực sự dùng tới, không phải điều kiện để khởi chạy.