امروزه کمتر کسی را میتوان پیدا کرد که نام سیستمعامل اندروید را نشنیده باشد؛ اما شکلگیری اندروید حاصل یک مسیر ساده و کوتاه نبوده است. در سالهایی که فناوریهای دیجیتال محدود به سیستمهای بزرگ، پرهزینه و غیرقابلحمل بودند، نیاز به یک بستر نرمافزاری انعطافپذیر برای دستگاههای هوشمند کوچک بهتدریج احساس شد. تلاشهای اولیه، از جمله سیستمعامل سیمبیان، اگرچه نقش مهمی در تولد گوشیهای هوشمند داشتند، اما به دلیل هزینههای بالا، محدودیتهای فنی، کندی بهروزرسانی و نارضایتی توسعهدهندگان، نتوانستند پاسخگوی آینده این بازار باشند.
در چنین فضایی، در سال ۲۰۰۳ اندی روبین و تیمش پروژه اندروید را با هدف ایجاد یک سیستمعامل متنباز و در دسترس آغاز کردند؛ سیستمی که وابسته به یک برند خاص نباشد و توسعهدهندگان بتوانند آزادانه روی آن فعالیت کنند. با ورود گوگل به این پروژه، اندروید بهسرعت مسیر رشد خود را پیدا کرد و به تدریج به پلتفرمی تبدیل شد که امروز قلب تپنده میلیونها گوشی هوشمند و دستگاه دیجیتال در سراسر جهان محسوب میشود.
اندروید چیست؟
اندروید یک سیستمعامل موبایل است که توسط گوگل توسعه داده میشود و بر پایه هسته لینوکس شکل گرفته است. این سیستمعامل در ابتدا برای دستگاههای لمسی مانند گوشیهای هوشمند و تبلتها طراحی شد، اما بهمرور دامنه استفاده از آن گسترش یافت. امروزه اندروید محبوبترین سیستمعامل موبایل جهان به شمار میرود و میلیاردها دستگاه فعال در سراسر دنیا از آن استفاده میکنند.
تاریخچه اندروید

داستان اندروید به اوایل دهه ۲۰۰۰ بازمیگردد؛ زمانی که اندی روبین و تیمش ایده ساخت یک سیستمعامل متنباز برای دستگاههای هوشمند را مطرح کردند. در سال ۲۰۰۵، گوگل این تیم را خرید و مسیر توسعه اندروید وارد مرحلهای تازه شد. نتیجه این تصمیم، معرفی رسمی اندروید در سال ۲۰۰۷ و عرضه نخستین گوشی اندرویدی در سال ۲۰۰۸ بود.
اندروید از همان ابتدا با تکیه بر متنباز بودن و آزادی عمل توسعهدهندگان، رشد سریعی را تجربه کرد. این سیستمعامل در ادامه، با نسخههای مختلف و بهروزرسانیهای منظم، از یک پلتفرم ساده موبایلی به اکوسیستمی گسترده تبدیل شد که امروز در گوشیهای هوشمند، تبلتها، تلویزیونها، ساعتهای هوشمند و حتی خودروها حضور دارد.
کاربردهای اندروید
انعطافپذیری بالا و تنوع گسترده دستگاهها، اندروید را به یکی از پرکاربردترین پلتفرمهای نرمافزاری تبدیل کرده است. این سیستمعامل در حوزههای مختلف نقش کلیدی ایفا میکند.

گوشی های هوشمند
مهمترین و شناختهشدهترین کاربرد اندروید در گوشیهای هوشمند است. میلیونها اپلیکیشن در حوزههای ارتباطی، سرگرمی، مالی، آموزشی و سلامت برای اندروید توسعه داده شدهاند. همین تنوع باعث شده گوشیهای اندرویدی به ابزارهایی همهکاره برای زندگی روزمره تبدیل شوند.
تبلت ها
اندروید در تبلتها نیز حضور پررنگی دارد. صفحهنمایش بزرگتر این دستگاهها آنها را برای مطالعه، طراحی، ویرایش محتوا و استفادههای آموزشی و کاری مناسب کرده است. تبلتهای اندرویدی بهویژه در محیطهای آموزشی و کاری کاربرد گستردهای دارند.
تلویزیون های هوشمند
تلویزیونهای مبتنی بر Android TV امکان دسترسی به اینترنت، سرویسهای پخش آنلاین و اپلیکیشنهای متنوع را فراهم میکنند. استفاده از برنامههایی مانند یوتیوب، نتفلیکس و سرویسهای موسیقی، تجربه تماشای محتوا را به سطحی فراتر از تلویزیونهای سنتی میبرد.
ساعت های هوشمند
اندروید در قالب Wear OS در ساعتهای هوشمند به کار گرفته میشود. این دستگاهها امکان پایش سلامت، مدیریت اعلانها، پاسخ به تماسها و استفاده از قابلیتهایی مانند GPS را فراهم میکنند و نقش مهمی در سبک زندگی دیجیتال دارند.
خودروها
در حوزه خودروهای هوشمند، اندروید با پلتفرم Android Auto حضور دارد. این سیستم امکان مسیریابی، پخش موسیقی، مدیریت تماسها و استفاده ایمن از برخی اپلیکیشنها را در حین رانندگی فراهم میکند و تجربه رانندگی هوشمندتر و ایمنتری را ارائه میدهد.
دنیای بدون مرز اندروید!
تا اینجا دیدیم اندروید چگونه شکل گرفت و چه کاربردهایی دارد، اما نقطه قوت اصلی آن به آیندهاش برمیگردد. اندروید پلتفرمی است که مرز مشخصی برای رشد ندارد و همزمان با پیشرفت فناوری، خود را با نیازهای جدید تطبیق میدهد. هر روز حوزههای تازهای به اکوسیستم اندروید اضافه میشود و دامنه استفاده از آن فراتر از گوشیهای هوشمند گسترش مییابد.
- خانههای هوشمند: اندروید نقش مهمی در توسعه خانههای هوشمند دارد. کنترل روشنایی، سیستمهای گرمایشی و سرمایشی، لوازم خانگی و تجهیزات امنیتی از طریق گوشی یا فرمان صوتی، بخشی از تجربهای است که اندروید آن را ممکن کرده است.
- واقعیت افزوده و واقعیت مجازی: فناوریهای AR و VR با اندروید بهخوبی یکپارچه شدهاند. این فناوریها تجربههای تعاملی جدیدی در حوزههایی مانند آموزش، سرگرمی و بازی ایجاد کردهاند و نقش اندروید را فراتر از یک سیستمعامل موبایل بردهاند.
- اینترنت اشیاء (IoT): در دنیای اینترنت اشیاء، اندروید بهعنوان مرکز کنترل عمل میکند. اتصال و مدیریت تجهیزات هوشمند از راه دور، زندگی روزمره را سادهتر و کارآمدتر کرده و آیندهای هوشمندتر را رقم میزند.
ویژگی های اندروید
محبوبیت اندروید تا حد زیادی به دلیل مجموعهای از قابلیتهای کاربردی و انعطافپذیر آن است. این ویژگیها تجربه کاربری را بهطور مداوم بهبود دادهاند:
- چندوظیفگی: امکان اجرای همزمان چند اپلیکیشن.
- شخصیسازی گسترده: استفاده از لانچرها، تمها و ویجتها.
- خدمات گوگل: دسترسی یکپارچه به سرویسهایی مانند Gmail، Google Maps و جستجوی گوگل.
- فروشگاه اپلیکیشن: میلیونها اپلیکیشن و بازی در Google Play.
- امنیت: رمزگذاری دستگاه و محافظت از طریق Google Play Protect.
- انتقال سریع دادهها: انتقال آسان فایلها بین دستگاهها (Nearby Share / Tap to Transfer).
- مدیریت اعلانها: کنترل دقیق مجوز اعلان اپلیکیشنها.
- اسکنر QR Code داخلی: بدون نیاز به اپلیکیشن جانبی.
- تنظیم زبان مستقل اپلیکیشنها: انتخاب زبان متفاوت برای هر برنامه.
- مدیریت هوشمند باتری: بهینهسازی مصرف انرژی و افزایش عمر باتری.
- اتصال به دستگاههای دیگر: پشتیبانی از فناوریهایی مانند Ultra Wide Band.
- کیفیت صدای بهبودیافته: Bluetooth Low Energy Audio.
- کنترل خروجی صدا: انتخاب سریع بین اسپیکر و هدفون.
- امکانات صفحه قفل و حسابهای کاربری: مدیریت بهتر کاربران.
- تعویق اعلانها (Snooze): رسیدگی به اعلانها در زمان مناسب.
- تنظیمات سریع (Quick Settings): دسترسی فوری به گزینههای پرکاربرد.
- ضبط صفحه نمایش داخلی: بدون نیاز به ابزار جانبی.
- تمرکز هنگام فیلمبرداری: بیصدا شدن اعلانها در زمان ضبط.
- افزایش حساسیت لمس: بهبود تعامل با صفحهنمایش.
- تاریخچه اعلانها: مشاهده اعلانهای قبلی.
- لغو خودکار مجوزها: افزایش امنیت و حریم خصوصی.
- حالت پرواز هوشمند: حفظ اتصال بلوتوث در حالت هواپیما.
- سنجاق اپلیکیشنها در منوی اشتراکگذاری: دسترسی سریعتر به برنامههای پرکاربرد.
اندروید با این قابلیتها، تنها یک سیستمعامل نیست؛ بلکه اکوسیستمی پویا است که تلاش میکند فناوری را سادهتر، در دسترستر و کاربردیتر کند.
"اندروید قدرت تکنولوژی را در دسترس همه قرار می دهد و این قدرت، جهان را تغییر می دهد." - اندی روبین
فرآیند کار با اندروید چگونه است؟
اندروید یک سیستمعامل پرکاربرد است که برای توسعه و استفاده از آن، یک چرخه مشخص طی میشود. این چرخه از مرحله تولید نرمافزار آغاز شده و به استفاده نهایی کاربران ختم میشود. آشنایی با این مراحل، درک بهتری از نحوه شکلگیری و استفاده از اپلیکیشنهای اندرویدی ایجاد میکند.
- توسعه (Development): برنامهنویسان اپلیکیشنهای اندرویدی را با زبانهایی مانند Java یا Kotlin طراحی و پیادهسازی میکنند.
- کامپایل (Compilation): کدهای نوشتهشده کامپایل شده و به فایل اجرایی قابل اجرا روی دستگاههای اندرویدی تبدیل میشوند.
- تست (Testing): اپلیکیشن بررسی و آزمایش میشود تا از عملکرد صحیح و نبود خطا یا باگ اطمینان حاصل شود.
- انتشار (Publishing): پس از تکمیل تستها، برنامه در Google Play یا سایر فروشگاههای اپلیکیشن منتشر میشود.
- نصب (Installation): کاربران اپلیکیشن را دانلود کرده و روی دستگاههای اندرویدی خود نصب میکنند.
- استفاده (Usage): در نهایت، کاربران با اپلیکیشن تعامل دارند و از قابلیتهای آن استفاده میکنند.
اندروید چگونه کار میکند و معماری آن چیست؟
اندروید بر پایه هسته لینوکس توسعه یافته و از یک معماری لایهای استفاده میکند که هر لایه وظایف مشخصی را بر عهده دارد. این ساختار لایهای باعث شده اندروید هم انعطافپذیر باشد و هم امکان توسعه و نگهداری سادهتری داشته باشد.
- اپلیکیشنها (Applications): بالاترین لایه که شامل برنامهها و رابط کاربری است و کاربران مستقیماً با آن تعامل دارند.
- فریمورک اپلیکیشن (Application Framework): این لایه مجموعهای از APIها و ابزارها را در اختیار توسعهدهندگان قرار میدهد تا بتوانند اپلیکیشنهای اندرویدی بسازند.
- کتابخانهها (Libraries): شامل کتابخانههای نرمافزاری مختلفی است که قابلیتهایی مانند گرافیک، پایگاه داده و ارتباطات را فراهم میکنند.
- زمان اجرا (Runtime): محیطی برای اجرای اپلیکیشنها که شامل Dalvik یا ART است و مدیریت اجرای برنامهها را بر عهده دارد.
- کرنل (Kernel): پایینترین لایه سیستم که مسئول مدیریت سختافزار، درایورها، مصرف انرژی و ویژگیهای امنیتی است.
[note]
اگر میخواهید بدانید اپلیکیشنهای موبایل چطور با یک کد برای اندروید و iOS ساخته میشوند، مقاله «فریمورک فلاتر چیست و چه کاربردهایی دارد؟» را از دست ندهید.
[/note]
[note]
اندروید استودیو یک محیط توسعه یکپارچه (IDE) برای ساخت اپلیکیشنهای اندرویدی است که بر پایه IntelliJ IDEA از شرکت JetBrains توسعه داده شده است. این پلتفرم مجموعهای از ابزارهای قدرتمند را برای نوشتن کد، طراحی رابط کاربری، اشکالزدایی (Debug) و مدیریت پروژهها در اختیار توسعهدهندگان قرار میدهد.
اگر مایل هستید با قابلیتهای این محیط توسعه بیشتر آشنا شوید و مراحل نصب و راهاندازی آن را بهصورت کامل یاد بگیرید، میتوانید به مقالات "اندروید استودیو (android studio) چیست؟" و "آموزش نصب و راه اندازی اندروید استودیو (+ ترفند های کاربردی)" مراجعه کنید.
[/note]
مقایسه اندروید و iOS
اکنون که با اندروید آشنا شدیم، منطقی است نگاهی هم به رقیب اصلی آن، یعنی iOS، بیندازیم. هر یک از این دو سیستمعامل فلسفه طراحی متفاوتی دارند و انتخاب میان آنها، بیش از هر چیز به نیازها و ترجیحات کاربر بستگی دارد.
آزادی و شخصیسازی
- اندروید: در اندروید، آزادی عمل بالایی در اختیار کاربر قرار دارد. امکان تغییر ظاهر سیستم، استفاده از لانچرها، ویجتها و حتی جایگزینی اپلیکیشنهای پیشفرض، تجربهای کاملاً شخصیسازیشده را فراهم میکند.
- iOS: در مقابل، iOS ساختاری بستهتر دارد. اپل کنترل بیشتری بر سیستمعامل اعمال میکند و همین موضوع باعث محدودتر شدن شخصیسازی میشود، اما در عوض تجربهای یکدست، منسجم و سادهتر را به کاربر ارائه میدهد.
اپلیکیشنها و فروشگاهها
- اندروید: اندروید با Google Play Store، بزرگترین فروشگاه اپلیکیشن دنیا را در اختیار دارد و علاوه بر آن، امکان نصب برنامهها از منابع دیگر نیز وجود دارد.
- iOS: اپ استور اپل تمرکز بیشتری بر کیفیت و امنیت اپلیکیشنها دارد. هرچند محدودیتهایی در انتشار برنامهها اعمال میشود، اما همین رویکرد باعث کاهش اپلیکیشنهای مخرب و افزایش ثبات کلی سیستم میشود.
بروزرسانیها
اندروید: در اندروید، زمان دریافت بهروزرسانیها به سازنده دستگاه وابسته است و ممکن است برخی گوشیها با تأخیر آپدیت شوند؛ بهجز دستگاههای سری Pixel که بهطور مستقیم از گوگل بهروزرسانی دریافت میکنند.
iOS: در iOS، اپل بهروزرسانیها را بهصورت همزمان برای تمام دستگاههای پشتیبانیشده منتشر میکند، که این موضوع دسترسی سریعتر به قابلیتهای جدید و بهبودهای امنیتی را تضمین میکند.
تنوع دستگاهها
- اندروید: اکوسیستم اندروید شامل طیف بسیار گستردهای از دستگاهها با قیمتها و امکانات متفاوت است؛ از گوشیهای اقتصادی تا مدلهای پرچمدار.
- iOS: در مقابل، اپل تنها چند مدل محدود آیفون عرضه میکند که همگی در بازه قیمتی بالاتری قرار دارند و گزینههای انتخاب محدودتر هستند.
پشتیبانی و خدمات پس از فروش
اندروید: در اندروید، کیفیت پشتیبانی و خدمات پس از فروش به برند سازنده بستگی دارد و میتواند متفاوت باشد.
iOS: در iOS، اپل شبکه گستردهای از مراکز رسمی پشتیبانی و Apple Storeها را در اختیار دارد که معمولاً خدمات یکپارچه و قابلاعتمادی ارائه میدهند.
در نهایت، انتخاب بین اندروید و iOS به اولویتهای شخصی شما برمیگردد. اگر آزادی عمل، شخصیسازی گسترده و تنوع دستگاهها برایتان اهمیت دارد، اندروید گزینه مناسبتری است. اما اگر بهدنبال تجربهای یکدست، بهروزرسانیهای سریع و پشتیبانی متمرکز هستید، iOS انتخاب منطقیتری خواهد بود. مهمترین معیار، هماهنگی سیستمعامل با نیازها و سبک استفاده شماست.
50 سوال مهم مصاحبه اندروید
در این بخش، ۵۰ سؤال مهم و پرتکرار که معمولاً در مصاحبههای شغلی مرتبط با اندروید مطرح میشوند بررسی شدهاند. این سؤالات به شما کمک میکنند دید بهتری نسبت به مفاهیم پایه و کلیدی اندروید داشته باشید و برای مصاحبههای فنی آمادگی بیشتری پیدا کنید.

