Top 30+ câu hỏi phỏng vấn Android developer thường gặp và câu trả lời

Blog / Tin công nghệ 05/11/2022
phong-van-android
Phụ lục

Khi bạn đi phỏng vấn vị trí lập trình Android thì bạn nên chuẩn bị một số câu hỏi phỏng vấn Android để có tâm lý vững vàng cho buổi phỏng vấn. Trước khi bước vào buổi phỏng vấn hãy đọc lại một lần. Dưới đây là một số câu hỏi phỏng vấn android sẽ xuất hiện trong buổi phỏng vấn lập trình Android. Cùng nắm rõ những câu hỏi sẽ xuất hiện trong buổi phỏng vấn nhé!

Android là gì?

Android là dịch vụ dùng để điều hành trên thiết bị di động. Như đề cập lúc đầu, nó được tạo ra và phát triển bởi đội ngũ nhân viên của Google. Code nó được thiết kế dựa trên nhân Linux nguồn mở và Android được thiết kế chủ yếu để sử dụng trên các thiết bị màn hình cảm ứng, đây cũng là một đối thủ lớn của IOS. 

Application là gì?

Lớp Application trong Android là lớp cơ sở có trong ứng dụng Android nó chứa tất cả các component khác như activity và service. 

Context là gì?

Context là ngữ cảnh của trạng thái hiện tại của ứng dụng hoặc là các đối tượng trong môi trường hệ thống. Context thường đi kèm với các dịch vụ như cấp quyền truy cập vào cơ sở dữ liệu và tùy chọn, giải quyết tài nguyên và hơn thế nữa. 

Tại sao bytecode lại không thể chạy được trong Android?

Do Android dựa trên và sử dụng một loại bytecode đặc trưng và khác biệt. 

Ưu điểm của Android là gì?

Android có 4 ưu điểm chính đó là:

  • Android có mã nguồn mở, do đó nó miễn phí
  • Khác với IOS là hệ điều hành chỉ thích hợp với các thiết bị của Apple, Android có sự độc lập riêng với nền tảng, do đó nó hỗ trợ cả Windows, Linux, Mac.
  • Android còn hỗ trợ một số công nghệ khác nhau, như Bluetooth, giọng nói, …
  • Android sử dụng DVM, đó là một máy ảo có mức độ tối ưu hóa cao. 

“Implicit” và “explicit” có sự khác biệt gì?

Với Implicit 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 riêng với explicit là bạn chỉ định các thành phần mà hệ thống của bạn sẽ sử dụng khi thực hiện nhiệm vụ. Câu hỏi dạng này thường sẽ xuất hiện trong những bài test về câu hỏi phỏng vấn android developer. 

Nhiệm vụ “ContentProvider” là gì?

ContentProvider được sử dụng để truy cập vào các dữ liệu có tổ chức và có cấu trúc cụ thể. Nó được xem như một loại phương tiện để kết nối các chuỗi mã này với các chuỗi mã khác. 

GUI lưu trữ ở đâu?

GUI được lưu trữ trong Android SDK. 

Liệt kê các lớp cảm biến Java

Có 4 lớp cảm biến Java được Android sử dụng:

  • Sensor
  • SensorEvent
  • SensorEventListener
  • SensorManager

Phương pháp lưu trữ dữ liệu chính là gì

Phương pháp lưu trữ dữ liệu chính là Shared Preferences( tùy chọn chia sẻ) và Internal Storage( bộ nhớ trong). Tùy chọn chia sẻ được sử dụng chủ yếu là lưu trữ các cặp khóa - giá trị, đôi khi là một hạn chế. Bộ nhớ trong thường lưu trữ tất cả các dữ liệu và thông tin riêng tư của nhà lập trình Android trong bộ nhớ. 

Garbage collector là gì?

Các đối tượng đa số được phân bổ trên vùng heap do JVM quản lý. Khi đó đối tượng tham chiếu đang được sử dụng và JVM sẽ cho rằng nó còn sống. Và khi một đối tượng không còn được tham chiếu và 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ó ngay và lấy lại bộ nhớ chưa được sử dụng. 

Finalize() được hiểu như thế nào?

Finalize() là một phương thức đượ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ì?

Finally là một đoạn code được sử dụng để đặt những dòng code quan trọng mà bạn mong muốn nó được thực thi dù ngoại lệ có được xử lý hay là không?

