Rõ ràng là Android được hàng triệu người trên thế giới yêu thích. Lập trình Android, được tạo ra và phát triển bởi Google, là một công việc đáng mơ ước đối với các lập trình viên. Hiện nay, có rất nhiều cơ hội việc làm yêu cầu bạn phải làm quen với lập trình Android. Đây thường là những công việc mang tính chuyên môn cao mang lại mức lương và phúc lợi tuyệt vời. Hãy cùng freeC đi tìm hiểu những câu hỏi phỏng vấn android developer thường gặp nhé.
Các câu hỏi phỏng vấn Android developer thường gặp
Cho biết Android là gì?
Hầu hết trong các cuộc phỏng vấn, nhà tuyển dụng sẽ hỏi Android là gì trước tiên. Bạn cần trả lời đầy đủ, không chỉ giải đáp định nghĩa mà còn thể hiện sự hiểu biết sâu của bản thân thông qua ngôn từ diễn đạt dễ hiểu.
Nói một cách đơn giản, Android là hệ điều hành trên thiết bị di động, nó được tạo ra và phát triển bởi chính đội ngủ Google. Code của nó dựa trên nhân Linux nguồn mở và Android được thiết kế chủ yếu trên các thiết bị cảm ứng. Đối thủ lớn nhất của Android là IOS.
>>> Xem thêm Việc làm Android lương cao
Trình bày Application là gì?
Application trong lập trình Android là lớp cơ sở trong ứng dụng chứa tất cả các yếu tố quan trọng hỗ trợ cho các hoạt động và dịch vụ của android. Trước khi quy trình cho ứng dụng của bạn được khởi tạo, lớp hoặc bất kỳ các lớp con nào của nó cũng sẽ được khởi tạo trước.
Nơi Android lưu trữ GUI được gọi là gì?
GUI (Graphical User Interface) nghĩa là đồ họa giao diện người dùng. Nó là một công cụ giúp các nhà lập trình Android mô phỏng các kịch bản cụ thể nhất định và xem chúng theo hướng mà người dùng ứng dụng sẽ nhìn thấy.
>>> Tham khảo Top ngôn ngữ lập trình android phổ biến nhất hiện nay
Phân biệt “implicit” và “explicit”
Với implicit intent, giao diện Android sẽ kiểm tra hệ thống để biết các cài đặt có thể giúp bạn thực hiện nhiệm vụ của mình hay không. Còn với explicit intent (mục đích rõ ràng) là bạn chỉ định các thành phần mà hệ thống của bạn sẽ sử dụng trong khi thực hiện nhiệm vụ.
Nêu 4 lớp cảm biến của Java
Android sử dụng 4 lớp cảm biến của Java cụ thể như: Sensor, SensorEvent, SensorEventListener, và SensorManager.
Vì sao bytecode không chạy được trong Android?
Nếu nhà tuyển dụng đặt câu hỏi phỏng vấn Android developer này thì hầu hết họ sẽ hỏi tiếp là Tại sao. Bạn chỉ cần trả lời là Android dựa trên và sử dụng một loại bytecode đặc trưng và khác biệt.
Nêu một vài ưu điểm của hệ thống Android
Đây là câu hỏi mang tính chất tương đối nên sẽ không có đúng sai cụ thể. Tuy nhiên, hãy tham khảo từ một vài ý kiến khác nhau từ những người học lập trình Android về các tính năng tốt nhất như: Android là nguồn mở, được hỗ trợ bởi nhiều nhà phát triển phần cứng, dựa trên Java,…
Cho biết “Content Provider” có nhiệm vụ gì?
Lệnh này được sử dụng để truy cập các loại dữ liệu có tổ chức và có cấu trúc cụ thể. Nó có thể được xem như một loại phương tiện – kết nối các chuỗi mã với các chuỗi mã khác.
Android sử dụng Bytecode gì?
Ở câu trước đã có đề cập Android không sử dụng Bytecode vì nó có mã riêng. Mã đó được gọi là Dalvik Virtual Machine.
Adapter được sử dụng để làm gì?
Adapter được sử dụng để kết nối Adapterview với dữ liệu bên ngoài.
>>> Xem ngay Việc làm IT tại Hồ Chí Minh
Câu hỏi phỏng vấn Android developer nâng cao
Kể tên 2 phương pháp lưu trữ dữ liệu chính
- Internal Storage (Bộ nhớ trong) là nơi lưu trữ tất cả dữ liệu và thông tin riêng tư của nhà lập trình Android trong bộ nhớ trong của thiết bị.
- Shared Preferences (Tùy chọn chia sẻ) chủ yếu được sử dụng để lưu trữ các cặp khóa giá trị.
Cách sử dụng “intent”
Hầu hết các câu hỏi phỏng vấn android developer đều có nhiều hơn một câu trả lời, và câu này cũng không ngoại lệ. Chúng ta sử dụng “intent” trong ba trường hợp để khởi động thiết bị, bắt đầu một hoạt động cụ thể và bắt đầu phát sóng.
Cho biết “activity” là gì?
Thực ra, đây là một câu hỏi rất đơn giản và dễ hiểu, activity là vật chứa trong giao diện người dùng. Tuy nhiên nó lại được nhà tuyển dụng đưa vào câu hỏi nâng cao với mục đích làm bạn mất tập trung với câu hỏi dễ.
Cho biết các thành phần cốt lõi của Android
Hệ điều hành android có năm thành phần cốt lõi chính:
- Activity
- Content Provider
- Fragment
- Intents
- Services
Hai ứng dụng Android khác nhau có thể chia sẻ cùng một Linux ID hay không?
Câu trả lời là có. Tuy nhiên câu trả lời của bạn không nên chỉ có vậy. Mà cần phải thêm điều kiện đó là cả hai sẽ phải ký cùng một certificate(chứng chỉ) và chia sẻ chung một VP.
Một số câu hỏi phỏng vấn Android developer khác
- 4 Component chính trong Android là gì?
- Phân biệt Implicit và Explicit Intent.
- Phân biệt Service và IntentService.
- Trình bày LifeCycle của Activity.
- Trình bày LifeCycle của Fragment.
- Sự khác nhau của Activity và Fragment?
- Khi nào thì dùng Fragment, hãy cho ví dụ.
- Giải thích Back stack fragment manager.
- Giải thích dp, dpi, pt, sp trong Android.
- Cho biết công thức quy đổi giữa px và dp.
- Khi 1 activity đang chạy, ta nhấn nút Home thì activity đó đi vào những trạng thái nào?
- Khi 1 Activity đang chạy, ta chọn recent apps, quét qua để kill app đó thì activity đó đi vào những trạng thái nào?
- Khi 1 Activity đang chạy mà bị crash, activity đó đi vào trạng thái nào?
- Nếu thêm nhiều Fragment vào cùng 1 FrameLayout bằng FragmentManager thì thực tế hiển thị fragment nào, các fragment kia rơi vào trạng thái gì?
- Khi đang ở trong Activity, xoay màn hình thì Activity đi vào những trạng thái nào?
- Khi đang ở trong Activity, mở 1 AlertDialog thì activity đi vào những trạng thái nào?
- Tạo mới 1 Thread trong activity, khi mở activity mới thì Thread đó có còn chạy không?
- Tạo mới 1 AsyncTask trong activity, mở activity mới thì AsyncTask đó còn chạy không?
- MediaPlayer đang chạy trong, tạo mới activity khác, player đó còn chạy không?
- Giải thích về 4 launchmode:standard, singleTop, singleTask, singleInstance.
- Foreground và Background Service là gì, Bound service là gì?
- Phân biệt Serializable và Parcelable, cái nào tốt hơn?
- ANR là gì, khi nào nó xảy ra?
- So sánh LinearLayout và ConstrainLayout.
- Sự khác nhau giữ View.GONE và View.INVISIBLE.
- Liệt kê một số thư viện http đã dùng.
- Rest APIs là gì, tại sao lại dùng nó?
- Tại sao Android dùng db SQLite?
- Khi nào dùng SQL, khi nào dùng XML.
- Android Gradle là gì?
- Dependency injection là gì?
- Làm thế nào để upload 1 file ảnh trong máy Android lên server?
- Liệt kê, giải thích 4 tính chất OOP.
- MVVM, MVP, MVC là gì, khi nào dùng cái nào?
- Singleton dùng để làm gì?
- Khi nào dùng Interface hoặc Abstract Class.
- Immutable và mutable là gì?
- Tại sao Class String trong Java lại immutable
- Daemon Thread là gì?
- Android Garbage collection hoạt động như thế nào?
- Khi nào 1 object sẵn sàng for Garbage collection?
- Phân biệt StringBuilder và String.
- Phân biệt StringBuilder và StringBuffer.
- Liệt kê những trường hợp mà finally không được gọi.
- Java dùng pass-by-value hay pass-by-reference?
- Trình bày cách để break bên trong vòng lặp lòng nhau.
- Cách hoán đổi 2 số a và b mà không cần tạo thêm biến thứ 3.
Bài viết này đã tổng hợp một loạt các câu hỏi phỏng vấn android developer, từ cơ bản đến nâng cao. Tuy nhiên, đây chỉ là một trong hàng nghìn câu hỏi của các nhà tuyển dụng. Nhưng khi nói đến câu hỏi phỏng vấn Android, các câu hỏi được cung cấp trong bài viết này sẽ giúp bạn có một số ý tưởng hay và câu trả lời cho cuộc phỏng vấn. Hãy gây ấn tượng với nhà tuyển dụng của bạn và cố gắng là chính mình! Chúc bạn sẽ sớm có được công việc mơ ước này.
Bài viết liên quan: