Ngày cập nhật 2024-04-27 23:17:43

Bộ câu hỏi phỏng vấn Android phổ biến và cách trả lời

Bộ câu hỏi phỏng vấn Android thường gặp nhất 2023 là những câu hỏi nào? Ứng viên muốn xin vào vị trí nhân viên fresher android, java android, android developer hay lập trình android studio,...thì nhất định không thể nào tránh được các câu hỏi dưới đây của nhà tuyển dụng trong buổi phỏng vấn sắp tới. Đọc ngay cùng Tanca để cập nhật nhanh những kiến thức bổ ích.

Bộ câu hỏi phỏng vấn Android về chuyên môn

Android la gi

Android là gì?

Đây là câu hỏi cơ bản và thường gặp nhất trong bộ câu hỏi phỏng vấn Android. Để trả lời câu hỏi đó, bạn không chỉ đưa ra định nghĩa chính xác của từng từ trong sách vở.

Khi bạn hiểu rõ khái niệm về android, nghĩa là bạn hiểu những điều cơ bản về công việc bạn làm, diễn đạt nó một cách rõ ràng và có ý nghĩa bằng ngôn ngữ của bạn.

Về cơ bản, Android là một hệ điều hành nguồn mở chủ yếu được sử dụng trên các thiết bị di động như điện thoại di động và máy tính bảng.

Đây là một hệ thống dựa trên nhân Linux với các thành phần phong phú cho phép các nhà phát triển di động tạo và chạy các ứng dụng có thể thực hiện cả chức năng cơ bản và nâng cao.

Android được ra mắt, phát triển bởi Google. Cho đến nay, Android và đối thủ của Apple iOS là hai hệ điều hành phổ biến nhất trên thế giới.

Application là gì?

Application hay cụ thể hơn là application class trong phát triển Android, là thuật ngữ dùng để chỉ lớp cơ sở trong một ứng dụng.

Lớp cơ sở này sẽ chứa tất cả các yếu tố quan trọng hỗ trợ tất cả các hoạt động và dịch vụ của Android. Khi hệ điều hành Android khởi động, application class là thứ đầu tiên được khởi tạo.

Context là gì?

Context trong Android là bối cảnh của trạng thái hiện tại của ứng dụng hoặc đối tượng ở trong môi trường hệ thống.

Context được cung cấp với dịch vụ như cấp quyền truy cập vào trong cơ sở dữ liệu và tùy chọn, giải quyết vấn đề tài nguyên,...

Có hai loại Context:

  • Activity Context: Context này có liên quan đến vòng đời của một hoạt động cụ thể. Loại context này được chọn sử dụng khi bạn chỉ cần thực hiện một hành động cố định, hoặc context bạn cần không liên quan đến hành động đó nhưng có vòng đời liên quan đến ngữ cảnh hiện tại.
  • Application context: Context này có liên quan đến vòng đời của một ứng dụng cụ thể. Application context có thể được sử dụng khi bạn cần một bối cảnh có vòng đời tách biệt với bối cảnh hiện tại hoặc khi bạn chuyển một bối cảnh nằm ngoài phạm vi của hoạt động.

Nêu sự khác biệt giữa “implicit” và “explicit”

Explicit (Intent)): Mục đích rõ ràng là nơi bạn cho hệ thống biết hành động hoặc thành phần hệ thống nào nó sẽ sử dụng để tạo phản hồi cho ý định đó.

Implicit(Intent): Ý định ngầm cho phép bạn khai báo hành động bạn muốn thực hiện, sau đó Android kiểm tra thành phần nào được đăng ký để xử lý hành động cụ thể đó.

Liệt kê ưu điểm của hệ thống Android?

Bốn lợi thế chính của Android để:

  • Android là mã nguồn mở nên miễn phí
  • Không giống với iOS, một hệ điều hành chỉ tích hợp với các thiết bị của Apple, còn Android là nền tảng độc lập, vì vậy nó hỗ trợ Windows, Linux và Mac.
  • Android hỗ trợ nhiều công nghệ khác nhau bao gồm Bluetooth, Thoại, Máy ảnh, Wi-Fi,...
  • Android sử dụng DVM, đây là một máy ảo đạt được mức độ tối ưu hoá cao.

Bytecode của hệ thống Android sử dụng là gì?

Rất nhiều tài liệu khi bạn tìm hiểu sẽ nói Android không sử dụng bytecode, nhưng thực chất Android không sử dụng bytecode chuẩn, mà có mã riêng - một loại bytecode đặc trưng và riêng của Android. Mã này được gọi là Dalvik Virtual Machine.