1. اندروید چیست؟
اندروید یک سیستمعامل متنباز است که عمدتاً روی دستگاههای موبایل مانند گوشیهای هوشمند و تبلتها استفاده میشود. این سیستمعامل بر پایه هسته لینوکس ساخته شده و مجموعهای غنی از اجزا را در اختیار توسعهدهندگان قرار میدهد تا بتوانند اپلیکیشنهایی با قابلیتهای ساده تا پیشرفته ایجاد کنند.
2. Google Android SDK چیست؟
Android SDK مجموعهای از ابزارها و کتابخانههاست که برای توسعه اپلیکیشنهای اندرویدی در اختیار توسعهدهندگان قرار میگیرد. این کیت شامل شبیهساز دستگاه اندرویدی، ابزارهای تست و امکانات دیباگ است که فرآیند توسعه را سادهتر میکند.
3. معماری اندروید چیست؟
معماری اندروید از چهار بخش اصلی تشکیل شده است:
- هسته لینوکس (Linux Kernel)
- کتابخانهها (Libraries)
- فریمورک اندروید (Android Framework)
- اپلیکیشنهای اندروید (Android Applications)
4. AAPT چیست؟
AAPT مخفف Android Asset Packaging Tool است. این ابزار برای مدیریت منابع اپلیکیشن استفاده میشود و امکان ایجاد، استخراج و بررسی فایلهای بستهبندیشده سازگار با ZIP را فراهم میکند.
5. اهمیت شبیهساز در محیط اندروید چیست؟
شبیهساز به توسعهدهندگان اجازه میدهد اپلیکیشنها را در یک محیط مجازی شبیه دستگاه واقعی اجرا، تست و دیباگ کنند. این ابزار بهویژه در مراحل اولیه توسعه، محیطی امن و مقرونبهصرفه برای آزمایش برنامه فراهم میکند.
6. Activity چیست؟
Activity بخشی از اپلیکیشن است که رابط کاربری را به کاربر نمایش میدهد. هر Activity معمولاً یک صفحه از برنامه را نمایش میدهد و تعامل مستقیم کاربر با اپلیکیشن از طریق آن انجام میشود.
7. کاربرد activityCreator چیست؟
activityCreator یکی از ابزارهای اولیه ایجاد پروژههای اندرویدی است که با استفاده از اسکریپت، ساختار فایلها و پوشههای موردنیاز برای شروع توسعه را در محیط برنامهنویسی ایجاد میکند.
8. Intent چیست؟
Intent پیامهایی هستند که برای برقراری ارتباط بین اجزای مختلف اندروید استفاده میشوند. آنها مشخص میکنند چه عملی باید انجام شود یا چه دادهای باید منتقل شود و نقش مهمی در تعامل بین Activityها و سایر اجزا دارند.
9. اجزای مهم هر پروژه اندرویدی کداماند؟
یک پروژه اندرویدی معمولاً شامل موارد زیر است:
- فایل AndroidManifest.xml
- فایل build.xml
- پوشه bin
- پوشه src
- پوشه res
- پوشه assets
10. تفاوت بین Activity و Service چیست؟
Activity برای تعامل مستقیم با کاربر استفاده میشود و میتواند در هر زمان بسته شود. در مقابل، Service در پسزمینه اجرا میشود و حتی در صورت نبود Activity فعال نیز میتواند به کار خود ادامه دهد.
11. Container چیست؟
کانتینرها اجزایی هستند که ویجتها و عناصر رابط کاربری را در کنار هم نگه میدارند. آنها میتوانند شامل دکمهها، فیلدهای متنی، برچسبها یا حتی کانتینرهای دیگر باشند.
12. اهمیت لایههای مبتنی بر XML چیست؟
استفاده از XML برای تعریف رابط کاربری، یک روش استاندارد و منظم فراهم میکند. در این ساختار، طراحی رابط کاربری در فایلهای XML انجام میشود و منطق برنامه در فایلهای کد قرار میگیرد.
13. Orientation چیست؟
Orientation تعیین میکند که عناصر یک LinearLayout بهصورت افقی (HORIZONTAL) یا عمودی (VERTICAL) نمایش داده شوند و با متد setOrientation() قابل تنظیم است.
14. برخی از معایب اندروید چیست؟
به دلیل متنباز بودن و تنوع بالای دستگاهها و نسخههای مختلف اندروید، سازگاری اپلیکیشنها میتواند چالشبرانگیز باشد. یک برنامه ممکن است روی یک نسخه یا دستگاه خاص بهخوبی اجرا شود اما روی نسخه یا دستگاه دیگر با مشکل مواجه شود.
15. اهمیت اندروید در بازار موبایل چیست؟
اندروید به توسعهدهندگان این امکان را میدهد که اپلیکیشنهایی بسازند که روی طیف وسیعی از دستگاهها اجرا شوند. با توجه به سهم بالای اندروید در بازار موبایل، انتشار اپلیکیشن در این پلتفرم فرصت دسترسی به میلیونها کاربر را فراهم میکند.
16. adb چیست؟
adb مخفف Android Debug Bridge است. این ابزار به توسعهدهندگان اجازه میدهد از طریق خط فرمان با دستگاه اندرویدی یا شبیهساز ارتباط برقرار کنند، دستورات شِل را بهصورت راهدور اجرا کرده و پورتهای شبیهساز را مدیریت کنند.
17. چهار حالت اصلی Activityها کداماند؟
Activityها در اندروید میتوانند یکی از حالتهای زیر را داشته باشند:
- فعال (Active): زمانی که Activity در پیشزمینه قرار دارد و کاربر با آن تعامل میکند.
- مکثشده (Paused): Activity هنوز قابل مشاهده است اما تمرکز اصلی را از دست داده است.
- متوقفشده (Stopped): Activity دیگر قابل مشاهده نیست و توسط Activity دیگری پوشانده شده است.
- تخریبشده (Destroyed): Activity بهطور کامل بسته یا از حافظه حذف شده است.
18. ANR چیست؟
ANR مخفف Application Not Responding است. این پیام زمانی به کاربر نمایش داده میشود که یک اپلیکیشن برای مدت طولانی به درخواستها پاسخ ندهد.
19. کدام المانها باید حتماً وجود داشته باشند و فقط یکبار رخ میدهند؟
المانهای End باید حتماً وجود داشته باشند و فقط یکبار میتوانند رخ دهند. سایر المانها اختیاری هستند و در صورت نیاز میتوانند چندین بار تکرار شوند.
20. کاراکترهای Escape چگونه بهعنوان ویژگی استفاده میشوند؟
کاراکترهای Escape با یک بکاسلش قبل از آنها استفاده میشوند. برای مثال، کاراکتر خط جدید با \n نمایش داده میشود.
21. کارکرد Intent Filter چیست؟
هر کامپوننت اندروید مشخص میکند که به چه Intentهایی میتواند پاسخ دهد. Intent Filterها برای فیلتر کردن Intentهایی استفاده میشوند که یک کامپوننت قادر به دریافت آنهاست. بسته به نوع Activity یا Service، ممکن است یک یا چند Intent Filter تعریف شود.
22. اهمیت تنظیم مجوزها (Permissions) در توسعه اپلیکیشن چیست؟
مجوزها امکان اعمال محدودیت برای محافظت از دادهها و کدها را فراهم میکنند. بدون تعریف صحیح مجوزها، امنیت اپلیکیشن به خطر میافتد و عملکرد آن ممکن است با مشکل مواجه شود.
23. سه چرخه کلیدی در طول عمر Activity کداماند؟
- طول عمر کامل (Entire Lifetime): از onCreate تا onDestroy
- طول عمر قابل مشاهده (Visible Lifetime): از onStart تا onStop
- طول عمر پیشزمینه (Foreground Lifetime): از onResume تا onPause
24. آیا شرایطی وجود دارد که برخی مشخصههای منابع بر Locale اولویت داشته باشند؟
بله. در برخی موارد، برخی مشخصهها میتوانند نسبت به Locale اولویت داشته باشند. دو استثنای شناختهشده در این زمینه MCC (کد کشور موبایل) و MNC (کد شبکه موبایل) هستند.
25. وضعیتهای مختلف یک Process کداماند؟
یک فرآیند در اندروید میتواند یکی از چهار وضعیت زیر را داشته باشد:
- فرآیند دارای Activity پیشزمینه (Foreground Activity)
- فرآیند دارای Activity قابل مشاهده (Visible Activity)
- فرآیند پسزمینه (Background Activity)
- فرآیند خالی (Empty Process)
26. Dalvik چه نقشی در توسعه اندروید دارد؟
Dalvik یک ماشین مجازی است که اپلیکیشنهای اندرویدی در آن اجرا میشوند. این ماشین مجازی امکان اجرای همزمان چند اپلیکیشن را بهصورت بهینه فراهم کرده و به مدیریت بهتر حافظه کمک میکند.
27. چگونه میتوان از ANR جلوگیری کرد؟
یکی از راههای جلوگیری از ANR، اجرای عملیات سنگین در Threadهای فرعی است. با انتقال پردازشهای زمانبر از Thread اصلی، پاسخگویی اپلیکیشن حفظ میشود.
28. AndroidManifest.xml چیست؟
این فایل در ریشه هر پروژه اندرویدی قرار دارد و شامل اطلاعات ضروری درباره اپلیکیشن است؛ اطلاعاتی که سیستم اندروید باید قبل از اجرای برنامه از آنها مطلع باشد. وجود این فایل برای هر اپلیکیشن اندرویدی الزامی است.
29. چگونه یک دستگاه اندرویدی را برای توسعه آماده کنیم؟
برای آمادهسازی دستگاه اندرویدی جهت توسعه، مراحل زیر را انجام دهید:
- اپلیکیشن را در AndroidManifest بهعنوان debuggable مشخص کنید.
- گزینه USB Debugging را در تنظیمات دستگاه فعال کنید.
- سیستم را برای شناسایی دستگاه اندرویدی پیکربندی کنید.
30. چه زبانهایی برای توسعه اندروید استفاده میشوند؟
زبانهای متداول برای توسعه اپلیکیشنهای اندرویدی عبارتاند از:
- Java: زبان کلاسیک و رایج برای شروع توسعه اندروید؛ پشتیبانیشده در IDEهایی مانند IntelliJ و Eclipse.
- Kotlin: زبانی مدرن، ایمن و شیگرا که بهطور رسمی توسط گوگل پشتیبانی میشود؛ قابل استفاده در Android Studio.
- C#: امکان توسعه اپلیکیشنهای اندروید (و iOS) با استفاده از Visual Studio.
- Python: زبانی پویا که با ابزارهایی مانند Pydroid 3 و Dcoder برای اندروید قابل استفاده است.
- سایر زبانها: شامل C++ و HTML5 که با ابزارها و ویرایشگرهای مختلف قابل پیادهسازی هستند.
31. سرویس (Service) در اندروید چیست؟
سرویس یک کامپوننت اپلیکیشنی در اندروید است که به برنامه اجازه میدهد عملیات طولانیمدت را بدون نیاز به تعامل مستقیم کاربر و در پسزمینه اجرا کند. یک سرویس میتواند حتی زمانی که اپلیکیشن بسته شده یا کاربر به برنامه دیگری منتقل شده است، به فعالیت خود ادامه دهد.
32. کاربرد Bundle در اندروید چیست؟
Bundle برای انتقال دادهها بین Activityهای مختلف استفاده میشود. این ساختار رفتاری مشابه یک HashMap دارد و معمولاً برای جابهجایی دادههای ساده مانند رشتهها و اعداد به کار میرود.
نمونه استفاده:
Bundle b = new Bundle();
b.putString("Email", "abc@xyz.com");
i.putExtras(b); // i یک Intent است
33. هاتاسپات وایفای قابل حمل چیست؟
هاتاسپات وایفای قابل حمل قابلیتی است که به کاربر اجازه میدهد اتصال اینترنت موبایل خود را با سایر دستگاهها به اشتراک بگذارد. بهعنوان مثال، میتوان از یک گوشی اندرویدی بهعنوان منبع اینترنت برای اتصال لپتاپ یا تبلت استفاده کرد.
34. Android Debug Bridge (ADB) چیست؟
ADB یک ابزار خط فرمان است که امکان برقراری ارتباط بین سیستم توسعهدهنده و دستگاه اندرویدی یا شبیهساز را فراهم میکند. این ابزار به توسعهدهندگان اجازه میدهد دستورات شِل را اجرا کرده، اپلیکیشنها را نصب یا اجرا کنند و فرآیند دیباگ را مدیریت نمایند.
35. DDMS چیست؟
DDMS یا Dalvik Debug Monitor Server ابزاری برای اشکالزدایی در اندروید است که قابلیتهای زیر را ارائه میدهد:
- فوروارد کردن پورتها
- مشاهده اطلاعات Thread و حافظه
- بررسی Logcat
- گرفتن اسکرینشات از دستگاه
- ردیابی ترافیک شبکه
- شبیهسازی تماسها و پیامهای دریافتی
- شبیهسازی دادههای موقعیت مکانی
36. چرخه حیات Activity در اندروید چگونه است؟
چرخه حیات Activity شامل متدهای زیر است:
- onCreate(): ایجاد Activity و مقداردهی اولیه نماها و دادهها
- onStart(): قابل مشاهده شدن Activity
- onResume(): شروع تعامل Activity با کاربر
- onPause(): انتقال Activity به پسزمینه
- onStop(): خارج شدن Activity از دید کاربر
- onDestroy(): بسته شدن کامل Activity
- onRestart(): اجرای مجدد Activity پس از توقف
37. سنسورها در اندروید چیستند؟
دستگاههای اندرویدی دارای مجموعهای از سنسورهای داخلی هستند که دادههای مربوط به حرکت، جهتگیری و شرایط محیطی را اندازهگیری میکنند. این سنسورها میتوانند سختافزاری یا نرمافزاری باشند و به سه دسته اصلی تقسیم میشوند:
- سنسورهای موقعیت (Position Sensors): اندازهگیری جهت و موقعیت فیزیکی دستگاه
- سنسورهای حرکتی (Motion Sensors): شامل شتابسنج، ژیروسکوپ و سنسور گرانش
- سنسورهای محیطی (Environmental Sensors): اندازهگیری دما، رطوبت، فشار و سایر عوامل محیطی
38. فایل AndroidManifest.xml چیست و چرا به آن نیاز داریم؟
AndroidManifest.xml فایلی ضروری است که اطلاعات پایه اپلیکیشن را در اختیار سیستم اندروید قرار میدهد. این فایل در ریشه پروژه قرار دارد و وظایف زیر را بر عهده دارد:
- تعیین نام منحصربهفرد بسته (Package Name)
- معرفی اجزای اپلیکیشن مانند Activityها و Serviceها
- مشخص کردن کلاسهایی که این اجزا را پیادهسازی میکنند
39. دیالوگباکسهای پشتیبانیشده در اندروید کداماند؟
اندروید بهصورت پیشفرض از چهار نوع دیالوگباکس پشتیبانی میکند:
- AlertDialog: نمایش پیام و دریافت تصمیم کاربر
- DatePickerDialog: انتخاب تاریخ
- TimePickerDialog: انتخاب زمان
- ProgressDialog: نمایش وضعیت پیشرفت عملیات
40. تفاوت بین Class، File و Activity در اندروید چیست؟
- Class: فرم کامپایلشده یک فایل Java است که برای تولید فایل اجرایی APK استفاده میشود.
- File: یک واحد ذخیرهسازی داده یا منابع است که میتواند شامل انواع مختلف اطلاعات باشد.
- Activity: یک صفحه مستقل در اپلیکیشن است که رابط کاربری گرافیکی را نمایش میدهد و کاربر مستقیماً با آن تعامل دارد؛ مانند صفحه شمارهگیری یا نمایش ایمیل.
41. کانتکست (Context) چیست؟
کانتکست در اندروید به وضعیت فعلی اپلیکیشن یا یک شیء خاص اشاره دارد و امکان دسترسی به منابع سیستمی مانند پایگاه داده، تنظیمات (Preferences)، منابع (Resources) و سرویسها را فراهم میکند. بهطور کلی دو نوع Context در اندروید وجود دارد:
- Activity Context: این نوع کانتکست به چرخه حیات یک Activity وابسته است و زمانی استفاده میشود که نیاز دارید عملیات شما با طول عمر همان Activity هماهنگ باشد.
- Application Context: این کانتکست به چرخه حیات کل اپلیکیشن متصل است و در مواقعی استفاده میشود که به کانتکستی مستقل از Activity نیاز دارید، مانند کار با سرویسها یا دادههای سراسری اپلیکیشن.
42. Toast چیست و سینتکس آن چگونه است؟
Toast پیامی کوتاه و موقتی است که برای اطلاعرسانی وضعیت یک عملیات به کاربر نمایش داده میشود. این پیام بهصورت خودکار پس از مدت کوتاهی محو میشود و امکان تعامل کاربر با آن وجود ندارد.
نمونه سینتکس:
Toast.makeText(ProjectActivity.this, "Your message here", Toast.LENGTH_LONG).show();43. تفاوت بین Intent صریح و Intent ضمنی چیست؟
Intent صریح (Explicit Intent): در این نوع Intent، کامپوننت مقصد بهصورت مستقیم مشخص میشود و سیستم اندروید دقیقاً میداند کدام Activity یا Service باید Intent را پردازش کند.
مثال:
Intent i = new Intent(this, ActivityTwo.class); // ActivityTwo کامپوننت هدف است
i.putExtra("Value1","This is ActivityTwo");
i.putExtra("Value2","This Value two for ActivityTwo");
startActivity(i);Intent ضمنی (Implicit Intent): در Intent ضمنی، تنها نوع عمل موردنظر مشخص میشود و سیستم اندروید تصمیم میگیرد کدام کامپوننت توانایی پردازش آن را دارد. در این حالت، کامپوننت هدف بهصورت مستقیم تعریف نمیشود.
مثال:
Intent i = new Intent(ACTION_VIEW, Uri.parse("http://www.interviewbit.com"));
startActivity(i);44. تکنیکهای رفع مشکل زمانی که یک اپلیکیشن مکرراً کرش میکند چیست؟
در صورتی که یک اپلیکیشن اندرویدی بهطور مداوم دچار Crash میشود، میتوان از روشهای زیر استفاده کرد:
- بررسی سازگاری (Compatibility Check): اطمینان از سازگاری اپلیکیشن با نسخه سیستمعامل و سختافزار دستگاه.
- مدیریت حافظه (Memory Management): برخی مشکلات به دلیل کمبود حافظه رخ میدهند. بهینهسازی مصرف حافظه میتواند از کرش جلوگیری کند.
- حذف دادهها و کش اپلیکیشن: پاکسازی دادهها و حافظه کش میتواند خطاهای موقتی را برطرف کرده و عملکرد اپلیکیشن را بهبود دهد.
45. حالتهای مختلف راهاندازی (Launch Modes) در اندروید کداماند؟
اندروید چند حالت مختلف برای راهاندازی Activityها ارائه میدهد:
- Standard: در این حالت، هر بار یک نمونه جدید از Activity ایجاد میشود، حتی اگر نمونهای از آن در پشته وجود داشته باشد.
- singleTop: مشابه حالت Standard است، با این تفاوت که اگر Activity موردنظر در بالای پشته قرار داشته باشد، نمونه جدیدی ایجاد نمیشود.
- singleTask: در این حالت، Activity بهعنوان ریشه یک Task جدید اجرا میشود و اگر نمونهای از آن وجود داشته باشد، Activityهای بالای آن از پشته حذف میشوند.
- singleInstance: مشابه singleTask است، اما این Activity تنها عضو Task خود خواهد بود و هیچ Activity دیگری در همان Task اجرا نمیشود.
این حالتها به توسعهدهندگان کمک میکنند نحوه مدیریت پشته Activityها را متناسب با منطق اپلیکیشن کنترل کنند.
46. Broadcast Receiver چیست و چگونه پیادهسازی میشود؟
Broadcast Receiver مکانیزمی در اندروید است که برای دریافت و واکنش به رویدادهای سطح سیستم یا اپلیکیشن استفاده میشود؛ رویدادهایی مانند دریافت پیامک، تماس ورودی، تغییر وضعیت شبکه یا شارژ باتری.
این کامپوننت بهصورت یک زیرکلاس از BroadcastReceiver پیادهسازی میشود و پیامها به شکل یک شیء Intent به آن ارسال میشوند.
نمونه پیادهسازی:
public class MyReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
// کد شما اینجا
}
}47. تفاوت Serializable و Parcelable چیست؟ کدام برای اندروید بهتر است؟
برای انتقال داده بین Activityها از طریق Intent، شیء موردنظر باید قابل سریالسازی باشد. در اندروید دو روش متداول وجود دارد:
Serializable
Serializable یک اینترفیس استاندارد جاوا است. با پیادهسازی آن، جاوا بهصورت خودکار فرآیند سریالسازی را انجام میدهد. این روش از Reflection استفاده میکند، اشیای موقتی زیادی ایجاد میشود و در نتیجه سربار حافظه و افت عملکرد به همراه دارد.
Parcelable
Parcelable یک اینترفیس مخصوص اندروید است که در آن فرآیند سریالسازی بهصورت دستی پیادهسازی میشود. در این روش از Reflection استفاده نمیشود، مصرف حافظه کمتر است و عملکرد بهتری دارد. به همین دلیل، Parcelable گزینه بهینهتر و توصیهشده برای توسعه اپلیکیشنهای اندرویدی است.
48. تفاوت Service و Thread چیست؟
Service
Service یک کامپوننت اپلیکیشنی است که برای اجرای عملیات طولانیمدت در پسزمینه، بدون نیاز به تعامل کاربر استفاده میشود. سرویسها میتوانند مستقل از Activityها اجرا شوند و حتی در صورت بسته شدن رابط کاربری، به کار خود ادامه دهند.
Thread
Thread یک واحد اجرای همزمان در داخل اپلیکیشن است که معمولاً برای انجام عملیات سنگین خارج از Thread اصلی استفاده میشود. Thread به چرخه حیات اپلیکیشن وابسته است و با بسته شدن اپلیکیشن، اجرای آن نیز متوقف میشود.
49. اهمیت فایل .dex چیست؟
اپلیکیشنهای اندرویدی در نهایت به فایلهای .dex (Dalvik Executable) کامپایل میشوند. این فایلها شامل بایتکدی هستند که توسط ماشین مجازی Dalvik یا ART اجرا میشود و سپس در قالب فایل .apk بستهبندی میگردند.
فرمت .dex برای استفاده بهینه از حافظه و اجرای سریعتر در دستگاههای اندرویدی طراحی شده است.
50. تفاوت Fragment و Activity چیست؟
Fragment و Activity هر دو از اجزای اصلی ساختار اپلیکیشنهای اندرویدی هستند، اما نقش متفاوتی دارند:
- Activity:: اکتیویتی یک واحد مستقل از اپلیکیشن است که یک صفحه کامل از رابط کاربری را نمایش میدهد. هر اپلیکیشن اندرویدی حداقل یک Activity دارد و هر Activity چرخه حیات مستقل خود را داراست.
- Fragment: فرگمنت بخشی از رابط کاربری یک Activity است و بهتنهایی قابل اجرا نیست. Fragmentها داخل Activity قرار میگیرند و به توسعهدهندگان اجازه میدهند رابط کاربری ماژولار، پویا و چندبخشی ایجاد کنند. هر Fragment چرخه حیات مخصوص خود را دارد، اما به چرخه حیات Activity میزبان وابسته است.
استفاده از Fragmentها باعث میشود رابط کاربری به بخشهای کوچکتر و قابل مدیریتتر تقسیم شود و امکان پیادهسازی طراحیهای منعطف و چندپنجرهای فراهم گردد.
جمعبندی
اندروید بهعنوان یک سیستمعامل متنباز و چندمنظوره، نقش مهمی در تحول دنیای فناوری ایفا کرده و بستری گسترده برای کاربران و توسعهدهندگان فراهم آورده است. این پلتفرم تنها به گوشیهای هوشمند محدود نمیشود و امروز در تبلتها، تلویزیونهای هوشمند، ساعتهای هوشمند و حتی خانههای هوشمند حضوری پررنگ دارد.
با توجه به رشد مداوم فناوری و گسترش اکوسیستم اندروید، آینده این سیستمعامل روشن و سرشار از قابلیتهای نوآورانه خواهد بود. اندروید همچنان در مسیر توسعه و تکامل حرکت میکند و امکان استفاده هوشمندانهتر و مؤثرتر از فناوری را برای طیف وسیعی از کاربران فراهم میسازد.