BuildType trong Gradle là gì? Mục đích của nó?

Build định nghĩa thuộc tính mà Gradle sử dụng khi xây dựng và đóng gói một ứng dụng Android. 

  • Build type xác định cách một module được xây dựng trong Gradle
  • Product flavor xác định được những gì sẽ được tạo ra
  • Gradle tạo ra một build variant cho mọi tổ hợp có thể có được từ product flavor và build type trong dự án

Quá trình build một ứng dụng trong Android như thế nào. 

Phân biệt Service, Intent Service, AsyncTask và Thread

  • Service là thành phần được sử dụng để thực hiện các tác vụ ở background. Nó không có giao diện người dùng và nó có thể chạy được ở trong background vô thời hạn ngay cả khi ứng dụng bị hủy. 
  • Async Task cho phép bạn thực hiện các công việc bất đồng ở background thread và publish kết quả trên UI thread mà không yêu cầu bạn phải xử lý
  • IntentService là một dạng Service để xử lý lần lượt các yêu cầu bất đồng bộ ở background thread. Client sẽ gửi yêu cầu thông qua việc gọi tới startService, không yêu cầu bạn phải động tới việc xử lý thread/ handler
  • Thread là một luồng thực thi tuần tự trong một trương trình. 

Job Scheduling trong Android là gì?

Job Scheduling API cho phép chúng ta lên lịch công việc trong khi hệ thống sẽ thực hiện công việc tối ưu hóa dựa trên bộ nhớ, nguồn và trạng thái kết nối của Android. Nó hỗ trợ lập lịch biểu các công việc, hệ thống Android có thể kết hợp các công việc này để giảm lượng tiêu thụ pin.

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

onTrimMemory() là thời điểm tốt để xử lý bộ nhớ không cần thiết từ một tiến trình của nó. 

Serializable và Parcelable có sự khác biệt gì?

Serializable nghĩa là một standard Java interface. Parcelable là một interface cụ thể có trong Android. Nhưng Parcelable có hiệu quả hơn nhiều so với Serializable.

Sự khác biệt của add / replace fragment trong backstack?

  • Replace loại bỏ fragment hiện đang có và thêm một fragment mới. Việc này có nghĩa là khi bạn quay lại, fragment được thay thế sẽ khởi tạo lại với onCreateView của nó được gọi. 
  • add giữ lại các fragment hiện có và thêm một fragment mới đề lên chúng.

Tại sao cần truyền các tham số vào Fragment thông qua Bundle?

Là do khi hệ thống khôi phục một fragment, nó sẽ tự không phục bundle của bạn. Dựa theo cách này, đảm bảo được rằng trạng thái của fragment sẽ được khôi phục một cách chính xác về đúng trại thái fragment. 

Retained fragment là gì?

Fragment sẽ bị hủy và tạo lại cùng với parent Activity của chúng khi thay đổi cấu hình xảy ra. Lời gọi tới phương thức setRetaininstance( true) cho phép chúng ta bỏ qua quá trình “hủy - và - tái tạo”, báo hiệu cho hệ thống bạn muốn giữ lại instance hiện tại của fragment khi activity được tạo đó là Retained fagment. 

FragmentPagerAdapter và FragmentStatePagerAdapter có sự khác biệt gì?

  • FragmentPagerAdapter: fragment của mỗi trang được người dùng truy cập sẽ được lưu trữ trong bộ nhớ và view của nó sẽ bị hủy. Khi trang được hiển thị lại, chỉ view được tạo còn instance của fragment sẽ không được tạo lại. 
  • FragmentStatePagerAdapter: instance của fragment sẽ bị phá hủy khi không còn hiển thị cho người dùng nữa, ngoại trừ saved state của nó. 

Margin & padding có sự khác biệt gì?

Padding là khoảng không gian được thêm vào bên trong của container. Còn margin sẽ được thêm vào khoảng không gian bên ngoài container.

View Group là gì? Nó khác View như thế nào?

  • View là các khối giao diện cơ bản của User Interface (UI) trong Android. View là hộp hình chữ nhật đơn giản, có thể phản hồi hành động của người dùng. 
  • View Group là container vô hình. Có thể chứa View và ViewGroup.  

Sự khác nhau giữa.png thông thường và nine-patch là gì?