Phương thức onTrimMemory() nghĩa là gì?

OnTrimMemory() hiểu đơn giản là 1 phương thức được dùng khi hệ điều hành xác định đã đến lúc cắt bớt tiến trình không cần thiết chiếm dụng bộ nhớ trong khi hệ điều hành đang chạy.

Điều này thường xảy ra khi hệ thống đang chạy ẩn và không có đủ bộ nhớ để giữ nhiều tiến trình chạy ngầm cùng lúc khi cần.

Chẳng hạn, sẽ xảy ra trường hợp một tiến trình chạy ngầm và không đủ bộ nhớ để giữ đủ số lượng tiến trình chạy ngầm cần thiết, khi đó hệ thống sẽ dựa vào mức độ ưu tiên của tiến trình đó để cắt từng tiến trình đủ để giải phóng để hệ thống chạy ổn định.

“Content Provider” có chức năng gì?

ContentProvider là 1 lệnh trong android, lệnh này được dùng khi có nhu cầu truy xuất dữ liệu nhưng với điều kiện là dữ liệu này phải có tổ chức và cấu trúc cụ thể.

Hơn nữa, ContentProvider cũng có thể được coi là một cách để nối các chuỗi mã trong Android.

Sự khác biệt giữa margin và padding là gì?

Hãy xem xét hai đối tượng để xem xét và mỗi đối tượng sẽ có nội dung là nội dung chính bên trong và một đường viền bao quanh nó bên ngoài.

Padding sẽ là khoảng cách từ mép hiển thị đến nội dung chính bên trong mỗi đối tượng. Margin là khoảng cách giữa ranh giới của hai đối tượng.

Câu hỏi phỏng vấn Android Fresher: “Activity” là gì?

Mục đích của câu hỏi này không phải là để làm bạn bối rối mà là để kiểm tra kiến ​​thức cơ bản của bạn và xem liệu bạn có dễ bị bối rối khi đặt một câu hỏi đơn giản sau những câu hỏi mang tính kỹ thuật cao hay không.

Activity chỉ là một cửa sổ giao diện người dùng. Nó giúp hiển thị đầu ra và thậm chí có thể yêu cầu đầu vào để có thể thực hiện các hộp thoại và các vai trò khác để tạo giao diện người dùng.

Phương thức finalize() là gì?

Nó là một phương pháp lập trình hướng đối tượng, nó được gọi tự động khi một đối tượng bị hủy.

Đây được coi là một phương pháp tự động dọn dẹp các tài nguyên được liên kết với đối tượng nhưng không còn được sử dụng.

Đây là một tác vụ được gọi tự động và không được kiểm soát bởi người dùng.

Câu hỏi phỏng vấn lập trình android studio: GUI của Android lưu trữ ở đâu?

phong van ve Android

GUI (Giao diện người dùng đồ họa) là chữ viết tắt của Graphical User Interface. Nó là một công cụ giúp các nhà phát triển Android mô phỏng các tình huống nhất định và hiển thị chúng khi người dùng ứng dụng sẽ nhìn thấy chúng.

GUI Android được lưu trữ trong "SDK Android". Để dễ hiểu hơn, hãy tưởng tượng rằng bạn có định làm việc trong vườn. Những gì cần thiết cho làm vườn? Đây là một công cụ. Các công cụ thường được lưu trữ ở đâu? Đó là một nhà kho.

Đó là lý do tại sao khi học phát triển Android, Android SDK tương đương với một nhà kho - nó lưu trữ tất cả các công cụ cần thiết để các nhà phát triển có thể dễ dàng truy cập chúng.

Sự khác nhau của add và replace fragment trong backstack là gì?

Trước hết chúng ta cần định nghĩa fragment là gì? fragment có thể hiểu là một task quản lý không gian màn hình, khi đó một mảnh không gian sẽ thuộc về một activity.

Một Activity có thể có nhiều phân đoạn có thể được hiển thị cùng nhau trên cùng một màn hình hoặc xen kẽ. Và thêm một ý nữa, một Fragment nào đó cũng có thể được khai báo và sử dụng bởi nhiều Activity khác nhau.

Replace này thay thế fragment hiện có bằng đoạn mới. Điều này có nghĩa là đoạn trích cũ của bạn đã bị xóa khỏi backstack và không thể khôi phục được. Chỉ những cái mới có thể được tạo ra.

Add là thêm một đoạn mã mới lên trên đoạn mã hiện có, nghĩa là fragment hiện có sẽ hoạt động và các fragment bên dưới sẽ bị tạm dừng. Đoạn trích cũ có thể được khôi phục bằng cách nhấn nút back.

