Câu hỏi phỏng vấn Android Developer

69 Các câu hỏi phỏng vấn Android Developer được chia sẻ bởi các ứng viên

Bộ câu hỏi phỏng vấn về thông tin cá nhân

Hãy giới thiệu qua về bản thân bạn?

Đây là dạng câu hỏi phổ biến mà khi đi phỏng vấn xin việc bạn sẽ được hỏi. Bạn hoàn toàn có thể chuẩn bị và luyện tập trước ở nhà. Câu trả lời cần ngắn gọn, khoảng 2-3 phút. Bên cạnh đó, cũng cần phải đầy đủ với các thông tin cần thiết nhất cho nhà tuyển dụng, đặc biệt là kinh nghiệm liên quan đến vị trí PHP. 

Theo bạn, điểm mạnh điểm yếu của mình là gì?

Đây là phần mà các bạn sẽ tự đánh giá về bản thân mình để đưa điểm mạnh, điểm yếu. Dựa vào đó, nhà tuyển dụng sẽ có cái nhìn tổng quan nhất về con người, tính cách và có phù hợp với vị trí họ đang tuyển dụng cũng như văn hóa công ty hay không?  

Bạn biết gì về công ty chúng tôi?

Nhà tuyển dụng rất quan tâm đến việc bạn biết về công ty của họ như thế nào? Hơn hết họ biết được ứng viên có thực sự hiểu rõ về công ty và tìm hiểu trước khi tham gia phỏng vấn hay không. Bởi vậy, bạn nên tìm hiểu kỹ lưỡng về công ty và trình bày một số vấn đề liên quan như lĩnh vực hoạt động, văn hoá, quy mô hoạt động của công ty như thế nào?,..

Bạn có kinh nghiệm làm việc với các dự án lớn không?

Tùy vào quy mô của doanh nghiệp sẽ yêu cầu kinh nghiệm làm việc của bạn với các dự án lớn, điều này sẽ giúp gây ấn tượng trong mắt nhà tuyển dụng. Dù bạn đã là việc với dự án quy mô lớn hay nhỏ cũng đều nên thể hiện kỹ năng quản lý của mình và đưa ra các con số cụ thể. Ví dụ: “Tôi đã đứng đầu dự án A, một hệ thống quản lý dữ liệu cho một doanh nghiệp lớn. Công việc này đòi hỏi tôi phải làm việc với một nhóm đa dạng và đảm bảo rằng dự án hoàn thành đúng tiến độ và đạt chất lượng mong muốn."

Bạn thường xuyên làm việc nhóm hay làm việc độc lập?

Công ty muốn tìm hiểu về tính sẵn sàng làm việc độc lập hay làm việc nhóm của bạn. Bạn có thể chia sẻ mình đã có cả hai trải nghiệm: thường làm việc trong nhóm để chia sẻ kiến thức và ý tưởng, đặc biệt trong các dự án lớn và cũng rất thoải mái làm việc độc lập, đặc biệt khi cần tập trung vào việc giải quyết các vấn đề kỹ thuật phức tạp.

Bạn làm thế nào để theo kịp xu hướng công nghệ mới?

Bạn hãy thoải mái chia sẻ những phương thức mà bạn cảm thấy hứng thú khi tìm hiểu về các công nghệ mới như dành thời gian hàng ngày để đọc sách, tham gia vào cộng đồng trực tuyến và thử nghiệm các công nghệ mới hoặc tham gia các khóa học trực tuyến và sự kiện công nghệ để cập nhật thông tin mới nhất và học từ các chuyên gia trong ngành.

Các câu hỏi phỏng vấn thường gặp

Câu 1: Android là gì?

Android là một hệ điều hành mã nguồn mở dựa trên Linux được sử dụng trong các thiết bị di động như điện thoại thông minh, máy tính bảng, tivi,… Được Google phát hành lần đầu vào năm 2008, sau nhiều lần cập nhật thường xuyên định kỳ hàng năm, Android hiện đang trở thành nền tảng hệ điều hành điện thoại thông minh (smartphone) phổ biến nhất thế giới.

Android có một hạt nhân dựa trên nhân Linux; middleware, thư viện và API được viết bằng C; còn phần mềm ứng dụng chạy trên một nền tảng ứng dụng gồm các thư viện tương thích với Java. Nó sử dụng máy ảo Dalvik với một trình biên dịch động thường được biên dịch sang Java bytecode.

Câu 2: Lập trình Android sử dụng ngôn ngữ gì?

