مؤمن
مؤمن
خواندن ۱ دقیقه·۲ سال پیش

تفاوت Parcelable با Serializable در اندروید


در اندروید تمام ویوها و عمل ها بر روی Activity انجام میشه از مهمترین چیز هاییه که یک برنامه نویس اندروید باید کار باهاش رو یاد بگیره.

متاسفانه ما به صورت خیلی ساده نمیتونیم بین Activity ها شی ها رو انتقال بدیم. و برای این کار اشیا باید حتما یکی از interface های Parcelable یا Serializable رو پیاده سازی کنه.

اینکه در چه شرایطی باید کدومشون رو استفاده کرد رو در این مقاله با هم بررسی میکنیم هر کدومشون خوبی‌ها و بدی های خودشون رو دارند پس با ما همراه باشید.


Serializable:

یک interface استاندارد توی زبان جاوا هست که تنها با ارث بری کردن از آن میتوانید این ویژگی را به کلاس خود انتقال دهید. مشکل این روش این است که از بازتاب (reflection) استفاده می شود که روش کندی است. این روش اشیاء موقت زیادی ایجاد می کند و باعث جمع آوری زباله های بسیار زیادی می شود. با این حال interface (واسط) Serializable برای پیاده سازی خیلی ساده تر است.


به مثال زیر توجه کنید:

نمونه کلاس
نمونه کلاس
ارسال داده
ارسال داده
گرفتن داده
گرفتن داده


Parcelable:

به مثال زیر توجه کنید:

نمونه کلاس
نمونه کلاس


اراسل داده
اراسل داده


گرفتن داده
گرفتن داده


نتیجه گیری:
روش Parcelable سریعتر از رابط Serializable است.

واسط Parcelable در مقایسه با واسط Serializable زمان بیشتری برای پیاده سازی نیاز دارد.

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

در Serializable ها برای ماندگاری داده ها بهتر هستند، از طرف دیگر اشیاء parcelable به هیچ وجه نباید در حافظه ماندگار شوند.

برنامه نویسزبان جاوااندرویدکاتلین
یکی که به یادگیری و حل چالش‌های دنیای واقعی علاقه داره
شاید از این پست‌ها خوشتان بیاید