مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت هفتم

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



۶۱. خلاصه ای از روند کار ویو های سفارشی ارائه دهید :

  • ساخت کلاسی که از View ارث بری کرده است
  • ساخت فایل res/values/attrs.xml و تعریف خصوصیت هایی که میخواهید همراه ویو سفارشی خود استفاده کنید.
  • اضافه کردن متد های سازنده در کلاس ویو خود و دریافت خصوصیت ها و آماده سازی آبجکت paint
  • ـ Override کردن متد های onSizeChanged و onMeasure
  • رسم ویو توسط override کردن متد onDraw


۶۲. چند راه برای بهینه سازی استفاده از ویو ها را بیان کنید:

  • بررسی رسم های بیش از اندازه : اپلیکیشن خود را بر روی یک دستگاه اندروید نصب کنید و گزینه debug gpu overview را فعال کنید
  • ویو های خود را به صورت سلسله مراتبی مسطح کنید : با استفاده از ابزار Hierarchy Viewer اندروید استودیو ویو های خود را مسطح کنید
  • زمان رسم هر ویو را اندازه بگیرید


۶۳ـ Bitmap pooling در اندروید چیست ؟

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


۶۴. چگونه یک Bitmap را در حافظه لود کنیم ؟

برای این سوال این مقاله را بخوانید ؛ نمیتونم بهتر این مسئله رو توضیح بدم =((


۶۵. سطوح محافظت مجوز ها را بیان کنید :

  • ـNormal : مجوز های کم خطر معمولا در سطح میان اپلیکیشنی هستند که برای محافظت از آن ها سیستم اندروید فقط در هنگام نصب نام آن ها را می نویسد و نیازی به تایید کاربر ندارد.
  • ـDangerous : مجوز های خطرناک معمولا به تاییدیه ( یا هر پیغام دیگری به کاربر ) نیاز دارند
  • ـSignature : این مجوز تنها به اپلیکیشن هایی داده می شود که با همان امضایی ساخته شده باشند که اپلیکیشن هدف با آن ساخته شده است. ( نیازی به تاییدیه کاربر ندارد. )
  • ـSignatureOrSystem : این نوع مجوز ها تنها به اپلیکیشن های سیستمی و یا اپلیکیشن های دارای همان امضای اپلیکیشن هدف داده می شود


۶۶. خطای Application not responding چیست؟ چگونه از به وجود آمدن این خطا جلوگیری کنیم ؟

این خطا هنگامی پیش می آید که رابط کاربری برای حداقل ۵ ثانیه متوقف شود؛ این مشکل معمولا با متوقف کردن Main Thread به وجود می آید و راه جلوگیری از آن پیش بردن فعالیت های Main Thread است.


۶۷.کلاس Singleton در اندروید چیست ؟

کلاس Singleton کلاسی است که می تواند آبجکتی بسازد که در تمامی دیگر کلاس ها قابل استفاده باشد.


۶۸. تفاوت تابع هایی Commit و apply در SharedPrefrences چیست ؟

ـCommit : داده ها را به صورت همزمان می نویسد و نتیجه را توسط یک متغیر boolean باز میگرداند.

ـApply : به صورت غیر همزمان انجام می شود و هیچ boolean ای باز نمیگرداند؛ اگر یک تابع apply در حال اجرا باشد و یک commit را اجرا کنیم ، تابع commit منتظر می ماند تا کار apply پایان بیابد و بعد از آن شروع به کار میکند.


۶۹ـ RecyclerView چگونه کار میکند؟

RecyclerView برای نمایش لیست های طولانی طراحی شده است. فرض کنید می خواهید ۱۰۰ آیتم را نمایش بدهید؛ یک راه این است که ۱۰۰ ویو بسازید و آن ها را آماده نمایش بکنید ولی خب راه مناسبی نیست چون در لحظه به عنوان مثال ۱۰ عدد از این ویو ها را بیش تر نمی توانید نشان دهید. پس باقی ویو ها تنها حافظه را اشغال میکنند و پرفورمنس را خراب می کنند. ریسایکلر ویو تنها ۱۰ ویو می سازد و برای باقی ویو هایی که در صفحه نیستند این ویو ها را بازیابی می کند و این کار سرعت و مصرف حافظه را ۱۰ برابر بهبود می سازد.

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


۷۰. تفاوت های RecyclerView و ListView چیستند ؟

  • الگو ViewHolder : ریسایکلر ویو از الگو ViewHolder استفاده می کند که در لیست ویو اجباری نیست؛ ریسایکلر ویو هنگام اسکرول سلول ها را بازیابی می کند.
  • الگو ViewHolder چیست ؟ یک آبجکت ViewHolder ویو های کامپوننتی را درون یک لی اوت تگ دار ذخیره می کند و تنها یک بار آن ها را با findViewById فراخوانی می کنیم و در بار های بعد فقط آن ویو ها بازیابی می شوند در حالی که لیست ویو بار ها و بار ها هنگام اسکرول findViewById را تکرار می کند و این عمل سرعت را پایین می آورد
  • ـ LayoutManager : در لیست ویو تنها نوع ویو ای که در دسترس است به صورت عمودی است اما ریسایکلر ویو لیست را از container خود ریسایکلر ویو جدا کرده از این رو شما می توانید آیتم ها را در هنگام اجرا در container های مختلف ( Linear یا grid ) توسط LayoutManager نمایش دهید
  • ـItem Animator : لیست ویو انیمیشن های زیادی را پشتیبانی نمی کند اما ریسایکلر ویو بعد دیگری را وارد ماجرا کرد...



ترجمه متنی از Anitaa Murthy

تشکر بابت مطالعه پست
لایک و حمایت یادتون نره
سوالی بود درخدمتم
نوشته شده با ❤️ توسط کوچیکتون حمیدرضا شجراوی =)))