Hiện nay có nhiều cách để tạo ra các ứng dụng Android, có thể là native app, cross-platform app hay hybrid app. Đối với Native App chỉ những ứng dụng được viết bằng công cụ và SDK mà Google cung cấp cho lập trình viên, chúng ta có thể sử dụng ngôn ngữ lập trình Kotlin, Java hoặc C/C++ cho việc viết source code và phát triển phần mềm. Ngoài ra thì trong lập trình Android, để dựng giao diện ứng dụng chúng ta sử dụng ngôn ngữ XML; thao tác với cơ sở dữ liệu bằng hệ quản trị CSDL quan hệ SQLite. 

Android cung cấp công cụ phát triển chính thức dành cho lập trình viên bao gồm:

  • Android SDK (Software Development Kit) bao gồm ADB (Android Debug Bridge), Fastboot và gói ứng dụng Android (APK)
  • NDK (Native Development Kit): bộ công cụ giúp sử dụng code C/C++ trong Android
  • ART (Android Runtime) – một sự thay thế cho Dalvik là môi trường chạy ứng dụng Android
  • Android Studio: IDE môi trường phát triển tích hợp

Câu 3: Nêu vòng đời của một Activity trong Android

Activity là thành phần quan trọng nhất của ứng dụng Android, thông thường sẽ cung cấp một cửa sổ (window / frame) hiển thị các thành phần UI (giao diện người dùng) để tương tác. Mỗi Activity sẽ có một vòng đời cụ thể trong quá trình hoạt động tương ứng với những trạng thái cùng methods mà Android cung cấp:

  • Launched: trạng thái mà Activity được kích hoạt, hệ thống đẩy vào stack. Lúc này lần lượt các callback methods sẽ được gọi: onCreate, onStart và onResume.
  • Running: trạng thái Activity đang chạy, người dùng sẽ nhìn thấy UI của Activity và có thể tương tác với chúng. Trong lúc này, nếu có một Activity nào khác chiếm quyền hiển thị thì Activity của chúng ta sẽ callback method onPause. Lúc này nếu người dùng quay lại Activity thì method onResume sẽ được gọi, nếu Activity không được hiển thị lên nữa thì method onStop sẽ được gọi. Khi Actvity đã onStop, để mở lại Activity thì method onRestart sẽ được gọi.
  • Process Killed: Trong trường hợp Activity đang ở không được Active, hệ thống thiếu bộ nhớ để hoạt động thì Activity sẽ bị thu hồi (xử lý hủy) để giải phóng tài nguyên. Khi Activity được gọi lại thì nó sẽ call lại method onCreate.
  • Shutdown: Khi người dùng chủ động tắt ứng dụng thì Activity cũng kết thúc vòng đời của nó và call method onDestroy.

Câu 4: Fragment là gì? Khi nào sử dụng Fragment

Fragment là một thành phần độc lập trong Android, được sử dụng bởi một Activity, có thể hiểu như một sub-Activity. Fragment có vòng đời và UI riêng. Trong ứng dụng Android, tại một thời điểm thì chỉ có 1 Activity được hiển thị duy nhất lên màn hình; vì thế để đáp ứng cho các giao diện cần chia màn hình ra thành nhiều phần (ví dụ như dạng Tab) để sử dụng, chúng ta sử dụng Fragment cho bài toán này.

Nhiều fragment kết hợp với nhau trong một Activity để xây dựng giao diện đa cửa sổ và có thể tái sử dụng. Lợi ích khi sử dụng Fragment:

  • Có tính module hóa cao hơn
  • Quản lý tốt hơn cho vòng đời của một phần UI riêng biệt
  • Có khả năng tái sử dụng trong các Activity
  • Dễ dàng giải phóng dữ liệu, giảm chi phí bộ nhớ
  • Khả năng xử lý logic linh hoạt hơn nhờ khả năng chia sẻ dữ liệu giữa các Fragment trong cùng một Activity

Câu 5: Nêu các thành phần cơ bản xây dựng UI trong Android

Trong Android, để xây dựng giao diện người dùng (UI) chúng ta sử dụng thành phần cơ bản bao gồm View, ViewGroup và Layout. 

  • View là lớp cơ sở (class) của tất cả các thành phần giao diện được Android cung cấp sẵn như Button, TextView, CheckBox, RadioButton, ImageView,…
  • ViewGroup là một lớp trừu tượng (abstract) kế thừa từ View, nó cũng chính là View nhưng có khả năng chứa các View khác bên trong. 
  • Layout chính là các ViewGroup được xây dựng sẵn với mục đích chứa các View con cùng các điều khiển để sắp xếp vị trí cho các View đó hiển thị lên màn hình. Layout phổ biến sử dụng bao gồm: FrameLayout, ConstraintLayout, LinearLayout, RelativeLayout, GridLayout, TableLayout,…

