Rõ ràng là Android đang được hàng triệu người trên thế giới yêu thích. Được tạo ra và phát triển bởi Google, lập trình Android sẽ là công việc đáng mơ ước của các chuyên viên phát triển phần mềm. Hiện nay, có rất nhiều cơ hội việc làm đòi hỏi bạn phải thành thạo về lập trình Android. Đây thường là những công việc có tính chuyên môn cao và mang lại mức lương và lợi ích tuyệt vời.
Tuy nhiên, trước khi để có thể nắm bắt được cơ hội việc làm với công việc này, bạn cần phải hiểu được Android là gì cũng như học lập trình Android. Sau đó, bạn phải sử dụng kiến thức và kỹ năng để vượt qua các câu hỏi phỏng vấn Android để có được công việc mơ ước đó.
Mục lục
- 1. Những nguyên tắc cơ bản về phát triển Android
- 1.1. Câu hỏi 1: Android là gì?
- 1.2. Câu hỏi 2: ‘application’ là gì?
- 1.3. Câu hỏi 3: Nơi lưu trữ GUI của Android được gọi là gì?
- 1.4. Câu hỏi 4: Định nghĩa ‘implicit’ và ‘explicit’
- 1.5. Câu hỏi 5: Liệt kê bốn lớp cảm biến Java
- 1.6. Câu hỏi 6: Có thể chạy Java trên Android bằng cách sử dụng bytecode tiêu chuẩn không?
- 1.7. Câu hỏi 7: Liệt kê một vài ưu điểm của hệ thống Android
- 1.8. Câu hỏi 8: ‘ContentProvider’ có nhiệm vụ gì?
- 1.9. Câu hỏi 9: Bytecode mà Android sử dụng là gì?
- 1.10. Câu hỏi 10: Sử dụng Adapter để làm gì?
- 2. Câu hỏi phỏng vấn Android nâng cao
- 2.1. Câu hỏi 1: Hai phương pháp lưu trữ dữ liệu chính trong Android là gì?
- 2.2. Câu hỏi 2: Sử dụng ‘intent’ như thế nào?
- 2.3. Câu hỏi 3: ‘activity’ là gì?
- 2.4. Câu hỏi 4: Các thành phần cốt lõi của hệ điều hành Android là gì?
- 2.5. Câu hỏi 5: ‘handlers’ sử dụng để làm gì?
- 2.6. Câu hỏi 6: Cơ sở dữ liệu tốt nhất cho các ứng dụng Android là gì?
- 2.7. Câu hỏi 7: Liệu hai ứng dụng Android khác nhau có thể chia sẻ cùng một Linux ID không?
- 2.8. Câu hỏi 8: DDMS là gì?
- 2.9. Câu hỏi 9: ‘ANR’ là gì?
- 2.10. Câu hỏi 10: Điểm khác biệt giữa ‘AsyncTask’ và ‘Thread’ là gì?
- 3. Kết luận
Những nguyên tắc cơ bản về phát triển Android
Đầu tiên, chúng ta hãy bắt đầu với “những câu hỏi cơ bản”.
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
EXCLUSIVE 25% OFF
On DataCamp Subscriptions
Follow the Datacamp promo code link & get an exclusive 25% OFF Datacamp subscriptions. Act now while the offer is still available!
Mặc dù những câu hỏi dưới đây là “cơ bản”, tuy nhiên bạn không nên chủ quan mà bỏ qua những kiến thức phổ thông này. Ngay cả khi bạn là một nhà lập trình Android có kinh nghiệm thì vẫn có một số khái niệm đơn giản nhưng lại rất khó để giải thích. Những câu hỏi cơ bản dưới đây định hướng cách trả lời dễ dàng hơn để đối phó với những tình huống khó khăn! Bạn sẽ được nhà tuyển dụng đánh giá cao vì điều đó, vì vậy hãy đừng bỏ những câu hỏi và câu trả lời phỏng vấn “cơ bản” về lập trình Android.
Câu hỏi 1: Android là gì?
Hầu hết trong các cuộc phỏng vấn, Android là gì có lẽ là câu hỏi đầu tiên. Khi trả lời, bạn không chỉ chứng minh rằng bạn biết Android là gì (về lý thuyết) mà còn phải thể hiện khả năng (sự hiểu sâu) bằng cách trình bày theo ngôn ngữ của bạn.
Định nghĩa một cách đơn giản, Android là một dịch vụ đ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ũ Google. Code của nó dựa trên nhân Linux nguồn mở và nó (Android) được thiết kế để chủ yếu được sử dụng trên các thiết bị màn hình cảm ứng, và là đối thủ lớn nhất của iOS.
Câu hỏi 2: ‘application’ là gì?
Application class (lớp Ứng dụng) có thể được coi là đường cơ sở của Android - đây là lớp chính chứa tất cả các yếu tố quan trọng khác cho các hoạt động và dịch vụ khác mà Android thực hiện. Lớp này được khởi tạo trước tiên trong Android sau khi chương trình được khởi chạy.
Câu hỏi 3: Nơi lưu trữ GUI của Android được gọi là gì?
Trước hết, trong các câu hỏi phỏng vấn Android, chúng ta hãy tìm hiểu ‘GUI’ là gì.
GUI nghĩa là Giao diện người dùng đồ họa (Graphical User Interface). 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.
GUI của Android được lưu trữ trong “Android SDK”. Để dễ dàng so sánh đó là gì, hãy tưởng tượng rằng bạn đang dự định làm việc ở trong vườn. Bạn cần thứ gì để làm vườn? Đó chính là công cụ. Các công cụ thường được lưu trữ ở đâu? Chính là nhà kho. Vậy khi học lập trình Android, Android SDK tương đương với một nhà kho - lưu trữ tất cả các công cụ cần thiết để nhà phát triển truy cập dễ dàng.
Đó là một câu trả lời mở rộng, nhưng nếu bạn càng mở rộng thêm trong các câu hỏi phỏng vấn Android thì bạn sẽ càng thể hiện được sự hiểu biết sâu hơn trước nhà tuyển dụng.
Câu hỏi 4: Định nghĩa ‘implicit’ và ‘explicit’
Ngoài các định nghĩa, bạn cũng có thể gặp rất nhiều câu hỏi phỏng vấn Android mang tính chất so sánh. Khi nói đến phần cơ bản, chúng đòi hỏi bạn phải so sánh một số biến Android rất cơ bản. Trường hợp này cũng tương tự như vậy.
Khi bạn ngụ ý một implicit intent (mục đích ngầm), 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. Mặt khác, explicit intent (mục đích rõ ràng) là khi 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 giản hóa, bạn chỉ cần ra lệnh cho hệ thống làm như bạn nói và chờ cho các lệnh được thực hiện.
Câu hỏi 5: Liệt kê bốn lớp cảm biến Java
Android sử dụng bốn lớp Java cụ thể dựa trên các cảm biến. Đó là: Sensor, SensorEvent, SensorEventListener, và SensorManager.
Câu hỏi 6: Có thể chạy Java trên Android bằng cách sử dụng bytecode tiêu chuẩn không?
Câu trả lời là không. Nếu nhà tuyển dụng đặt câu hỏi phỏng vấn Android này thì họ hầu hết sẽ hỏi một câu hỏi tiếp theo (thông thường sẽ là “Tại sao?”). Câu trả lời chỉ cần là Android dựa trên và sử dụng một loại bytecode đặc trưng và khác biệt.
Câu hỏi 7: Liệt kê một vài ưu điểm của hệ thống Android
Đối với những người đã học lập trình Android và hiểu Android là gì thì câu hỏi này sẽ được trả lời hoàn toàn dựa trên ý kiến, quan điểm cá nhân hay man tính chất chủ quan.
Tại sao các nhà tuyển dụng lại hỏi những câu hỏi như vậy? Đơn giản là họ muốn xem bạn đánh giá và ưu tiên gì khi nói về Android. Đây là một “câu hỏi mẹo” để kiểm tra xem bạn chỉ dùng kiến thức sẵn có trên internet hay thực sự bạn đầu tư suy nghĩ về điều đó
Vì câu trả lời mang tính chủ quan nên không có câu trả lời đúng hay sai cho kiểu câu hỏi phỏng vấn Android này. Tuy nhiên, hãy tham khảo một vài ví dụ từ quan điểm của nhiều người khác khi 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, v.v.
Câu hỏi 8: ‘ContentProvider’ có nhiệm vụ gì?
Lệnh này được sử dụng để truy cập các loại dữ liệu cụ thể có tổ chức và có cấu trúc. Bạn có thể xem nó như một loại phương tiện - nó kết nối các chuỗi mã với các chuỗi mã khác.
Câu hỏi 9: Bytecode mà Android sử dụng là gì?
Nếu bạn nhớ một trong những câu hỏi phỏng vấn Android trước đó (cụ thể là Câu hỏi 6), có lẽ bạn đã biết Android không thể sử dụng bytecode Java vì nó có mã riêng. Bytecode này được gọi là Dalvik Virtual Machine (DVS).
Câu hỏi 10: Sử dụng Adapter để làm gì?
Trong hệ thống Android, adapters (các bộ điều hợp) được sử dụng để kết nối AdapterView (bất kể thứ gì; tùy thuộc vào kịch bản cụ thể được sử dụng) với nguồn dữ liệu bên ngoài.
Câu hỏi phỏng vấn Android nâng cao
Bây giờ chúng ta có thể chuyển sang những câu hỏi phỏng vấn Android nâng cao. Tuy nhiên, có một điều nữa mà bạn nên biết trước khi tiếp tục đó là chúng sẽ sử dụng những thuật ngữ “nâng cao”.
Nếu bạn chưa từng tham gia một cuộc phỏng vấn việc làm để có được vị trí chuyên viên lập trình Android và chưa phải trả lời các câu hỏi phỏng vấn Android thì có thể sẽ khá khó hiểu. Có thể bạn sẽ nghĩ rằng thuật ngữ trong những câu hỏi phỏng vấn Android nâng cao là một cái gì đó rất hoành tráng - hoặc bạn sẽ phải viết một bài luận dài năm trăm trang về lý do tại sao Android là tốt nhất hoặc một cái gì đó tương tự. Tuy nhiên, đừng quá lo lắng về điều đó.
Trong phần này, với cụm từ “câu hỏi nâng cao”, chỉ đơn giản là nhà tuyển dụng muốn bạn thể hiện thêm một chút kiến thức chuyên sâu từ việc học lập trình Android của mình.
Bây giờ chúng ta hãy cùng bắt đầu với những câu hỏi phỏng vấn Android nâng cao.
Câu hỏi 1: Hai phương pháp lưu trữ dữ liệu chính trong Android là gì?
Các phương pháp này là Shared Preferences (Tùy chọn chia sẻ) và Internal Storage (Bộ nhớ trong). Tùy chọn chia sẻ chủ yếu được sử dụng để lưu trữ các cặp khóa-giá trị, đôi khi có thể là một hạn chế. Mặt khác, Bộ nhớ trong, 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ị.
Câu hỏi 2: Sử dụng ‘intent’ như thế nào?
Khi nói đến câu hỏi và câu trả lời phỏng vấn nâng cao của Android, một số câu hỏi sẽ có nhiều hơn một câu trả lời (trong hầu hết các trường hợp). Câu hỏi này cũng không phải ngoại lệ.
Có ba trường hợp phổ biến mà bạn sẽ sử dụng ‘intent’ (ý định): để khởi động thiết bị, bắt đầu một hoạt động cụ thể và bắt đầu phát sóng.
Câu hỏi 3: ‘activity’ là gì?
Đây là một ví dụ câu hỏi mẹo trong số câu hỏi phỏng vấn Android. Thực ra, đây là một câu hỏi rất đơn giản và dễ hiểu với một câu trả lời thậm chí còn đơn giản hơn - activity là vật chứa trong giao diện người dùng. Vậy tại sao nó lại được coi là câu hỏi nâng cao?
Như tôi đã đề cập trước đó, bạn nhất định sẽ thấy một số câu hỏi phỏng vấn Android mẹo trong buổi phỏng vấn. Nhà tuyển dụng thử làm bạn mất cân bằng việc ra câu hỏi siêu dễ. Hơn nữa, bạn sẽ ngạc nhiên khi có nhiều người lại gặp khó khăn khi định nghĩa ‘activities’ của Android.
Câu hỏi 4: Các thành phần cốt lõi của hệ điều hành Android là gì?
Tổng cộng có năm thành phần chính cần thiết cho Android là Activity (Hoạt động), Content Provider (Nhà cung cấp nội dung), Fragment (Phân đoạn), Intents (Ý định) và Services (Dịch vụ).
Câu hỏi 5: ‘handlers’ sử dụng để làm gì?
Trong Android, handlers (trình xử lý) được sử dụng phổ biến nhất để truyền thông giữa các luồng khác nhau. Điều này đặc biệt đúng trong kịch bản mà bạn sẽ sử dụng một trình xử lý để chuyển một hành động từ một luồng nền sang luồng chính.
Câu hỏi 6: Cơ sở dữ liệu tốt nhất cho các ứng dụng Android là gì?
Đây được coi là một trong những câu hỏi phỏng vấn Android nâng cao hơn là vì một là bạn biết được câu trả lời hoặc bạn hoàn toàn không biết gì.
Cơ sở dữ liệu nguồn mở tốt nhất cho các ứng dụng Android là SQLite.
Câu hỏi 7: Liệu hai ứng dụng Android khác nhau có thể chia sẻ cùng một Linux ID không?
Đối với câu hỏi phỏng vấn Android này, câu trả lời là có. Tuy nhiên, nó không chỉ xảy ra như vậy.
Để hai ứng dụng giữ Linux ID chung, cả hai sẽ phải ký cùng một certificate (chứng chỉ). Thêm vào đó, chúng cũng sẽ chia sẻ cùng một VP.
Câu hỏi 8: DDMS là gì?
DDMS viết tắt của Dalvik Debug Monitor Server (Máy chủ theo dõi gỡ lỗi Dalvik). Nó là một máy chủ theo dõi lỗi đi kèm với chính hệ điều hành Android. Nó có trách nhiệm theo dõi lỗi, cuộc gọi đến, SMS, giả mạo dữ liệu vị trí và - theo cách tự nhiên - gỡ lỗi.
Câu hỏi 9: ‘ANR’ là gì?
ANR hay Application Not Responding (Ứng dụng không phản ứng) là một cửa sổ bật lên mà chuyên viên lập trình Android sẽ nhận được nếu họ đã khởi xướng quá nhiều quá trình cùng một lúc. Đó là cách Android nói với bạn rằng hệ thống bị xung đột.
- Dễ sử dụng
- Cung cấp nội dung chất lượng
- Minh bạch giá cả
- Chứng chỉ miễn phí sau hoàn thành
- Tập trung vào các kỹ năng khoa học dữ liệu
- Thời gian học tập linh hoạt
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Khóa học chất lượng cao (ngay cả khóa miễn phí)
- Đa dạng tính năng
- Chương trình nanodegree
- Phù hợp với doanh nghiệp
- Chứng chỉ hoàn thành trả phí
- Được tạo dựng tốt trong ngành
- Đa dạng các tính năng để lựa chọn
- Các khóa học trình độ đại học
- Các khóa học trình độ đại học
- Phù hợp với doanh nghiệp
- Trả phí cho chứng chỉ hoàn thành
Câu hỏi 10: Điểm khác biệt giữa ‘AsyncTask’ và ‘Thread’ là gì?
AsyncTasks được sử dụng để làm việc với các quy trình chạy ngắn (tối đa 5 giây), trong khi threads (các luồng) xử lý các quy trình dài hơn.
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Kết luận
Trong phần hướng dẫn này, chúng tôi đã đưa ra các câu hỏi phỏng vấn Android cơ bản và nâng cao hơn mà bạn có thể trả lời được trong cuộc phỏng vấn xin việc.
Đây cũng mới chỉ là một phần trong hàng trăm (nếu không phải hàng ngàn) những câu hỏi phỏng vấn Android khác. Tuy nhiên, ít nhất là khi nói đến câu hỏi phỏng vấn Android thì những câu hỏi được cung cấp trong hướng dẫn này sẽ giúp bạn có được một số ý tưởng hay định hướng câu trả lời trong cuộc phỏng vấn của bạn.
Hãy cố gắng để gây ấn tượng với nhà tuyển dụng của bạn và là chính mình! Hãy cho họ thấy kỹ năng của bạn ra sao, kiến thức về lập trình Android như thế nào để có được một vị trí lập trình viên Android như mong đợi.