Nine - patch cho vẽ một bitmap trong chín bộ phận. Bốn góc không scale được, phần giữa của hình ảnh sẽ được scale theo cả hai trục, bốn cạnh được scale trên một trục. 

Khi nào chúng ta nên sử dụng FrameLayout?

FrameLayout thiết kế để chứa một item duy nhất, khiến cho chúng trở thành lựa chọn hiệu quả bạn cần hiển thị một View duy nhất. Nếu thêm nhiều View vào FrameLayout thì chúng sẽ chồng lên nhau, do đó FrameLayout rất hữu ích trong trường hợp bạn cần View. 

Adapter là gì?

Adapter chịu trách nhiệm chuyển đổi từng data entry và View và có thể thêm vào AdapterView (ListView/ RecyclerView) cho hiển thị. 

Tóm tắt lại quá trình tạo một custom View.

  • Tạo lớp là Subclass của View
  • Tạo file res/ value/ attrs.xml và định nghĩa những thuộc tính bạn muốn sử dụng với View đó. 
  • Tạo một constructor và khởi tạo các đối tượng của Paint, lấy các thuộc tính có trên. 
  • Ghi đè onSizeChanged() hoặc onMeasure
  • Vẽ View bằng cách ghi đè onDraw()

Mô tả ngắn gọn một số cách để có thể tối ưu hóa View usage.

  • Cài đặt ứng dụng của bạn trên thiết bị Android sau đó bật tùy chọn Debug GPU Overview. 
  • Kiểm tra hệ thống phân cấp view bằng công cụ Hierarchy Viewer bằng Android Studio.
  • Ước lượng thời gian mỗi View cần hoàn thành quá trình measure, layout và giai đoạn draw. 



Bitmap pooling trong Android?

Bitmap pooling là một kỹ thuật đơn giản nhằm mục đích sử dụng lại bitmap thay vì tạo một đối tượng bitmap mới cho mỗi lần cần.

Sự khác biệt giữa commit() và apply() trong SharedPreferences là gì?

  • Commit() ghi dữ liệu một cách đồng bộ và trả về giá trị boolean thành công hay thất bại tùy thuộc vào kết quả.
  • apply() hoạt động một cách đồng bộ và nó sẽ không trả về bất kỳ giá trị của một boolean nào. 
  • Cạnh đó, nếu có apply() chưa được hoàn thành và bạn thực hiện một commit() khác thì commit() sẽ bị chặn cho đến lúc apply() được hoàn tất. Hiệu năng của apply sẽ nhanh hơn commit vì xử lý được việc lưu trữ dữ liệu một cách bất đồng bộ.

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

Đầu tiên chúng ta bật Proguard trong project của bạn. Tiếp theo bật shrinkResources. Rồi loại bỏ tất cả các tài nguyên cục bộ không được sử dụng, bằng biện pháp thêm tài nguyên cần thiết trong resConfigs. Và cuối cùng chuyển đổi tất cả các hình ảnh sang dạng webp hoặc vector drawable.

S.O.L.I.D principles trong phát triển phần mềm.

S.O.L.I.D principles trong phát triển phần mềm bao gồm:

  • The Single Responsibility Principle (SRP)
  • The Open - Closed Principle (OCP)
  • The Liskov Substitution Principle (LSP)
  • The Interface Segregation Principle (ISP)
  • The Dependency Inversion Principle (DIP)

Devwork đã cùng bạn tìm hiểu top 30+ câu hỏi phỏng vấn Android developer thường gặp và câu trả lời. Chúng tôi hy vọng những thông tin này sẽ hữu ích với bạn. Và nếu bạn đang quan tâm đến lĩnh vực tuyển dụng thì đừng bỏ qua Devwork - Nền tảng tuyển dụng IT kết nối HR Freelancer.

