همانطور که میدانید اندروید یک سیستم عامل تلفن همراه است و در حال حاضر توسط گوگل در حال توسعه میباشد. این سیستم عامل به صورت متن آزاد و مبتنی بر هسته لینوکس بوده و اساسا برای تلفن های هوشمند و همچنین تبلت ها طراحی شده است.
اندروید اولین بار توسط تیم ANDROID INC توسعه یافت و در سال ۲۰۰۵ توسط گوگل خریداری شد. با معرفی اندروید در سال ۲۰۰۷ این سیستم عامل به عنوان محبوب ترین سیستم عامل جهان، مورد توجه همگان قرار گرفته است.
با ادامه رشد قابل توجه کاربران تلفن های هوشمند و همچنین آپدیت سخت افزاری این دستگاه ها، اندروید نیز به صورت مستمر در حال توسعه و ارتقاء قابلیت ها، رابط کاربری و تکنولوژی خود میباشد. این موضوع جدا از بحث تجاری برای غول های فناوری، تقاضای بسیار زیادی برای شرکت های توسعه و طراحی اپلیکیشن به همراه داشته است. موضوعی که موجب فراهم آمدن یک بازارکار پویا و درامد زا در جای جای جهان شده است.
اگر شما نیز قصد دارید به دنیای توسعه دهندگان و طراحان اپلیکیشن های اندروید وارد شوید به شما توصیه میکنم که در دوره آموزشی اندروید ثبت نام کنید تا بتوانید تمامی اصول و قواعد طراحی اپلیکیشن اندروید را از صفر تا صد بیاموزید سپس با انجام پروژه های کلاسی و همچنین عملی کردن ایده های خود رزومه کوچک اما قابل قبولی برای خود بنویسید و با ارائه رزومه خود مقدمه ورود به شرکت های بزرگ را به عنوان کارآموز، توسعه دهنده و متخصص برنامه نویسی اندروید فراهم کنید.
در ادامه من قصد دارم به عنوان یکی از مهم ترین بخش های آموزش زبان برنامه نویسی اندروید، مجموعه سوالاتی که معمولا در مصاحبه های کاری برای جذب متخصص اندروید از متقاضیان پرسیده می شود را همراه پاسخ های جامع خدمت شما ارائه کنم.
این سوالات به صورت کلی از ساده به سخت مرتب شده است. من به شما اکیدا توصیه میکنم (جدا از هر گونه تجربه کاری و سطح دانش برنامه نویسی اندروید) تمام سوالات را به طور کامل همراه با پاسخ مطالعه بفرمایید تا پذیرش در هیچ شرکتی برای شما دور از دسترس نباشد.
پس بدون معطلی به سراغ پرسش ها میرویم:
آنچه در این نوشته خواهیم داشت
سوالات مصاحبه اندروید
۱) اندروید چیست؟
اندروید یک زبان برنامه نویسی منبع باز (Open source) بوده که مبتنی بر هسته لینوکس است و برای طراحی و توسعه سیستم عامل تلفن های همراه کاربرد دارد. توسعه و طراحی پیشرفته اپلیکیشن های اندروید معمولا با زبان برنامه نویسی جاوا انجام میشود.
۲) طراحی (معماری) اندروید چیست؟ ( از چه بخش هایی تشکیل شده است؟)
طراحی اندروید شامل مجموعه نرم افزارهایی است که از دستگاه تلفن همراه پشتیبانی کرده و از ۴ بخش اساسی تشکیل شده است:
هسته لینوکس
کتابخانه ها
فریم ورک های اندروید
اپلیکیشن های اندروید
۳) Android SDK چیست؟
کیت توسعه نرم افزار که به اختصار SDK نامیده میشود، مجموعه ای از نرم افزارها و ابزارهایی ایست که به توسعه دهندگان کمک میکند تا برنامه های خود را در بستر سیستم عامل اندروید پیاده سازی کنند.
Android sdk شامل اجزای زیر میباشد:
یک شبیه ساز (emulator)
دیباگر
نمونه کد منبع
کتابخانه های مختلف
۴) تفاوت SDK و API چیست؟
API رابطی بین دو اپلیکیشن است که به برنامه ها امکان تعامل با یکدیگر را میدهد. اما SDK مجموعه ای از ابزارهاست که برای توسعه برنامه های متنوع مورد استفاده قرار میگیرد.
۵) فریم ورک اندروید چیست؟
فریم ورک اندروید مجموعه ای از API هاست که توسط توسعه دهندگان برای نوشتن برنامه های جدید مورد استفاده قرار میگیرد. در حال حاضر نیز این فریم ورک ها شامل متدها و کلاس هایی هستند که برای راحتی در کد زدن استفاده می شود.
فریم ورک اندروید شامل چندین ابزار متنوع مثل: Text field، buttons، image pane و … میباشد. جدا از این موارد همچنین فریم ورک ها بسته های مختلفی از اجزا مختلف مثل: broadcast receiver، content provider و … میباشند.
۶) بخش های اصلی یک اپلیکیشن اندروید چیست؟
Xml
Bin/
Src/
Res/
Assets/
۷) امولیتور یا شبیه ساز چیست؟ (استفاده از آن را توضیح دهید)
Android emulator در واقع نرم افزاری است که که برای اجرا و تست برنامه های اندرویدی پیش از نهایی سازی و نصب آن بر روی دستگاه مورد نظر، مورد استفاده قرار میگیرد.
شبیه سازهای مثل AVD و Genymotion معمولا برای بررسی و تست کلی مورد استفاده قرار میگیرند این در حالی است که شبیه ساز هایی مثل bluestacks برای اجرای برنامه های اندرویدی پیشنهاد مناسبی میباشد.
۸) مزایای اندروید چیست؟
Diverse ohone options
Support various tech
Widgets
تطبیق پذیری بالا
بازدهی بالای سرمایه
۹) تفاوت بین explicit intent و implicit intent چیست؟
explicit intent اجزا یا همان کامپوننت ها را به صورت مستقیم برای ما مشخص میکند اما implicit intent ها کامپوننت ها را مشخص نمیکنند. این موضوع به کامپوننت های اپلیکیشن های دیگر این امکان را میدهد تا فعالیت های کلی را تحت کنترل قرار دهد.
برای مثال اگر شما قصد دارید یک لوکیشن خاص به فرد دیگری بفرستید باید از implicit functionها (در اپلیکیشن) برای پاسخ به این درخواست استفاده کنید.
// Currently in MainActivityIntent intent = new Intent(this, LoginActivity.class);startActivity(intent);
۱۰) سه حلقه اصلی برای نظارت (monitoring) چیست؟
ـ entire lifetime که بین onDestroy و onCreate رخ میدهد.
ـ visible life time که بین onStop و onStart رخ میدهد.
ـ for ground lifetime که بین onPause و onResume اتفاق میافتد.
۱۱) AAPT چیست؟
Android Asset Packaging Tool یا AAPT امکان تعامل و مقابله با بایگانی های سازگار با ZIP را (که شامل استخراج و مشاهده محتوای آن است) به توسعه دهندگان میدهد.
این پکیج همچنین برای جمع آوری منابع برنامه، فایل های XML، AndroidManifest و … استفاده میشود و از طرفی این پکیج منابع را در assetهای باینری جمع آوری میکند. در اصل AAPT بخشی از Android SDK است که به شما اجازه میدهد فایل های ZIP را مجددا مشاهده و بازطراحی کنید.
۱۲) فرمت APK چیست؟
APK یا Android Package kit پکیجی است که توسط سیستم عامل اندروید برای انتشار و نصب برنامه های مختلف مورد استفاده قرار میگیرد. APK در اصل شامل کلیه کدها و asset های نرم افزار میباشد. جدا از موارد فوق، از APK برای کامپایل برنامه ها پیش از بارگذاری در گوگل پلی استفاده میشود.
۱۳) fragment و activity چه تفاوت هاییبا هم دارند؟
Activity دقیقا همان فعالیتی است که کاربر می تواند آن را انجام دهد اما fragment یک بخش مدولار از فعالیت است که دارای چرخه حیات و همچنین منابع و رویدادهای ورودی است که به صورت دلخواه میتواند حذف یا اضافه شود.
۱۴) Android fragment چیست؟ (به طور کامل توضیح دهید)
Android fragment برای ایجاد یک رابط کاربری آسان و پویا در صفحات نمایش مختلف استفاده میشود.
متدهای android fragment:
onAttach():
onCreateView():
onViewCreated():
onActivityCreated():
onStart():
onPause():
onStop():
onDestroyView():
onDestroy():
onDetach():
۱۵) containers چیست؟
contaners ها اشیا یا همان objectها را کنار هم نگه میدارد البته این موضوع به این بستگی دارد که شما به کدام موارد احتیاج دارید و به چه ترتیبی، قصد استفاده از این المان ها را دارید.
این containersها میتوانند شامل: برچسب ها، دکمه ها و بخش های مختلف دیگر باشند.
۱۶) تفاوت بین سرویس ها و intent سرویس ها چیست؟
سرویس ها کلاس های پایه ای برای سیستم عامل اندروید هستند و میتوانند برای توسعه هرنوع سرویسی مورد استفاده قرار گیرند. همچنین آن ها می توانند در فعالیت هایی که رابط کاربری اهمیت بالایی ندارد مورد استفاده قرار بگیرد.
Intent services یک زیرکلاس برای سرویس ها بوده که درخواست های ناهمزمان را به صورت یک درخواست واحد مورد بررسی قرار میدهد. اینتنت سرویس ها در کارهایی مورد استفاده قرار میگیرند که هیچ ارتباطی بین درخواست و موضوع اصلی وجود ندارد.
۱۷) Activities چیست؟
Acrivities زیر کلاس کلاس ContextThemeWrapper بوده و نشاندهنده یک صفحه واحد با رابط کاربری مشخص است. اندروید فعالیت خودش را با فراخوانی متد onCreate() callback شروع میکند، درست مانند جاوا.
۱۸) چهار state مهم در activity را نام ببرید؟
Active: اگر فعالیت پیش زمینه وجود داشته باشد
Paused: فعالیت در پیش زمینه بوده و قابل رویت باشد.
Stopped: فعالیت قابل رویت نباشد و توسط یک فعالیت دیگه پوشانده شده باشد.
Destroyed: وقتی فعالیت به پایان می رسد.
۱۹) Intents چیست؟
Intents در اصل وظیفه نشان دادن پیام های سیستم عامل را به کاربر به عهده دارد و این وظیفه را از دوطریق کلی تسهیل میکند:
Explicit intent
Implicit intent
۲۰) اجزا اصلی طراحی کامپوننت های اپلیکیشن اندروید چیست؟
طراحی کامپوننت های یک اپلیکیشن اندروید از ۴ بخش اصلی تشکیل شده است:
هسته لینوکس
کتابخانه ها
فریم ورک های اندروید
اپلیکیشن های اندروید
۲۱) سه مرحله اصلی در intent ها را نام ببرید؟
شروع فعالیت: شروع یک فعالیت جدید با عبور دادن intent به متد ()startActivity
شروع سرویس: شروع یک سرویس برای انجام یک عملیات با عبور دادن intent به متد ()startService
تحویل برودکست: تحویل برودکست با عبور دادن intent به متد ()sendBroadcast()، sendOrderedBroadcast و یا ()sendStickyBroadcast
۲۲) چه ابزارهایی در اندروید SDK وجود دارد؟
شبیه ساز
DDMS یا سرویس دیباگ
AAPT یا همان پکیج asset
ADB یا همان پل دیباگ اندروید
۲۳) DDMS چیست؟
Dalvik Debug Monitor Server که به اختصار DDMS نامیده میشود، مجموعه گسترده ای از فیچرهای دیباگینگ را برای شما فراهم میکند. لازم به ذکر است این مجموعه به عنوان بخشی از پکیج SDK در دسترس شما قرار میگیرد.
DDMS برخی فعالیت های مهم مثل جمع آوری اطلاعات اسکرین، مانیتورینگ، انتقال پورت و … را انجام میدهد.
۲۴) ActivityCreator چه کاربردی دارد؟
ActivityCreator از ابتدایی ترین مسائلی است که در ابتدای ساخت یک برنامه اندروید مورد استفاده قرار میگیرد. Androidcreator شامل یک فایل و شل است و کدنویسی و ساخت یک فایل جدید را برای شما آسان تر خواهد کرد.
۲۵) ADB چیست؟
Android Debug Bridge یا همان ADB یک برنامه سمت سرور-کاربر است و به توسعه دهندگان امکان اجرای دستورات پوسته را میدهد.
ADB بخشی از کیت SDK بوده و از سه بخش اصلی سرور، کاربر و daemon تشکیل شده است. از ADB اصولا برای پشتیبانی از دستگاه اندرویدی و همچنین شبیه ساز استفاده میشود.
۲۶) AndroidManifest.xml چیست؟
AndroidManifest.xml فایل مرجعی است که برای یک سیستم اندرویدی بسیار ضروری و مهم است چرا که شامل اطلاعاتی است که سیستم اندروید باید قبل از اجرای یک برنامه از آن مطلع باشد.
این فایل XML در اصل یک پرونده کلیدی بین سیستم عامل و توسعه دهنده اندروید میباشد.
به فایل زیر دقت کنید:
<manifest><Elements for Application properties should come here – refer above for list> <application> <Elements for application components should come here – refer above for list> </application> </manifest>
۲۷) المنت های اصلی AndroidManifest.xml چه چیزهایی میباشد؟
به فایل زیر دقت کنید:
<action><activity> <activity-alias> <application> <category> <data> <grant-uri-permission> <instrumentation> <intent-filter> <manifest> <meta-data> <permission> <permission-group> <permission-tree> <provider> <receiver> <service> <supports-screens> <uses-configuration> <uses-feature> <uses-library> <uses-permission> <uses-sdk>
۲۸) منابع پیشفرض چه اهمیتی دارند؟
منابع پیشفرض DEFAULT RESOURSES از مواردی هستند که به هیچ دستگاهی تعلق ندارند. این منابع شامل پرونده های پیشفرض: موجود نیست، خطایی رخ داده و برنامه اجرا نمیشود می باشد. منابع پیشفرض در زیرشاخه های فهرست منابع و بر اساس نوع منبع سازماندهی و میشوند.
۲۹) AIDL چیست؟
Android Interface Definition Language درست مثل رابط زبان جاواست و نیازهای که کاربر و سرویس دارند را برطرف میسازد تا هر دو سمت بتوانند از این طریق در یک سطح با هم در ارتباط باشند IPC
به قطعه کد زیر دقت کنید:
package com.marakana;// Declare the interface. interface IAdditionService { // You can pass values in, out, or inout. // Primitive datatypes (such as int, boolean, etc.) can only be passed in. int add(in int val1, in int val2); }
۳۰) Sticky intent چیست؟
Sticky intent در اصل یک برودکست از متد ()sendStickyBroadcast میباشد به طوری که intent بعد از برودکست هم به طور شناور باقی مانده و و به دیگران اجازه دهد تا به جمع آوری اطلاعات از آن ادامه دهند. در اصل استیکی اینتنت امکان برقراری ارتباط بین سرویس و عملگر را ایجاد میکند.
۳۱) از چه زبان برنامه نویسی برای توسعه برنامه های اندرویدی استفاده میشود؟
برای پاسخ به این سوال می توان گفت جاوا زبان رسمی برای توسعه و طراحی یک اپ اندروید است چرا که گوگل به طور کامل از این زبان پشتیبانی میکند.
برای ثبت نام در دوره جامع آموزش برنامه نویسی جاوا اندروید همین حالا اقدام کنید.
۳۲) لی اوت ها کجا قرار میگیرند؟
لی اوت ها در پوشه layout در فایل xml قرار دارند.
۳۳) ابزارک های کاربردی در اندروید به چه معناست؟
Widgetها یا همان ابزارک های کاربردی نماهای کوچکی از برنامه هستند که میتوانند در بخش های مختلف و برنامه ها گوناگون قرار داده شوند (مثل ویجت های صفحه اصلی) و ازاین طریق بروزرسانی های دوره ای دریافت کنند.
App widget host هم اپلیکیشنی است که اجزا مختلف برنامه را در خود جای داده است.
برای استفاده از ویجت باید در ابتدا کد زیر را در AndroidManifest.xml قرار دهید:
<receiver android:name="ExAppWidgetProvider" > <intent-filter> <action android:name=”android.appwidget.action.APPWIDGET_UPDATE” /> </intent-filter> <meta-data android:name=”android.appwidget.provider” android:resource=”@xml/example_appwidget_info” /> </receiver>
۳۴) پوشه قابل ترسیم چیست؟
این پوشه یک منبع بصری کامپایل شده است که می تواند به عنوان پس زمینه، بنر، آیکون و … مورد استفاده قرار بگیرد. لازم به ذکر است شما میبایست سایز و وضوح تصاویر را به درستی انتخاب کنید تا اپلیکیشن با مشکل روبرو نشود.
اندروید به صورت کلی از فرمت های تصویری زیر پشتیبانی میکند:
GIF, JPG, BMP, PNG, and WebP.
شما همچنین برای ساخت پوشه ترسیم drawable folder میتوانید مسیر زیر را طی کنید:
right-click on res folder
Select New
Select Android Resource Directory
“” Name the directory as
Add Drawable to Available Qualifiers Section
Click ok
”Refer Drawable resource in your XML files by calling: “@drawable/filename
۳۵) Contentprovider یا سیستم مدیریت محتوا در اندروید چیست؟
سیستم مدیریت محتوا در اصل وظیفه مدیریت دسترسی (حفظ امنیت و کپسوله سازی) به مجموعه اطلاعات را بر عهده دارد و از طریق یک رابط استاندارد، داده ها را به کدهایی که در یک فرایند دیگر در حال انجام است، منتقل میکند.
ارائه دهنده محتوا به عنوان یک زیرکلاس از کلاس ContentProvider بوده و مجموعه api هایی که برای فعال سازی سایر اپلیکیشن ها و انتقال داده ها نیاز است را جابجا میکند.
public class My Application extends ContentProvider {}
۳۶) ANR چیست؟
Application Not Responding که به اختصار ANR نامیده میشود وقتی وارد عمل میشود که یک برنامه علی رغم اجرا پاسخوی نیاز کاربر نباشد.
به صورت کلی ANR در دو صورت رخ خواهد داد:
ـ اگر یک برنامه فعال در ۵ ثانیه پاسخگو نباشد
ـ کلاس برودکست اجرای یک EXECUTION را در یک زمان مشخص به پایان نرساند.
۳۷) ArmV7 چیست؟
ArmV7 معروف ترین طراحی CPU در اندروید است و دلیل محبوبیت آن هم این است که برای محاسبات پیچیده به اندازه کافی قدرتمند میباشد.
۳۸) چرا ما نمیتوانیم بابت کد استاندارد جاوا را در اندروید اجرا کنیم؟
به دلیل آنکه جاوا و اندروید از دو محیط جداگانه برای اجرای کد استفاده میکنند.
حال برای انکه کدهای جاوا در اندروید با فرسایش کمتر و سرعت بیشتری اجرا شوند شما میبایست کلاس های جاوا را به Dalvik تبدیل کنید. شما میتوانید از فایل dx برای اینکار استفاده کنید.
۳۹) وقتی کاربر صفحه خود را میچرخاند activity چگونه به این درخواست پاسخ میدهد؟
وقتی کاربر صفحه گوشی خود را میچرخاند در اصل اکتیویتی قبلی به پایان میرسد و فعالیت جدیدی در جهت گیری جدید ایجاد میشود. (در اصل متد ()onRestart
فراخوانی میشود)
۴۰) تفاوت بین سرویس و اکتیویتی چیست؟
اکتیویتی فراهم کننده UI یک اپلیکیشن در صورت فراخوانی است مانند شماره گیری تلفن، کلیک روی عکس و … اما از سرویس ها برای انجام عملیات های پس زمینه ای طولانی مدت استفاده میشود (فاقد رابط کاربری)
۴۱) فعالیت قابل رویت در اندروید چیست؟
فعالیت قابل رویت زمانی رخ میدهد که کاربر با اپلیکیشن تعامل ندارد اما برنامه (فعالیت) قابل رویت است. این دست فعالیت ها از بین نمیروند مگر آنکه کاربر آن ها را از پس زمینه دستگاه حذف کند. (آن ها را ببندد)
۴۲) برای اعلام activity و ایجاد دسترسی به سیستم باید چه کار کنیم؟
برای اعلام یک فعالیت باید آن را در پوشه مانیفست قرار دهید.
برای این کار بخش Manifest را باز کرده و را به عنوان زیر بخش اضافه کنید.
برای مثال:
<manifest ... > <application … > <activity android:name=”.ExActivity” /> … </application … > … </manifest >
۴۳) بر روی چه دستگاه هایی تا بحال کار کرده اید؟
این سوال یکی از معروف ترین سوالات مصاحبه های کاری برای برنامه نویسان اندروید است.
برای پاسخ به این سوال صادق باشید و سیستم عامل های مختلفی که تا به امروز با آن کار کرده اید را نام ببرید مثل: ویندوز،اندروید، ios و …
۴۴) گیرنده پخش یا گیرنده برودکست چیست؟
گیرنده برودکست بخشی است که به اعلان های سیستم پاسخ میدهد.
برای مثال:
اتصال اینترنت خود را بررسی کنید!
آپلود کامل شد.
بوت انجام شد.
و …
فایل xml اندروید و همچنین متد ()Context.registerReciever میتواند یک گیرنده برودکست را ثبت کند.
۴۵) سه حلقه (loop) معروف اصلی را برای نظارت بر فعالیت نام ببرید؟
Entire lifetime: فعالیت بین onDestroy و onCreate رخ می دهد.
Visible lifetime: فعالیت بین onStop و onStart رخ می دهد.
Foreground lifetime: فعالیت بین onPause و onResume اتفاق می افتد.
۴۶) از چه جعبه های گفتگویی میتوانید در برنامه اندرویدی خود استفاده کنید؟
AlertDialog:از دکمه های 0 تا 3 و لیستی از عناصر قابل انتخاب پشتیبانی می کند.
ProgressDialog:افزونه ای برای AlertDialog، جایی که ممکن است دکمه هایی به آن اضافه شوند.
DatePickerDialog:برای انتخاب تاریخ توسط کاربر استفاده می شود.
TimePickerDialog:برای انتخاب زمان توسط کاربر استفاده می شود.
۴۷) تفاوت بین margin و padding در چیست؟
Margin فضای بیرونی یک المنت است در حالی که padding فضای داخلی بین محتوا و مرز آن است.
۴۸) تفاوت بین RelativeLayout و LinearLayout چیست؟
در LinearLayout، عناصر به صورت عمودی یا افقی (در یک ردیف یا ستون) مرتب شده اند. در RelativeLayout، عناصر مطابق با والدین یا سایر عناصر مرتب شده اند. نمای بالایی را می توان در انتهای طرح تعریف کرد و جزئیاتی را برای نمایش آن در بالا سمت چپ ارائه داد.
۴۹) Adapterها در اندروید چه وظیفه ای را بر عهده دارند؟
اداپتور ها وظیفه انتقال اطلاعات بین منبع و واسط گرافیکی را بر عهده دارند و آن را نمایش میدهند.
و اما آداپتورهای متداول در اندروید:
ArrayAdapter
BaseAdapter
Custom ArrayAdapter
SimpleAdapter
Custom SimpleAdapter
۵۰) جهت گیری یا orientation در اندروید چیست؟
جهت گیری یکی از ویژگی های اصلی تمام تلفن های هوشمند است. این ویژگی که همه ما قطعا بارها از آن استفاده کرده ایم به ما کمک می کند تا چرخش صفحه بین حالت افقی و عمودی قابل تغییر باشد.
در اصل متد ()onCreate یک فعالیت خاص هنگامی که تغییر جهت در صفحه انجام شود از بین خواهد رفت.
به صورت کلی دو راه نیز برای مدیریت تغییر حالت صفحه نمایش در اندروید وجود دارد:
Anchoring Control
Defining layout for each mode
۵۱) Threads در اندروید چیست؟
ترد یا رشته، واحد های کلی پردازش وظایف هستند و هر برنامه میتواند تعدادی ترد داشته باشد.
هر ترد اولویتی در سیستم دارد و تردهای ایجاد شده توسط یک ترد دیگر، اولویت هم سطح خواهد داشت.
۵۲) تفاوت بین بیت مپ و تصویر nine-patch چیست؟
تصویر ninepatch امکان انتخاب ناحیه تصویر و تغییر اندازه آن را در دستگاه فراهم می کند اما تصاویر در بیت مپ معمولی به همراه ارتفاع و عرض با یک ترتیب مقیاس بندی میشوند.
۵۳) کدام متد در fragment lifecycle فقط یکبار فراخوانی میشود؟
متد ()onCreate
۵۴) آیا می توانیم یک activity را در اندروید بدون UI طراحی کنیم؟
بله، ما میتوانیم یک فعالیت را بدون استفاده از UI طراحی کنیم. در اصل این فعالیت ها به عنوان فعالیت های انتزاعی تلقی میشوند.
۵۵) آیا ما میتوانیم اسم یک اپلیکیشن را بعد از توسعه دادن آن تغییر دهیم؟
بله، اما این کار به هیچ وجه توصیه نمی شود.
۵۶) چطور میتوانیم یک ویجت یا آیکون خاص را از صفحه اصلی اندروید پاک کنیم؟
برای پاک کردن یک اپلیکیشن اندروید یا یک ویجت خاص کافی است آن را نگه داشته و آن را به خارج صفحه نمایش درگ کنیم.
نکته: شاید برای شما عجیب باشد اما این سوال یکی از رایج ترین سوالاتی است که در مصاحبه شرکت های خارجی از متقاضیان پرسیده میشود. (قرار نیست همه سوالات سخت و تکنیکال باشد!)
۵۷) دیالوگ باکس هایی که اندروید از آن پشتیبانی میکند را نام ببرید؟
اندروید ۴ دیالوگ باکس دارد که عبارتند از:
Alert Dialog
Process Dialog
Date Picker Dialog
Time Picker Dialog
۵۸) حالات مختلفی که یک فعالیت بر آن ها بنا شده است را نام ببرید؟
فعالیت پیش زمینه
فعالیت قابل مشاهده
فعالیت پس زمینه
فعالیت خالی
۵۹) چطور میتوانیم یک انیمیشن کشویی را در اندروید پیاده سازی کنیم؟
با استفاده از کد زیر:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator=”false”><translate android:fromXDelta=”-100%” android:toXDelta=”0%” android:fromYDelta=”0%” android:toYDelta=”0%” android:duration=”700″/> </set>
۶۰) چطور به شماره IMEI دسترسی پیدا کنیم؟
با استفاده از TelephonyManager، می توانیم به شماره IMEI بی نظیر در Android دسترسی پیدا کنیم.
۶۱) هدف استفاده از Android Parcelable چیست؟
برنامه نویسان و توسعه دهندگان از Android Parcelable برای سریال سازی یک کلاس استفاده میکنند تا بتوانند به راحتی خصوصیات آن را از یک فعالیت به فعالیت دیگر منتقل کنند. این موضوع همچنین به عنوان پیاده سازی Android Java Serializable نیز شناخته میشود.
۶۲) چطور میتوان از تمام شبکه های اندروید اطلاعات به دست آورد؟
برای به دست آوردن اطلاعات در مورد تمام شبکه های موجود در اندروید میتوان از متد ()getAllNetworkInfo استفاده کرد.
NetworkInfo[] netList = check.getAllNetworkInfo();
۶۳) بخش های اصلی مهندسی و طراحی یک اپلیکیشن اندروید را نام ببرید؟
هدف
اعلامیه ها (Notices)
ادمین ها
تامین محتوا
بودجه
۶۴) روش های انتقال داده بین اکتیویتی های مختلف در اندروید چگونه است؟
Android Serializable می تواند برای انتقال داده ها بین فعالیت ها استفاده شود.
۶۵) چطور یک فعالیت جدید را شروع کنیم؟
Purpose x = new Intent(getApplicationContext(), Activity2.class); startActivity(x);
۶۶) داده هایی که توسط AIDL پشتیبانی میشوند را نام ببرید؟
لیست
نقشه
رشته
charSequence
کلیه کدها و اطلاعات زبان جاوا
۶۷) چطور یک اپلیکیشن ریسپانسیو (مناسب تمام وسیله های هوشمند) طراحی کنیم؟
res/layout/main_activity.xml # Used For phonesres/layout/main_activity_tablet.xml # Used For tablets And calling it in your java class. public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(); Configuration config = getResources().getConfiguration(); if (config.smallestScreenWidthDp &amp;amp;amp;amp;amp;amp;gt;= 600) { setContentView(R.layout.main_activity_tablet); } else { setContentView(R.layout.main_activity); } } }
۶۸) اولیت مشترک یا Shared Preferenceچیست؟ (با استفاده از سینتکس شرح دهید؟)
اولویت مشترک مجاز است داده های کوچک مانند جزئیات ورود به شکل Key-value ذخیره و بازیابی کند.
برای ذخیره اطلاعات در SharedPreference:
Editor edit=SharedPreferences(); edit.putString(“key”,”value”); edit.commit();
برای دریافت اطلاعات از shared Preference:
SharedPreferences share = new SharedPreference(key,Context.Mode_Private);
جمع بندی
در این مقاله سعی کردیم مهم ترین سوالاتی که معمولا در مصاحبه های کاری برنامه نویسی اندروید از شما به عنوان یک متخصص اندروید پرسیده میشود را در قالب پرسش پاسخ های کاربردی خدمت شما ارائه کنیم. لازم به ذکر است مطالعه و تمرین و تکرار این سوالات شرط لازم برای استخدام شما در یک شرکت توسعه دهنده اپلیکیشن های اندروید می باشد نه شرط کافی.
شما در کنار این مطالب باید تواسنته باشید یک پروژه (هرچند کوچک) را به سرانجام رسانده باشید و مصاحبه گیرنده را مدام به سمت پروژه ای که به تمام جزئیات آن آگاهی دارید سوق دهید. کاری که شما در گذشته انجام داده اید بهترین راه برای معرفی، سنجش مهارت و همچنین اثبات ادعاهای شماست که البته به سرانجام رساندن یک پروژه معولا محصول آموزش اندروید استاندارد و حرفه ای است.
پس سعی کنید قبل از هرگونه اقدام به کار و یا اشراف بر این سوالات، یک پروژه برای خود تعریف کنید (اگر قبلا پروژه طراحی اپلیکیشن اندروید انجام نداده اید) و با گسترش آن روزمه قابل قبولی برای خود تدوین کنید.
این مقاله ترجمه بخشی از مقاله بهترین سوالات مصاحبه اندروید سایت naukri میباشد. امیدوارم از مطالعه این مقاله بهره کافی را برده باشید.
علی سخا / آکادمی آمانج
کاربرد bundle را توضیح دهید .
جالبیش اینه نویسنده عزیز هیچ دانش خاصی در مورد اندروید نداشته و این محتوا رو تولید کرده فقط برای ویو سایت :/
هر محتوایی منابعی دارد و با توجه به منابع محتوا و نظر کارشناسان محتوا منتشر میشود. ممنون از بازخورد شما دوست عزیز