Câu 6: Canvas là gì?

Canvas được xem như một bề mặt 2D để chúng ta có thể vẽ bất cứ thứ gì lên đó và hiển thị cho người dùng thấy. Chẳng hạn chúng ta có thể vẽ một điểm, một đường thẳng, một hình chữ nhật, đường tròn, elip hay thậm chí cả những hình ảnh phức tạp khác. Có rất nhiều bài toán mà chúng ta sử dụng đến Canvas khi mà nội dung chúng ta muốn hiển thị lên cho người dùng không thể biểu diễn được bằng các View sẵn có. 

Android cung cấp cho chúng ta những method để vẽ các đối tượng trong Canvas như sau:

  • Các đối tượng hình học cơ bản: Point, Line, Oval, React,…
  • Vẽ hình ảnh: Bitmap, Drawable
  • Vẽ tập hợp các điểm: Path
  • Vẽ Text

Câu 7: Làm sao hiển thị các nội dung dạng danh sách trong Android

ListView và RecycleView là 2 ViewGroup phổ biến sử dụng để hiển thị các nội dung dạng danh sách. ListView giúp hiển thị các thành phần (elements) theo dạng một danh sách có thể cuộn được theo chiều thẳng đứng và được sử dụng như một class cơ bản trong Android từ những phiên bản đầu tiên. RecycleView mới được giới thiệu trong Android L (API level 21) với sự mạnh mẽ và bổ sung nhiều chức năng hơn so với ListView.

RecycleView hỗ trợ scroll theo cả chiều ngang (horizontal) và chiều dọc (vertical); ngoài ra RecycleView.LayoutManager cho phép layout các item trong list theo dạng grid hay staggered grid. RecycleView còn nhiều hỗ trợ bổ sung đáng giá như Animation khi thêm hay xóa 1 item trong danh sách; hỗ trợ draw divider tùy ý. Thêm một cải thiện nữa là RecycleView bắt buộc sử dụng ViewHolder khi tạo một Adapter nhằm cải thiện performance của danh sách tốt hơn.

Câu 8: Broadcast Receiver là gì?

Broadcast Receiver là một trong 4 components lớn trong Android với nhiệm vụ lắng nghe các sự kiện, trạng thái của hệ thống phát ra ví dụ như có tin nhắn đến, hành động rút / cắm sạc, hành động bật/ tắt mạng,… từ đó ứng dụng của chúng ta sẽ xử lý các hành động tương ứng bên trong. Broadcast Receiver có thể hoạt động cả khi ứng dụng đang ở background mode và hay được sử dụng với Service.

Để thực thi được Broadcast Receiver, chúng ta cần phải đăng ký Broadcast trong file Android Manifest hoặc trong file Java (source code) của ứng dụng thông qua lớp IntentFilter tương ứng với từng hành động, sự kiện cụ thể xảy ra trên thiết bị. Chúng ta cũng có thể tự định nghĩa các Custom Broadcast Receiver để truyền thông điệp trong và ngoài ứng dụng mà chúng ta mong muốn. Ngoài ra, Android cũng cung cấp component Local Broadcast Receiver cho việc gửi thông điệp gói gọn trong project, không thông qua hệ thống nhằm tránh bị rò rỉ thông tin ra ngoài các ứng dụng khác.

Câu 9: Có những loại Service nào trong Android

Service cũng là một thành phần chính trong ứng dụng Android giúp chúng ta thực hiện các tác vụ cần nhiều thời gian, không có giao diện người dùng (UI) và không bị tắt khi đóng ứng dụng; chẳng hạn như download file từ Internet, chạy nhạc, đồng bộ dữ liệu lên cloud,…

Service được chia thành 3 loại:

  • Foreground Service: là những services mà người dùng chú ý và thấy rõ ràng như play music (người dùng có thể tương tác control nó). Một điều bắt buộc là Foreground Service phải hiển thị một Notification.
  • Background Service: những services mà người dùng không chú ý trực tiếp như thu gom bộ nhớ của hệ thống.
  • Bound Service: là những services được ràng buộc bởi một thành phần trong ứng dụng và khởi động nó bằng lời gọi bindService. Điều đó cũng có nghĩa là khi thành phần ràng buộc này tháo bỏ ràng buộc với service thì Service đó cũng bị destroy.

Câu 10: Hãy giải thích về kiến trúc MVP trong Android

