بروز ترین و کامل‌ترین سوالات استخدامی اندروید در کدایت

تیم کدایت سوالات استخدامی اندروید را با مطالعه ، تحقیق و دقت نظر زیاد جمع آوری کرده و امیدواریم که ذره ای در فرایند استخدامی شما سهیم باشیم.  اندروید یک سیستم عامل متن‌باز مبتنی بر لینوکس است که توسط گوگل توسعه یافته است به طور خلاصه یک سیستم عامل قدرتمند، انعطاف‌پذیر و قابل‌اعتماد است که به انتخابی محبوب برای کاربران دستگاه‌های هوشمند تبدیل شده است.

ما در این بخش قصد داریم مجموعه ای از سوالات استخدامی اندروید که در جلسات مصاحبه استخدامی ، از متقاضیان در فیلد برنامه نویس اندروید پرسیده می‌شود در قالب یک مقاله کامل از سوالات استخدامی اندروید برای شما عزیزان انتشار دهیم.

چرا نمی توان bytecode استاندارد جاوا را در اندروید اجرا کرد؟

نمی توان bytecode استاندارد جاوا را به طور مستقیم در اندروید اجرا کرد زیرا اندروید از Dalvik Virtual Machine (DVM) به جای Java Virtual Machine (JVM) استاندارد استفاده می کند. DVM یک ماشین مجازی سفارشی است که برای دستگاه های تلفن همراه با منابع محدود بهینه شده است و از فرمت bytecode خاص خود به نام DEX (Dalvik Executable) استفاده می کند. bytecode جاوا باید قبل از اجرا در دستگاه اندروید به DEX تبدیل شود.

استفاده از DVM مزایای متعددی دارد، از جمله: 1-عملکرد و کارایی بهتر 2-سازگاری با پلتفرم اندروید 3-امنیت 

آیا برنامه‌های اندروید فقط می‌توانند با جاوا برنامه‌ریزی شوند؟

خیر ُ در حالی که جاوا زمانی تنها زبان برای توسعه اندروید بود، Google با معرفی Kotlin به عنوان یک زبان برنامه‌نویسی رسمی دیگر در سال 2017، چشم‌انداز را گسترش داد. Kotlin به سرعت محبوبیت خود را به دست آورده است و به دلیل مختصر بودن، ایمن بودن و قابلیت تعامل بیشتر با جاوا، به عنوان رقیبی قدرتمند برای جاوا تبدیل شده است.

علاوه بر کاتلین ُ ++C  نیز برای توسعه برنامه‌های عملکردی بالا مانند بازی‌ها و موتورهای رندرینگ گرافیکی محبوب است. در حالی که ++C به طور مستقیم توسط Android SDK پشتیبانی نمی‌شود، می‌توان از آن با استفاده از NDK (Native Development Kit) برای ایجاد کتابخانه‌های بومی استفاده کرد.

زبان‌های دیگر مانند Python و JavaScript نیز می‌توانند با استفاده از ابزارهای مناسب برای توسعه اندروید استفاده شوند. به عنوان مثال، Kivy یک چارچوب توسعه چند پلتفرمی است که به شما امکان می‌دهد برنامه‌های اندروید را با استفاده از Python بنویسید. React Native یک چارچوب دیگر است که به شما امکان می‌دهد برنامه‌های اندروید را با استفاده از JavaScript بسازید.

 و یک نکته مهم دیگه هم این است که در طول پاسخ خودتان، حتماً از اصطلاحات فنی مرتبط با توسعه اندروید مانند Kotlin، C++، NDK، Kivy و React Native استفاده کنید.و اگر تجربه کار با هر کدوم را دارید در پاسخ خود حتما به آن اشاره کنید.

Component های برنامه اندروید شامل چه مواردی است ؟

یک برنامه اندروید از چندین جزء کلیدی تشکیل شده است که با هم کار می کنند تا یک تجربه کاربری روان و قدرتمند را برای کاربران به ارمغان بیاورند. درک این اجزا برای هر کسی که به توسعه برنامه های اندرویدی علاقه مند است، ضروری است.