Devwork

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :

  • Tối ưu chi phí
  • Tiết kiệm thời gian
  • Tăng tốc tuyển dụng tối đa
  • Đăng ký ngay Devwork trong hôm nay để tuyển dụng những tài năng ưu tú nhất.

    Tag Cloud:

    Tác giả: Lê Thị Ngọc Anh

    Link chia sẻ

    Bình luận

    Việc làm tại Devwork

    khám phá các cơ hội việc làm tốt nhất tại Devwork Xem thêm

    Bài viết liên quan

    Danh sách bài viết liên quan có thể bạn sẽ thích Xem thêm
    cach-fake-ip-tren-may-tinh

    Cách fake IP trên máy tính: Hướng dẫn đơn giản, ai cũng làm được

    09:03 08/07/2025

    Sử dụng cách fake địa chỉ IP trên máy tính giúp bạn tăng cường quyền riêng tư, ẩn danh khi lướt web và truy cập được các nội dung bị giới hạn theo vùng. Vậy làm thế nào để thực hiện chuyển IP một cách nhanh chóng và hiệu quả? Bài viết dưới đây từ Devwork sẽ hướng dẫn bạn cách fake IP trên máy tính đơn giản, dễ làm và hoàn toàn miễn phí....

    Top phần mềm cắt ghép ảnh trên máy tính đẹp, tốt nhất hiện nay

    08:55 08/07/2025

    Bạn đang tìm kiếm một phần mềm cắt ghép ảnh trên máy tính để biến những bức hình đơn điệu thành tác phẩm nghệ thuật? Giữa vô vàn lựa chọn trên thị trường, việc tìm ra phần mềm chân ái cho mình không hề dễ. Đừng lo lắng, bài viết này của Devwork sẽ giúp bạn khám phá top các phần mềm ghép ảnh trên máy tính tốt nhất hiện nay, đáp ứng mọi nhu cầu từ cá nhân đến công việc. Cùng theo dõi ngay nhé!

    phan-mem-cat-ghep-anh-tren-may-tinh

    Top 7 phần mềm cắt ghép ảnh trên điện thoại đẹp, dễ dùng nhất

    08:51 08/07/2025

    Chỉnh sửa ảnh không còn là “đặc quyền” của dân thiết kế chuyên nghiệp. Với sự phát triển của các phần mềm cắt ghép ảnh trên điện thoại, ai cũng có thể tạo nên những bức ảnh ấn tượng chỉ trong vài phút. Dù bạn dùng iPhone hay Android, chỉ cần vài cú chạm là có ngay ảnh đẹp như ý muốn. Bài viết này Devwork sẽ giới thiệu đến bạn những ứng dụng dễ dùng và đang được yêu thích nhất hiện nay!

    phan-mem-cat-ghep-anh-tren-dien-thoai

    Top 5 phần mềm đọc PDF miễn phí, nhẹ và hiệu quả nhất 

    07:11 07/07/2025

    Trong thời đại số hiện nay, tài liệu định dạng PDF đã trở thành một phần không thể thiếu trong công việc và học tập. Tuy nhiên, để có trải nghiệm xem và tương tác với file PDF một cách hiệu quả, việc sở hữu một phần mềm đọc PDF phù hợp là điều cực kỳ quan trọng. Bài viết này của Devwork sẽ giúp bạn khám phá những phần mềm để đọc PDF tốt nhất, đầy đủ tính năng để bạn dễ dàng lựa chọn ứng dụng ưng ý.

    phan-mem-doc-pdf
    kiem-tra-toc-do-mang-internet

    Cách kiểm tra tốc độ mạng Internet chính xác và nhanh chóng nhất

    07:01 07/07/2025

    Mạng Internet chập chờn, tải chậm, video giật lag không chỉ gây khó chịu mà còn ảnh hưởng trực tiếp đến công việc, học tập và giải trí mỗi ngày. Việc kiểm tra tốc độ mạng Internet là bước đơn giản nhưng cần thiết để xác định nguyên nhân và tìm giải pháp cải thiện chất lượng kết nối. Bài viết này Devwork sẽ hướng dẫn bạn các cách kiểm tra tốc độ mạng chính xác, dễ thực hiện và hiệu quả ngay tại nhà, đồng thời gợi ý mẹo nhỏ giúp đường truyền ổn định hơn.

    cach-chup-man-hinh-may-tinh-dell

    Cách chụp màn hình máy tính Dell đơn giản cho mọi phiên bản Windows

    06:57 07/07/2025

    Muốn lưu lại một đoạn hội thoại quan trọng, hướng dẫn kỹ thuật, hay chỉ đơn giản là khoảnh khắc hài hước trên màn hình – chụp màn hình máy tính Dell là thao tác không thể thiếu. Trong bài viết này, Devwork sẽ hướng dẫn bạn từng bước để chụp màn hình máy Dell một cách chuyên nghiệp, từ phím tắt đến công cụ hỗ trợ. Hãy cùng chúng tôi tìm hiểu ngay trong bài viết dưới đây nhé!