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

سلام و خسته نباشید خدمت همهقسمت هفتم از مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید رو در پیش داریم که میتونید از طریق لینک های زیر به توضیحات و قسمت های قبلی دسترسی داشته باشید ، امروز میریم سراغ ده سوال بعدی...مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت اولمجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت دوممجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت سوممجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت چهارممجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت پنجممجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت ششم۶۱. خلاصه ای از روند کار ویو های سفارشی ارائه دهید :ساخت کلاسی که از 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تشکر بابت مطالعه پستلایک و حمایت یادتون نرهسوالی بود درخدمتمنوشته شده با ❤️ توسط کوچیکتون حمیدرضا شجراوی =)))