کامپوننت های برنامه اندروید شامل 4 جزء اصلی هستند 

  • فعالیت (Activity): اکتیویتی، بخش اساسی یک برنامه اندروید است که رابط کاربری (UI) یک صفحه خاص را کنترل می کند. به عبارت دیگر، هر صفحه ای که در برنامه اندروید می بینید، یک Activity است. یک Activity دارای یک طرح (layout) است که با استفاده از فایل های XML طراحی شده و شامل عناصر بصری مانند دکمه ها، متن ها، تصاویر و غیره می شود.

  • سرویس (Service): برخلاف Activity ها که با رابط کاربری کار می کنند، سرویس ها برای انجام وظایف طولانی مدت در پس زمینه طراحی شده اند. آن ها به طور مستقل از Activity ها عمل می کنند و کارهایی مانند پخش موسیقی در پس زمینه، همگام سازی داده ها با سرور یا حتی دانلود فایل ها را انجام می دهند.

  • پذیرنده پخش (Broadcast Receiver): این جزء به برنامه شما امکان می دهد رویدادهای سیستمی را که در سطح کل دستگاه رخ می دهند، دریافت کند. نمونه هایی از این رویدادها شامل دریافت تماس، پیام کوتاه (SMS)، تغییر اتصال شبکه یا حتی سطح پایین باتری می شود.

  • ارائه دهنده محتوا (Content Provider): این جزء به برنامه شما امکان می دهد داده ها را با برنامه های دیگر به اشتراک بگذارد. Content Provider یک واسط است که به برنامه های دیگر اجازه می دهد تا به طور ایمن به داده های برنامه شما دسترسی پیدا کنند.

تفاوت بین Service و Activity چیست ؟

نحوی کار هر دو Component در سوال بالا آورده شده است به طور خلاصه :

از اکتیویتی ها برای ساخت رابط کاربری و مدیریت تعامل کاربر استفاده کنید. از سرویس ها برای انجام وظایف در پس زمینه که نیازی به تعامل مستقیم کاربر ندارند استفاده می‌شود. به طور مثال :

فرض کنید در حال ساخت یک برنامه پخش موسیقی هستید.

  • یک اکتیویتی برای نمایش لیست آهنگ ها و کنترل پخش ایجاد می کنید.
  • از یک سرویس برای پخش موسیقی در پس زمینه در حالی که کاربر با برنامه تعامل دیگری دارد استفاده می کنید.

Intent را در اندروید توضیح دهید

Intent یک پیام رسان در اندروید هست که به اجزای مختلف برنامه (Activity ها، Service ها، Broadcast Receiver ها و …) اجازه میده تا با هم ارتباط برقرار کنند و داده ها رو به اشتراک بذارن.

تفاوت بین Explicit Intent و Implicit Intent چیست؟

Explicit Intent: برای راه اندازی یک Activity خاص یا اجرای یک Service خاص استفاده میشه. فرض کنید می‌خواهیم از Activity فعلی به Activity دیگری به نام “SecondActivity” برویم.

Implicit Intent: برای انجام یک اقدام خاص، مثل باز کردن یک URL یا به اشتراک گذاشتن متن، از یه برنامه خاص یا هر برنامه ای که قابلیت انجام اون کار رو داره استفاده میشه. فرض کنید می‌خواهیم متنی را با استفاده از هر برنامه‌ای که می‌تواند این کار را انجام دهد (مانند پیام‌رسان، ایمیل و …) به اشتراک بگذاریم.

مقالات تکمیلی : Intent ها در اندروید چیست ؟

مفهوم Action در اندروید

در اندروید، “Action” یک عنصر کلیدی در سیستم Intent است که به عنوان یک رشته متنی عمل می‌کند و نوع عملیاتی را که یک Intent می‌تواند انجام دهد، مشخص می‌کند. Intentها به عنوان پیام‌رسان‌های بین اجزای مختلف سیستم اندروید عمل می‌کنند و “Action” به عنوان نوع عملیاتی که Intent باید انجام دهد، عمل می‌کند.

به عنوان مثال در نظر بگیرید که برنامه‌ای دارید که URLها را باز می‌کند. برای ارسال Intent برای باز کردن یک URL، می‌توانید از کد زیر استفاده کنید

همانطور که در مثال بالا مشاهده میکنید اکشن ما  “ACTION_VIEW ” است که نشان می‌دهد Intent باید یک URL را باز کند.

