কম্পিউটার টিউটোরিয়াল

Android-এ Parcelable এবং Serializable-এর পার্থক্য

Serializable

Serializable হল একটি মার্কার ইন্টারফেস বা খালি ইন্টারফেস বলতে পারেন। এর কোনো প্রি-ইমপ্লিমেন্টেড মেথড নেই। Serializable অবজেক্টকে বাইট স্ট্রিমে রূপান্তর করে। তাই ব্যবহারকারী একティ আক্টিভিটিতে থেকে অন্য আক্টিভিটিতে ডেটা পাস করতে পারে। Serializable-এর প্রধান সুবিধা হল সৃষ্টি ও ডেটা পাস করা খুব সহজ কিন্তু এটি Parcelable-এর তুলনায় ধীর প্রক্রিয়া।

Serializable উদাহরণ

import java.io.Serializable;

class serializableObject implements Serializable {
    String name;

    public serializableObject(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Parcelable

Parcelable, Serializable-এর চেয়ে দ্রুত। Parcelable অবজেক্টকে বাইট স্ট্রিমে রূপান্তর করে এবং দুটি আক্টিভিটির মধ্যে ডেটা পাস করে। Parcelable কোড লেখা Serialization-এর তুলনায় কিছুটা জটিল। এটি দুটি আক্টিভিটির মধ্যে ডেটা পাস করার সময় বেশি টেম্পরারি অবজেক্ট তৈরি করে না।

Parcelable উদাহরণ

import android.os.Parcel;
import android.os.Parcelable;

class parcleObject implements Parcelable {
    private String name;

    protected parcleObject(Parcel in) {
        this.name = in.readString();
    }

    public parcleObject(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static final Creator<parcleObject> CREATOR = new Creator<parcleObject>() {
        @Override
        public parcleObject createFromParcel(Parcel in) {
            return new parcleObject(in);
        }

        @Override
        public parcleObject[] newArray(int size) {
            return new parcleObject[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.name);
    }
}

মূল পার্থক্যগুলো এক নজরে

বিষয় Serializable Parcelable
গতি ধীর দ্রুত
কোড জটিলতা সহজ জটিল
মেমরি দক্ষতা কম (অতিরিক্ত টেম্প অবজেক্ট তৈরি করে) উচ্চ (টেম্প অবজেক্ট তৈরি করে না)
উপযোগিতা সাধারণ উদ্দেশ্যে Android-এ ইন্টার-কম্পোনেন্ট কমিউনিকেশনের জন্য সর্বোত্তম
  1. অ্যান্ড্রয়েডে gravity এবং layout_gravity-এর পার্থক্য

  2. অ্যান্ড্রয়েডে onCreate() এবং onStart() এর পার্থক্য

  3. অ্যান্ড্রয়েডে fill_parent এবং wrap_content এর পার্থক্য

  4. সাইবারস্কোয়াটিং বনাম টাইপোস্কোয়াটিং: মূল পার্থক্য ও আইনি নয়ামত