MVP viết tắt bởi Model – View – Presenter là một kiến trúc phần mềm thường được đề xuất, khuyến nghị sử dụng trong các dự án Android. MVP được thiết kế để tạo điều kiện cho việc kiểm thử đơn vị tự động (Automated Unit Testing) và cải tiến Separation of Concerns (tách biệt thành phần) trong việc trình bày logic (presentation logic).

Với Android, MVP tách ứng dụng (cấu trúc source code) thành 3 tầng Model, View, Presenter và trong mỗi tầng đều được chia thành module nhỏ có vai trò riêng biệt. Tầng Presenter là nơi tập trung xử lý logic, cũng là cầu nối giữa Model và View. Đây là nơi theo dõi sự thay đổi của ứng dụng, các biến trạng thái và xử lý logic tương ứng. Presenter có phần giống với Controller trong mô hình MVC, dù vậy thì trong mô hình MVP, Model và View không hề liên kết với nhau mà tất cả phải qua Presenter.

Kinh nghiệm “đậu” phỏng vấn

Để buổi phỏng vấn diễn ra suôn sẻ và nắm chắc phần thành công, bạn cần chú trọng thêm các yếu tố:

Về trang phục

Trước khi đến buổi phỏng vấn, hãy tìm hiểu về văn hóa công ty và quy định về trang phục. Bất kể loại trang phục bạn chọn, hãy đảm bảo nó luôn gọn gàng và sạch sẽ. Quần áo không nứt rách, không bị nhăn, giày dép được làm sạch. Điều này thể hiện tôn trọng và sự chú ý đến chi tiết. Mặc dù quần áo nên trang nhã và chuyên nghiệp, nhưng bạn cũng cần cảm thấy thoải mái khi diện chúng. Mặc quần áo mà bạn cảm thấy tự tin và dễ chịu để bạn có thể tập trung vào buổi phỏng vấn.

Đối với nữ, áo sơ mi và váy hoặc quần âu là một sự lựa chọn tốt, bạn có thể kết hợp với kiểu tóc gọn gàng, trang điểm thanh lịch và phối hợp cùng các phụ kiện phù hợp với trang phục. Nam có thể lựa chọn áo sơ mi cùng quần âu với các màu sắc trung tính và hài hòa, hãy luôn nhớ cạo râu và để đầu tóc gọn gàng khi bước đi phỏng vấn. 

Về tác phong

Nên đến sớm 10 - 15 phút, để tránh trường hợp xảy ra các sự cố trên đường hay sự cố về trang phục. Những nhà tuyển dụng cũng thích những người đến sớm và có chuẩn bị tốt.

Tác phong chuyên nghiệp, giữ bản thân ở trạng thái bình tĩnh, lắng nghe câu hỏi phỏng vấn và lời lưu loát, rõ ràng. Hạn chế nói lắp, trả lời không rõ ràng, thiếu logic, mạch lạc

Tự tin giao tiếp

Tự tin trong việc nói về kinh nghiệm và khả năng của bạn là quan trọng. Hãy trình bày một cách rõ ràng và dễ hiểu. Lắng nghe câu hỏi kỹ lưỡng và trả lời một cách chắc chắn. Đảm bảo bạn hiểu rõ về kiến thức và kỹ năng yêu cầu cho vị trí bạn đang ứng tuyển như ngôn ngữ lập trình, framework, công cụ phát triển và các khái niệm liên quan,... Như vậy bạn sẽ có tự tin và thể hiện cách bạn suy nghĩ logic, phân tích vấn đề và đưa ra giải pháp hợp lý.

 

Câu hỏi phỏng vấn Android Developer & Cách trả lời

Dưới đây là 3 câu hỏi phỏng vấn Android Developer hàng đầu và cách trả lời chúng:

Câu hỏi #1: Android là gì?

Android là một hệ điều hành mã nguồn mở dựa trên Linux được sử dụng trong các thiết bị di động như điện thoại thông minh, máy tính bảng, tivi,… Được Google phát hành lần đầu vào năm 2008, sau nhiều lần cập nhật thường xuyên định kỳ hàng năm, Android hiện đang trở thành nền tảng hệ điều hành điện thoại thông minh (smartphone) phổ biến nhất thế giới.

Android có một hạt nhân dựa trên nhân Linux; middleware, thư viện và API được viết bằng C; còn phần mềm ứng dụng chạy trên một nền tảng ứng dụng gồm các thư viện tương thích với Java. Nó sử dụng máy ảo Dalvik với một trình biên dịch động thường được biên dịch sang Java bytecode.

Câu hỏi #2: 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.

Câu hỏi #3: Nêu các thành phần cơ bản xây dựng UI trong Android

Trong Android, để xây dựng giao diện người dùng (UI) chúng ta sử dụng thành phần cơ bản bao gồm View, ViewGroup và Layout. 

  • View là lớp cơ sở (class) của tất cả các thành phần giao diện được Android cung cấp sẵn như Button, TextView, CheckBox, RadioButton, ImageView,…
  • ViewGroup là một lớp trừu tượng (abstract) kế thừa từ View, nó cũng chính là View nhưng có khả năng chứa các View khác bên trong. 
  • Layout chính là các ViewGroup được xây dựng sẵn với mục đích chứa các View con cùng các điều khiển để sắp xếp vị trí cho các View đó hiển thị lên màn hình. Layout phổ biến sử dụng bao gồm: FrameLayout, ConstraintLayout, LinearLayout, RelativeLayout, GridLayout, TableLayout,…

Câu hỏi phỏng vấn

Android Developer được hỏi... 09/11/2023

Mong đợi của bạn khi ứng tuyển với vị trí Android Developer?

1 câu trả lời

Một trong những mong đợi quan trọng của tôi trong công việc mới là tính chất công việc phải phù hợp với sở thích và khả năng của tôi. Tôi muốn làm việc với đam mê để có sự cống hiến tối đa.

 

 

Android Developer được hỏi... 09/11/2023

Tại sao bạn lại ứng tuyển với vị trí Android Developer?

1 câu trả lời

Khi đưa ra câu hỏi về lý do ứng tuyển, nhà tuyển dụng mong muốn nghe về kinh nghiệm và thành tựu của bạn trong công việc tương đương, cho thấy bạn có khả năng thích nghi và đóng góp trong vị trí mới.

 

 

Android Developer được hỏi... 09/11/2023

Mức lương bạn mong muốn với vị trí Android Developer?

1 câu trả lời

Tránh việc tự đánh giá thấp bản thân bằng cách yêu cầu mức lương quá thấp. Điều này có thể làm mất đi lòng tin của nhà tuyển dụng về khả năng và giá trị của bạn.

 

 

Android Developer được hỏi... 09/11/2023

Mức lương ở công ty cũ của bạn với vị trí Android Developer?

1 câu trả lời

Khi tôi mới gia nhập công ty UVW, tôi nhận được mức lương khởi điểm là 6 triệu. Hiện tại, mức lương của tôi là 9 triệu.

 

 

Android Developer được hỏi... 09/11/2023

Bạn còn ứng tuyển cho công ty nào với vị trí Android Developer?

1 câu trả lời

Nếu bạn đang trong quá trình phỏng vấn và chờ kết quả, hãy chia sẻ điều này với người phỏng vấn một cách chân thành và không che giấu thông tin.

 

 

Android Developer được hỏi... 09/11/2023

Lý do nào sẽ khiến bạn từ bỏ công việc ngay trong tháng đầu tiên với vị trí Android Developer?

1 câu trả lời

Tôi luôn cố gắng tìm kiếm cơ hội để học hỏi và phát triển. Tuy nhiên, nếu tôi cảm thấy môi trường làm việc không thể cung cấp cơ hội phát triển đủ cho tôi hoặc không tạo ra môi trường làm việc tích cực, tôi sẽ phải cân nhắc đưa ra quyết định phù hợp để đảm bảo rằng mục tiêu nghề nghiệp của tôi được đạt đến một cách tốt nhất.

 

 

Android Developer được hỏi... 08/11/2023

Mục tiêu nghề nghiệp của bạn với vị trí Android Developer?

1 câu trả lời

Tôi thấy chính tôi như là một nhân viên với sự thể hiện dẫn đầu ở một công ty có nền tảng vững vàng như công ty của ông/bà. Tôi có kể hoạch ở việc trau dồi những kỹ năng; và không ngừng cố gắng để làm tốt công việc.

 

 

Android Developer được hỏi... 09/11/2023

Bạn có thể làm được gì cho chúng tôi với vị trí Android Developer?

1 câu trả lời

Tôi sở hữu kỹ năng bán hàng vượt trội và khả năng xây dựng mối quan hệ mạnh mẽ với khách hàng. Điều này cho phép tôi tận dụng vốn kiến thức của mình cùng với kỹ năng giao tiếp khá tốt.

 

 

Android Developer được hỏi... 09/11/2023

Điểm mạnh của bạn với vị trí Android Developer?

1 câu trả lời

Một cách quan trọng để ứng tuyển thành công là phải biết làm thế nào để kết nối các thế mạnh của bạn với vị trí công việc. Đừng ngần ngại trình bày các ví dụ cụ thể để chứng minh điều này.

 

 

Đang xem 61 - 69 trong 69 câu hỏi phỏng vấn