معماری اندروید شامل چه لایه های است؟

معماری اندروید از لایه‌های مختلفی تشکیل شده که هر کدام وظایف خاص خود را دارند.

لایه های معماری اندروید که یکی از سوالات استخدامی اندروید می باشد

لایه های معماری اندروید

به طور خلاصه، این لایه‌ها عبارتند از:

1. هسته لینوکس: مدیریت منابع سخت‌افزاری  مانند پردازنده، حافظه و دستگاه‌های ورودی/خروجی را بر عهده دارد.

2. لایه Framework: ارائه APIها برای ساخت برنامه‌های اندرویدی مانند Activityها، Viewها، Servicesها، Broadcast Receiversها و Content Providersها می‌شود.

3. کتابخانه‌های اندروید: ارائه کدهای جاوا برای وظایف رایج مانند دسترسی به شبکه، کار با مکان، تجزیه و تحلیل JSON و نمایش تصاویر ارائه می‌دهند.

4. برنامه‌های اندرویدی: برنامه‌هایی که توسط کاربر نصب و اجرا می‌شوند.

5. Runtime: Runtime محیطی را فراهم می‌کند که در آن برنامه‌های اندرویدی می‌توانند اجرا شوند

این سوال یکی از سوالات مهم از مجموعه سوالات استخدامی اندروید است ،  سعی کنید با مطالعه بیشتر از منابع دیگر تسلط بیشتری بر آن داشته باشید .

ADB چیست ؟

یکی از سوالات مهم از سوالات استخدامی اندروید می‌باشد. ADB مخفف Android Debug Bridge است که ابزاری قدرتمند برای تعامل با دستگاه‌های اندرویدی است. این ابزار به شما امکان می‌دهد:

نحوی کار با ADB در اندروید از سوالات استخدامی اندروید

ADB چگونه کار می‌کند

  • دستگاه خود را از طریق USB به رایانه خود متصل کنید
  • فایل‌ها را بین دستگاه و رایانه خود انتقال دهید
  • دستورات ADB را اجرا کنید
  • دستگاه خود را روت کنید

فرگمنت در اندروید چیست؟

فرگمنت‌ها واحدهای ساختاری modulare هستند که به شما امکان می‌دهند رابط کاربری برنامه اندرویدی خود را به بخش‌های مجزا و قابل استفاده مجدد تقسیم کنید. هر فرگمنت می‌تواند شامل طرح‌بندی، کد و منطق خاص خود باشد و می‌توان آن را به صورت پویا به اکتیویتی‌ها اضافه، حذف و جایگزین کرد. به تعریفی دیگر فرگمنت در واقع بخشی از اکتیویتی است (Sub Activity) و بخشی از رابط کاربری را تشکیل می‌دهد و دارای چرخه حیات و رفتار خاص خود است .

مزایای استفاده از فرگمنت‌ها در اندروید:

  • ماژولار بودن
  • قابلیت استفاده مجدد
  • انعطاف‌پذیری
  • مدیریت چرخه حیات

تفاوت‌های Serializable و Parcelable در اندروید

وقتی صحبت از جابجایی اشیا بین اجزای برنامه (app components) می شود، Serializable و Parcelable دو گزینه هستند. با این حال، Parcelable انتخاب کارآمدتر است. در حالی که Serializable یک روش عمومی و کندتر است، Parcelable مختص اندروید است و انتقال سریعتر داده بین اجزا را تضمین می کند و عملکرد کلی را بهبود می بخشد.

انتخاب بین Serializable و Parcelable به نیازهای خاص شما بستگی دارد:
  • اگر به سرعت و کارایی نیاز دارید، از Parcelable استفاده کنید.
  • اگر به انعطاف‌پذیری بیشتر نیاز دارید و می‌خواهید کنترل بیشتری بر فرآیند marshalling داشته باشید، از Serializable استفاده کنید.

SDK اندروید چیست و چه ابزارهایی در آن قرار دارند؟

SDK اندروید (Software Development Kit) مجموعه‌ای از ابزارها و منابعی است که توسط گوگل برای توسعه برنامه‌های اندرویدی ارائه می‌شود. این ابزارها به توسعه‌دهندگان امکان می‌دهد تا برنامه‌هایی را بسازند که با سیستم عامل اندروید کار کنند و به ویژگی‌ها و قابلیت‌های آن دسترسی داشته باشند.