Các câu hỏi phỏng vấn Android Senior: Liệt kê các lớp cảm biến Java

Android Java Sensor bao gồm 4 lớp, cụ thể là: Sensor, SensorEvent, SensorEventListener và SensorManager.

Hình ảnh .png thông thường và nine-patch khác nhau như thế nào?

Nine-patch là 1 tài nguyên bitmap có thể thay đổi kích thước, nó được sử dụng làm các hình ảnh khác hoặc hình nền trên thiết bị của bạn.

Lớp Nine-patch cho phép mở rộng hình ảnh trên các màn hình khác nhau với 9 cách mở rộng: 4 góc, 4 cách và 1 lỗ trung tâm theo mọi chiều.

Nói một cách đơn giản, nine patch là một phần mở rộng png, với phần mở rộng tệp là 9.png.

Nêu những phương pháp lưu trữ dữ liệu chính

Nền tảng Android cung cấp cho người dùng nhiều tùy chọn lưu trữ dữ liệu, tùy vào nhu cầu của người dùng. Các tùy chọn lưu trữ là:

  • SharedPreference: Lưu trữ dữ liệu trong tệp XML
  • SQLite: Lưu trữ dữ liệu có cấu trúc ở trong cơ sở dữ liệu riêng
  • Bộ nhớ trong: Lưu trữ dữ liệu trong hệ thống tệp của thiết bị mà các ứng dụng khác không thể đọc được
  • Bộ nhớ ngoài: Lưu trữ dữ liệu trong hệ thống tệp nhưng tất cả các ứng dụng trên thiết bị đều có thể truy cập dữ liệu đó

Bitmap Pooling trong Android là gì?

Bitmap pooling trong Android là một kỹ thuật mà các nhà phát triển sử dụng để tái sử dụng các bitmap thay vì phải tạo các đối tượng bitmap mới mỗi lần. Sau khi được sử dụng trong bitmap đó, bạn có thể đặt nó trở lại stack ban đầu.

Kiểm tra xem bitmap stack có sẵn trong ngăn xếp bitmap không. Nếu không, bây giờ bạn cần tạo một bitmap sẵn.

Nêu định nghĩa về Adapter và chức năng

Nguồn dữ liệu ngoài được kết nối với dạng xem bộ điều hợp bằng liên kết bộ điều hợp.

Bộ điều hợp chịu trách nhiệm chuyển đổi bất kỳ dữ liệu nén nào thành một màn hình mà sau đó có thể được thêm vào bộ điều hợp (ListView/RecyclerView) để hiển thị.

Trình bày sự khác biệt giữa Serializable và Parcelable?

Serialization là quá trình chuyển đổi một đối tượng thành một luồng byte để lưu trữ đối tượng trong bộ nhớ để có thể tạo lại sau này nếu cần, trong khi vẫn giữ nguyên trạng thái và dữ liệu ban đầu của đối tượng.

Serializable là một giao diện Java tiêu chuẩn. Parcelable là một giao diện dành riêng cho Android, bạn phải tự thực hiện việc tuần tự hóa.

Tuy nhiên, Parcelable hiệu quả hơn nhiều so với Serializable (vấn đề với phương pháp Serializable là nó sử dụng sự phản chiếu và đó là một quá trình tương đối chậm. Cơ chế này cũng có xu hướng tạo ra nhiều đối tượng tạm thời và tiêu tốn tài nguyên khi bộ sưu tập rác phải thu thập tất cả chúng).

Xem thêm:

100 câu phỏng vấn Android cơ bản

cau hoi Android co ban

Dưới đây là những câu hỏi phỏng vấn cơ bản dành cho người mới và câu trả lời mà bạn có thể tham khảo:

Bạn hãy giới thiệu đôi nét về bản thân

Trong bất kỳ cuộc phỏng vấn nào cho bất kỳ vị trí nào, yêu cầu cung cấp một số thông tin về bản thân luôn là câu hỏi cơ bản và bắt buộc nhất.

Nhà tuyển dụng sẽ sử dụng câu hỏi này để bắt đầu cuộc phỏng vấn và tìm hiểu xem ứng viên có phù hợp hay không thông qua cách trình bày và hành vi.

Vì vậy, khi đối mặt với câu hỏi này, hãy nhớ trình bày rõ ràng, mạch lạc và cung cấp những thông tin chung về bản thân, nhưng lưu ý những thông tin này phải hữu ích với nhà tuyển dụng.

Đừng tìm hiểu quá sâu về những thứ như thói quen, sở thích hay kinh nghiệm làm việc không liên quan đến vị trí bạn ứng tuyển.

