Lập trình viên Android là một công việc đòi hỏi trình độ chuyên môn cao với mức lương hấp dẫn. Bởi vậy, trong buổi phỏng vấn, nhà tuyển dụng sẽ đưa ra nhiều loại câu hỏi để chọn ứng viên phù hợp nhất. Dưới đây là tổng hợp một số câu hỏi phỏng vấn Android thường gặp đang được các nhà tuyển dụng đặt cho ứng viên.
Câu hỏi phỏng vấn Android về thông tin cá nhân
Đầu tiên khi tham gia phỏng vấn với nhà tuyển dụng thường đưa ra một số câu hỏi để làm quen cũng như để bạn giới thiệu bản thân mình.
Bạn hãy giới thiệu chung về bản thân mình?
Câu hỏi này là để bạn giới thiệu kỹ hơn về bản thân, qua đây nhà tuyển dụng sẽ nắm thông tin cá nhân của bạn. Với câu hỏi này bạn cần đưa ra những thông tin cần thiết như họ tên, quê quán, sơ lược quá trình học tập và kinh nghiệm làm việc.
Bạn đã lập gia đình hay còn độc thân
Tuỳ vào từng vị trí công việc cụ thể mà nhà tuyển dụng sẽ chọn ứng viên đã có gia đình hay chưa. Cũng có nhiều nhà tuyển dụng quan tâm đến điều này vì những người đã có gia đình thường chỉnh chu, nghiêm túc và gắn bó lâu dài với công việc của mình hơn những người độc thân.
Tạo CV ngay
Các câu hỏi phỏng vấn giới thiệu giúp nhà tuyển dụng hiểu rõ hơn về ứng viên
Câu hỏi phỏng vấn lập trình viên Android phổ biến
Bạn hiểu Android là gì?
Android là một hệ điều hành dành cho thiết bị di động (như điện thoại thông minh, máy tính bảng) được phát triển bởi Google và được phát hành lần đầu vào năm 2008. Android được xây dựng trên nền tảng Linux và sử dụng ngôn ngữ lập trình Java để phát triển ứng dụng.
Application là gì?
Application là lớp cơ sở trong ứng dụng Android chứa tất cả các component như activity và service. Các lớp này sẽ được khởi tạo trước bất kỳ lớp nào khác khi process cho ứng dụng của bạn được khởi tạo.
GUI trong Android là gì?
GUI (Graphical User Interface) trong Android là giao diện người dùng được hiển thị trên màn hình của thiết bị di động. GUI cho phép người dùng tương tác với các chức năng và tính năng của ứng dụng.
GUI trong Android bao gồm các thành phần như: Layouts, Views, Widgets, Menus.
Garbage collector là gì?
Tất cả các đối tượng được phân bổ trên vùng heap do JVM quản lý. Khi đối tượng tham chiếu tới đang được sử dụng, JVM sẽ coi rằng nó còn sống. Khi một đối tượng không còn được tham chiếu và do đó không thể truy cập được bằng code trong ứng dụng thì trình thu gom rác sẽ loại bỏ nó và lấy lại bộ nhớ không sử dụng.
Bạn đang muốn ứng tuyển vị trí Lập trình viên Android?
Tìm việc Android Developer
Tại sao nói Java độc lập về nền tảng?
Khi thực hiện code java không phụ thuộc và hệ điều hành(OS)
Câu hỏi phỏng vấn Android fresher
Implicit và Explicit khác nhau như thế nào?
Đối với câu hỏi phỏng vấn Andoid này, câu trả lời như sau:
Implicit intent sẽ kiểm tra hệ thống Android về các cài đặt có thể giúp thực hiện nhiệm vụ hay không. Trong khi đó, Explicit intent sẽ chỉ định các phần mềm hệ thống được sử dụng khi thực hiện nhiệm vụ.
Bạn có biết về 4 lớp cảm biến của Java không?
Android hỗ trợ nhiều loại cảm biến khác nhau, nhưng mặc định sẽ có sẵn 4 lớp cảm biến của Java sau đây: Accelerometer, Gyroscope, Magnetometer, LightSensor.
Các lớp này được định nghĩa trong package android.hardware và có thể được sử dụng để thu thập dữ liệu từ các cảm biến trên thiết bị Android.
Hãy giải thích lý do ở trong Android không thể chạy được bytecode?
Android không thể chạy trực tiếp bytecode của Java vì kiến trúc của Android khác với kiến trúc của các máy ảo Java truyền thống. Thay vào đó, Android sử dụng Dalvik Virtual Machine (DVM) để chạy ứng dụng.
Phương thức finalize() được hiểu như thế nào?
finalize() là phương thức sử dụng để thực hiện quá trình “clean up” trước khi garbage collector thu thập lại.
Finally là gì?
Đây là một đoạn code được sử dụng để đặt những dòng code quan trọng mà bạn muốn nó được thực thi dù ngoại lệ có được xử lý hay không?
Bên cạnh những câu hỏi khó, ứng viên sẽ được hỏi một số kiến thức căn bản
Hãy nêu một số ưu điểm của Android theo nhận định của bạn?
Câu hỏi phỏng vấn Android này hướng đến góc nhìn cá nhân của ứng viên. Tuy nhiên, bạn có thể tham khảo một số ưu điểm của Android như là nguồn mở, sử dụng ngôn ngữ lập trình Java, được sự hỗ trợ từ nhiều nhà phát triển phần cứng,…
Bytecode của Android là gì?
Bytecode của Android là một mã riêng, có tên gọi là Dalvik Virtual Machine. Để chạy ứng dụng trên Android, mã nguồn Java phải được biên dịch thành mã byte code của Dalvik, được gọi là Dalvik Executable (DEX) file.
Content Provider có nhiệm vụ gì trong Android?
Đây là một lệnh dùng để truy cập dữ liệu có tổ chức, có cấu trúc cụ thể. Lệnh này cũng có thể là phương tiện giúp kết nối các chuỗi mã với nhau.
ThreadPool là gì? Sử dụng nhiều Thread riêng biệt liệu có hiệu quả hơn ThreadPool?
Việc tạo và huỷ các thread có mức sử dụng CPU cao nên chúng ta cần thực hiện nhiều tác vụ đơn giản, nhỏ. Chi phí để tạo ra các thread riêng rẽ có thể chiếm một phần đáng kể chu kỳ CPU và ảnh hưởng nghiêm trọng đến thời gian đáp ứng cuối cùng.
ThreadPool bao gồm một hàng đợi nhiệm vụ và một nhóm các worker thread cho phép nó chạy nhiều instance một cách song song của một tác vụ.
Câu hỏi về kiến thức chuyên môn của ứng viên
Câu hỏi phỏng vấn Android Senior nâng cao
Đối với những vị trí lập trình viên Android từ Senior trở lên, người phỏng vấn cũng có thể đặt thêm một vài câu hỏi nâng cao hơn. Ví dụ như:
Bạn biết những phương thức lưu trữ dữ liệu nào?
Với câu hỏi phỏng vấn Android này, bạn có thể trả lời 2 phương thức lưu trữ chính như sau:
- Shared Preferences - tùy chỉnh chia sẻ, được sử dụng để chủ yếu lưu trữ cặp khóa giá trị.
- Internal Storage - bộ nhớ trong, nơi mà Android developer lưu trữ các dữ liệu, thông tin riêng tư.
Những thành phần cốt lõi của Android gồm những gì?
Hiện tại, Android gồm có 5 thành phần cốt lõi gồm Intents (Ý định), Activity (hoạt động), Fragment (phân đoạn), Content Provider (nhà cung cấp nội dung), Services (dịch vụ).
Intent được sử dụng trong trường hợp nào?
Intent có thể được sử dụng trong nhiều trường hợp khác nhau, bao gồm:
- Chuyển đổi giữa các màn hình hoặc hoạt động trong ứng dụng Android.
- Khởi động một hoạt động trong ứng dụng khác trên thiết bị.
- Gửi và nhận thông tin giữa các ứng dụng trên thiết bị. Ví dụ như chia sẻ ảnh hoặc tệp âm thanh với ứng dụng khác.
- Đăng ký các dịch vụ của ứng dụng hoặc hệ thống và gọi các dịch vụ này khi cần thiết.
- Xử lý các thông báo được gửi đến thiết bị.
Bộ câu hỏi phỏng vấn lập trình viên Android từ dễ đến khó
Activity được định nghĩa như thế nào?
Activity được định nghĩa là một lớp Java, được kế thừa từ lớp android.app.Activity. Mỗi Activity đại diện cho một màn hình trên thiết bị, được định nghĩa trong tệp tin XML của nó.
Activity được quản lý bởi hệ thống Android thông qua các sự kiện tương tác với người dùng.
Bạn có thể chia sẻ một Linux ID cho 2 ứng dụng Android khác nhau không?
Đối với câu hỏi phỏng vấn Android này, bạn trả lời như sau:
Để đảm bảo tính bảo mật và độ tin cậy của hệ thống, các ứng dụng Android được cô lập một cách chặt chẽ và không thể chia sẻ cùng một Linux ID.
Trình xử lý - Handlers trong Android được sử dụng để làm gì?
Trình xử lý - Handlers trong Android được sử dụng để truyền thông các luồng với nhau. Đặc biệt khi trong kịch bản của bạn có sử dụng trình xử lý để chuyển hành động từ luồng bất kỳ sang luồng chính.
Theo bạn, cơ sở dữ liệu nào tốt nhất cho các ứng dụng Android?
Câu trả lời của câu hỏi phỏng vấn Android này như sau:
Hiện nay, có nhiều loại cơ sở dữ liệu được sử dụng phổ biến trong các ứng dụng Android. Tuy nhiên, theo thống kê, SQLite đang là cơ sở dữ liệu nguồn mở được đánh giá tốt nhất hiện nay.
Các câu hỏi phỏng vấn Android Senior
ANR trong Android là gì?
ANR - Application Not Responding, là ứng dụng không phản ứng. Đây là một cửa sổ bật lên nếu khi Android developer đang khởi xướng nhiều trình cùng một lúc. Hay, là cách hệ thống Android báo với bạn rằng có sự xung đột xảy ra.
Một số câu hỏi thường gặp khi phỏng vấn Android
Bên cạnh những câu hỏi phỏng vấn Andoid trên, khi phỏng vấn Android, bạn có thể gặp cũng sẽ được hỏi một số câu hỏi khác. Ví dụ như sau:
- Điểm khác biệt của Service và IntentService?
- Trình bày LifeCycle Fragment và Activity?
- Activity và Fragment khác nhau như thế nào?
- Hãy nói về một công thức để quy đổi giữa px - dp?
- Back stack fragment manager được hiểu là gì?
- LinearLayout và ConstraintLayout khác nhau như thế nào?
- So sánh View.GONE và View.INVISIBLE?
- Cách để upload file ảnh trong điện thoại dùng Android lên server là gì?
Các câu hỏi test kỹ năng cho ứng viên lập trình
Lý do vì sao chúng tôi phải lựa chọn bạn với vị trí lập trình Android?
Bản chất của câu hỏi này nhà tuyển dụng muốn ứng viên khẳng định họ có thể giúp được cho doanh nghiệp. Với câu hỏi này bạn hãy khẳng định mình có đủ kiến thức và am hiểu chuyên sâu về Android, cách lập trình ra những chương trình, ứng dụng thu hút khách hàng tiềm năng. Ngoài ra, bạn cũng có đủ tự tin để có thể khắc phục được các lỗi thường xảy ra với hệ điều hành Android. Ngoài ra, bạn là một người đam mê, yêu nghề bạn sẽ có thể gắn bó và cố.
Các câu hỏi phỏng vấn Android Senior
Đối với mọi lập trình viên Android, việc trả lời thành công các câu hỏi phỏng vấn không chỉ đánh dấu sự chuyên nghiệp mà còn thể hiện sự hứng thú và đam mê với ngành công nghệ thông tin. Hy vọng rằng bài viết trên đã giúp bạn nắm bắt thông tin cần thiết và chuẩn bị tốt cho cuộc phỏng vấn của mình. Chúc bạn thành công trong sự nghiệp lập trình Android!