ابزارهای اصلی موجود در SDK اندروید عبارتند از:
  • Android Studio: محیط توسعه یکپارچه (IDE) رسمی برای اندروید است که شامل ویرایشگر کد، ابزارهای اشکال‌زدایی، شبیه‌ساز و موارد دیگر می‌شود.
  • Android Debug Bridge (ADB): ابزاری برای اشکال‌زدایی و مدیریت دستگاه‌های اندرویدی است.
  • Android Emulator: شبیه‌سازی از دستگاه اندرویدی را ارائه می‌دهد که می‌توانید برای تست برنامه خود بدون نیاز به دستگاه فیزیکی از آن استفاده کنید.
  • Android SDK Platform Tools: شامل ابزارهایی برای ساخت، کامپایل و اشکال‌زدایی برنامه‌های اندرویدی است.
  • Android SDK Build Tools: شامل ابزارهایی برای ساخت و بسته‌بندی برنامه‌های اندرویدی است.
  • Android NDK (Native Development Kit): به توسعه‌دهندگان اجازه می‌دهد تا با استفاده از زبان‌های برنامه‌نویسی C و C++ برنامه‌های اندرویدی بسازند.
  • Google APIs: به توسعه‌دهندگان امکان می‌دهد تا به خدمات گوگل مانند نقشه، مکان‌یابی و پرداخت در برنامه‌های خود دسترسی داشته باشند.
  • Android SDK Libraries: شامل کتابخانه‌های جاوا و Kotlin است که برای توسعه برنامه‌های اندرویدی commonly used می‌شوند.
  • Android SDK Resources: شامل تصاویر، نمادها و سایر منابعی است که می‌توانید در برنامه‌های خود از آنها استفاده کنید.
  • Android Documentation: شامل اسناد و آموزش‌هایی برای کمک به توسعه‌دهندگان در یادگیری نحوه استفاده از SDK اندروید است.
ابزارهای فرعی موجود در SDK اندروید عبارتند از:
  • Gradle: یک سیستم ساخت است که به خودکارسازی فرآیند ساخت برنامه‌های اندرویدی کمک می‌کند.
  • Jetpack: مجموعه ای از کتابخانه‌های Android است که توسط گوگل توسعه یافته و نگهداری می‌شود.
  • Kotlin: یک زبان برنامه‌نویسی است که برای توسعه برنامه‌های اندرویدی به طور فزاینده‌ای محبوب می‌شود.

شما با خواندن  مطالب بالا ، که یکی از سوالات مهم از سوالات استخدامی اندروید است می‌توانید جوابی کاملی در مورد این سوال  به  فرد مصاحبه کننده بدهید .

مقالات تکمیلی :  SDK چیست ؟

خطای ANR Notification چیست ؟

ANR مخفف “Application Not Responding” به معنای “برنامه پاسخگو نیست” است. این یک پیام خطا در سیستم عامل اندروید است که زمانی رخ می دهد که رابط کاربری (UI) یک برنامه برای مدت زمان قابل توجهی (معمولاً 5 ثانیه یا بیشتر) مسدود شده باشد و به ورودی کاربر پاسخ ندهد.

خطای ANR Notification در اپلیکیشن های اندرویدی از سری سوالات استخدامی اندروید

هنگامی که ANR رخ می دهد، سیستم عامل اندروید یک پیام خطا به کاربر نشان می دهد و به کاربر اجازه می دهد تا برنامه را ببندد یا منتظر بماند تا برنامه پاسخگو شود.

برای جلوگیری از ANR، توسعه دهندگان باید:

  • از انجام وظایف طولانی در thread اصلی خودداری کنند.
  • از عملیات I/O در thread های جداگانه انجام شود.
  • از نشت حافظه جلوگیری کنند.
  • از ابزارهای مختلف برای عیب یابی و شناسایی علل ANR استفاده کنند.

Context در اندروید چیست ؟

Context یک رابط انتزاعی در اندروید است که اطلاعاتی در مورد محیط برنامه ارائه می‌دهد. این اطلاعات شامل منابع برنامه، کامپوننت‌های برنامه و اطلاعات محیط برنامه است. Context برای انجام وظایف مختلفی مانند بارگذاری منابع، شروع فعالیت‌ها، ارسال و دریافت پیام‌های پخش و دسترسی به تنظیمات برنامه استفاده می‌شود.