Ngoài một số thông tin cơ bản như tên, tuổi, ngành học, bạn hãy nói về những đặc điểm, kinh nghiệm, bằng cấp,… khiến bạn phù hợp với vị trí ứng tuyển.

Bạn cũng có thể nói ngắn gọn về con đường sự nghiệp mà bạn hướng tới. Hãy trình bày mọi thứ theo trình tự thời gian, logic rõ ràng và lý tưởng nhất là trong khoảng 1,5 đến 2 phút.

Cho chúng tôi lý do để chọn bạn

Câu hỏi này giúp nhà tuyển dụng hiểu bạn hiểu và định vị bản thân như thế nào, cũng như nghiên cứu và hiểu biết của bạn về vị trí và công ty bạn ứng tuyển.

Cả 2 yếu tố này đều rất quan trọng để xác định xem bạn có phải là ứng viên thực sự phù hợp với họ hay không. Và nếu được tuyển dụng, bạn có thể đóng góp gì cho công ty?

Mẹo để trả lời câu hỏi này là bạn cần trình bày đầy đủ hai luận điểm nêu trên. Hãy trả lời bằng cách kết hợp hai nội dung theo mẫu:

Vì vị trí này có đặc thù X, yêu cầu những phẩm chất/kỹ năng/kiến thức Y nên với những Z tôi có, tôi có thể đảm nhận và làm tốt công việc được giao.

Hoặc mình có thế mạnh về Z nên dễ dàng tìm được công việc yêu cầu Y như vị trí, công ty họ đang tìm.

Tuy nhiên, để có thể trả lời câu hỏi này một cách hoàn hảo, tốt nhất bạn nên có kiến ​​thức chuyên sâu về công việc cũng như các thông tin liên quan đến công ty như: lĩnh vực hoạt động, điểm mạnh, điểm yếu cũng như các văn hóa công ty. Sau đó xác định xem khả năng, tính cách và mục tiêu của bạn có phù hợp hay không.

Giữ nó trong tầm kiểm soát, phóng đại và cố gắng thể hiện bản thân một cách hoàn hảo có thể phản tác dụng hoàn toàn. Bạn không cần phải hoàn hảo, nhưng hãy cho họ biết bạn là người phù hợp nhất.

Làm như thế nào để giảm dung lượng file apk trong Android

  • Kích hoạt Proguard trong project của bạn.
  • Bật shrinkResources.
  • Xóa tất cả tài nguyên cục bộ không sử dụng bằng cách thêm tên tài nguyên được yêu cầu trong resConfigs.
  • Chuyển đổi tất cả hình ảnh sang webp hoặc vẽ vector.

Bạn có vấn đề nào cần chúng tôi giải đáp không?

Đây cũng là một câu hỏi rất phổ biến trong các cuộc phỏng vấn và thường là điểm mà nhiều người hay mắc lỗi khi trả lời. Tất nhiên, không có khuôn mẫu cụ thể nào ở đây, nhưng tốt hơn hết là bạn nên đặt những câu hỏi có ý nghĩa.

Đưa ra chủ đề này sẽ cho nhà tuyển dụng thấy rằng bạn rất quan tâm và muốn làm việc cho công ty này. Không những thế nó còn thể hiện sự tỉ mỉ và cẩn thận của bạn, bạn cẩn thận trong công việc mình muốn làm và bạn cũng hiểu được giá trị của mình.

Đừng quên rằng một cuộc phỏng vấn thích hợp không phải là sự soi xét một chiều của nhà tuyển dụng. Cùng với họ, bạn đang tìm kiếm ứng viên phù hợp, bạn cũng đang tìm kiếm công việc phù hợp, vì vậy bạn có quyền đặt câu hỏi và nhà tuyển dụng sẽ trả lời.

Nhưng hãy đặt những câu hỏi hợp lý, đưa ra những vấn đề không có trong cuộc phỏng vấn và thông tin trực tuyến, nếu không bạn sẽ không những không ghi được điểm cao hơn mà còn khiến nhà tuyển dụng cảm thấy như bạn đang thiếu đầu tư để tìm hiểu.

Kết luận

Trên đây là bộ câu hỏi phỏng vấn Android mới nhất 2023 mà chúng tôi muốn chia sẻ đến bạn. Tanca chân thành cảm ơn các bạn đã dành thời gian đọc bài viết này. Chúc các ứng viên sẽ thành công chinh phục được nhà tuyển dụng và có được một công việc cùng mức lương mong muốn.

Lê Thị Thuỳ Vi
Bài viết mới
Có thể bạn quan tâm