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

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


۷۱. چگونه انیمیشن swipe را در اندروید پیاده سازی می کنید؟

<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>


۷۲ـ ArrayMap یا HashMap ؟

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


۷۳. چگونه از نشت حافظه ( memory leak ) جلوگیری کنیم؟

این مقاله توضیحات مفصلی در رابطه با این سوال داده است.


۷۴.چگونه حجم فایل apk را کم کنیم ؟

  • پروگارد را برای پروژه ی خود فعال کنید
  • ـ shrinkResources را فعال کنید
  • ریسورس های اضافه را با اضافه کردن اسم ریسورس های مورد نیاز به resConfigs از پروژه حذف کنید
  • تمامی تصاویر را به webp یا vector drawable تبدیل کنید


۷۵. کامپوننت های Architecture اندروید را نام ببرید :

  • ـ Room
  • ـ LiveData
  • ـ ViewModel
  • ـ Data Binding
  • ـ Lifecycles


۷۶.تفاوت معماری های MVC و MVP و MVVM چیست ؟

معماری MVC که نام آن مخفف Model-View-Controller است به این صورت است که کلمه Model به فایل های Model داده های شما اشاره می کند View به فایل های XML شما و Controller به فایل هایی که منطق اپلیکیشن شما را پیش می برند اشاره می کند. مشکل این معماری استفاده از unit test ها است Model ها تا زمانی که فعالیتشان به چیز دیگری گره نخورده قابل تست هستند اما فعالیت Controller ها به Api های اندروید گره خورده و این مورد تست آن ها را سخت می کند همچنین انعظاف پذیری و ماژولار کردن اپلیکیشن مشکل دیگر این معماری است چون فعالیت View و Controller به هم گره خورده است. اگر ما View را تغییر دهیم مجبوریم که Controller را نیز تغییر دهیم. همچنین Maintenance نیز مشکل دیگر این معماری می باشد.


در معماری MVP که نام آن مخفف Model-View-Presenter است View تمامی فایل های XML و کلاس های اکتیویتی و فرگمنت را شامل می شود و منطق و توابع برنامه در گروه Presenter قرار میگیرند و این مورد باعث راحت تر شدن عمل unit test می شود


در معماری MVVM که نام آن مخفف Model-View-ViewModel است Model شامل کلاس های مدل اپلیکیشن و کلاس هایی که وظیفه ی آن ها دریافت داده هاست می شود و View Model ها وظیفه دریافت این داده ها و آماده سازی آن ها برای استفاده در View ها را دارند.


۷۷. قوانین S.O.L.I.D در توسعه نرم افزار چیستند ؟

  • قانون Single Responsibility
  • قانون Open-Closed
  • قانون Liskov Substitution
  • قانون Interface Segregation
  • قانون Dependency Inversion


۷۸. فرق Throw و Throws در جاوا چیست ؟

کلمه کلیدی Throw هنگامی استفاده می شود که ما میخواهیم یک خطا ( Exception ) را از یک متد یا بلاک استاتیک بازگردانیم در صورتی که کلمه کلیدی Throws نشان دهنده خطاهایی است که ممکن است توسط متد بازگردانده شوند.


۷۹. راهی برای skip کردن بلاک finally در try/catch وجود دارد‌؟

با استفاده از تابع System.exit می توانیم از اجرای بلاک finally جلوگیری کنیم و آن را بگذرانیم
متد System.exit می تواند یک خطای امنیتی ( SecurityException ) بازگردانی کند. در JVM اگر متد System.exit بدون وجود خطای امنیتی فراخوانی شود بلاک finally اجرا نخواهد شد اما اگر خطای امنیتی وجود داشته باشد بلاک finally اجرا می شود


۸۰. کلاس های ناشناس ( Anonymous ) چیستند ؟

کلاس های ناشناس همانطور که از اسم آن ها پیداست کلاس های بدون نامی هستند که فقط یک نمونه از کلاس را می سازند و توابعی از آن را اجرا می کنند

قوانین :

  • یک کلاس ناشناس حتما باید یک ابرکلاس ( super class ) یا یک اینترفیس را پیاده سازی کند یا از یک ابرکلاس مشتق شده باشد اما نمی تواند به عنوان مشتق یا ابرکلاس استفاده شود
  • یک کلاس ناشناس حتما باید تمامی توابع abstract درون ابرکلاس یا اینترفیس را پیاده سازی کند
  • یک کلاس ناشناس برای نمونه گیری همیشه از تابع سازنده ابرکلاس خود استفاده می کند.
  • مثال:
MyButton.setListener(new Button.Listener {
@override
public void (View view){
//some code
        }
});



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

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