سه نوع Context اصلی در اندروید وجود دارد:

  • Context فعالیت: این Context به اطلاعات مربوط به Activity فعلی دسترسی می‌دهد.
  • Context برنامه: این Context به اطلاعات مربوط به کل برنامه دسترسی می‌دهد.
  • Context Wrapper: این کلاس برای ایجاد Contextهای سفارشی استفاده می‌شود.

در اندروید از چه Dialog Boxes هایی استفاده می‌شود ؟

  • AlertDialog 
    • برای نمایش پیام‌های ساده یا پیچیده به کاربر استفاده می‌شود.
    • می‌تواند شامل دکمه‌های تأیید، لغو و خنثی باشد.
    • می‌توان از آن برای دریافت ورودی متن از کاربر استفاده کرد.
  • ProgressDialog
    • برای نشان دادن پیشرفت یک فرآیند به کاربر استفاده می‌شود.
    • می‌توان از آن در عملیات‌های زمان‌بر مانند بارگیری فایل یا دانلود داده استفاده کرد.
  • DatePickerDialog
    • به کاربر اجازه می‌دهد تا تاریخ را انتخاب کند.
    • می‌توان از آن در فرم‌ها یا تنظیمات برنامه استفاده کرد.
  • TimePickerDialog
    • به کاربر اجازه می‌دهد تا زمان را انتخاب کند.
    • می‌توان از آن در فرم‌ها یا تنظیمات برنامه استفاده کرد.

انواع روش‌های ذخیره‌سازی در اندروید

  1. ذخیره‌سازی داخلی : برای ذخیره‌سازی داده‌های حساس مانند اطلاعات برنامه‌ها و تنظیمات سیستم استفاده می‌شود.
  2. ذخیره‌سازی خارجی:برای ذخیره‌سازی عکس‌ها، فیلم‌ها، موسیقی و سایر فایل‌های حجیم مناسب است.
  3. ذخیره‌سازی ابری : برای ذخیره‌سازی پشتیبان از داده‌ها و همچنین اشتراک‌گذاری فایل‌ها با دیگران مفید است.(مانند Google Drive، Dropbox و OneDrive)
  4. پایگاه داده SQLite :برای ذخیره‌سازی داده‌های ساختاریافته مانند لیست مخاطبین، تاریخچه تماس‌ها و پیام‌ها استفاده می‌شود.
  5. Shared Preferences:برای ذخیره‌سازی تنظیمات برنامه و اطلاعات ترجیحی کاربر استفاده می‌شود. و برای مقادیر کم مناسب است .

  6. فایل‌ها :برای ذخیره‌سازی هر نوع داده‌ای می‌توان از آنها استفاده کرد. (این روش نسبت به روش های قبلی انعطاف‌پذیری بیشتری دارد ولی ممکن است کندتر و پیچیده تر باشد)

در نهایت، به یاد داشته باشید که اعتماد به نفس و داشتن نگرش مثبت در طول مصاحبه بسیار مهم است. با آمادگی و تمرین مناسب، می‌توانید تسلط بیشتری به سوالات استخدامی اندروید که از شما پرسیده می‎‌شود، داشته باشید و شانس خود را برای موفقیت در مصاحبه استخدامی اندروید افزایش دهید

برای امتیاز به این نوشته کلیک کنید!
[کل: 3 میانگین: 5]
اشتراک‌گذاری

من فرشید حبیبی هستم، یک برنامه نویس موبایل با بیش از 5 سال تجربه. من علاقه زیادی به برنامه نویسی دارم و در این زمینه به طور مداوم در حال یادگیری و پیشرفت هستم. در حال حاضر، به عنوان یک برنامه نویس اندروید در یک شرکت معتبر مشغول به کار هستم و همچنین یک وبسایت آموزشی به نام کدایت را اداره می کنم. در کدایت، به تولید محتوای آموزشی در مورد برنامه نویسی اندروید و وب می پردازیم. هدف من از ایجاد این وبسایت، کمک به سایر برنامه نویسان اندرویدی برای یادگیری و پیشرفت در این زمینه است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *