بررسی انواع روش های ذخیره سازی اطلاعات در اندروید
29 آذر 1399 1399-09-29 15:18بررسی انواع روش های ذخیره سازی اطلاعات در اندروید
ذخیره سازی اطلاعات توی اندروید یه امر خیلی مهم و ضروریه.
چرا که به واسطه همین اطلاعات برنامه های شما عملیات مختلفی رو پیاده سازی میکنه.
توی اندروید ما روش های مختلفی برای ذخیره سازی اطلاعات داریم.
بعضی هاشون خیلی سبک و ساده هستن، بعضی هاشون هم سنگین و پیچیده.
هر کدوم از این روش ها برای عملیات مختلفی ساخته شده اند.
توی این پست میخوام این روش ها رو بررسی کنم.
از سبکترین روش شروع به بررسی میکنم تا به پیچیده ترین روش ها.
1) Shared Preferences
این روش برای ذخیره سازی دیتاهای اولیه استفاده میشه.
منظور از دیتاهای اولیه مثل : Int , String , Boolean , Float , Long و … هستش
این روش به کمک Key – Value اطلاعات رو ذخیره میکنه.
برای هر داده یک Key (کلید) درنظر میگیره و اون داده رو در قالب Value (مقدار) ذخیره میکنه.
هرجا که نیاز به استفاده بود فقط کافیه که از اون Key مورد نظر استفاده کنید.
این روش به صورت پیشفرض در SDK اندروید موجود هست و نیازی نیست چیزی به پروژه اضافه کنید.
2) Internal Storage
ذخیره سازی اطلاعات به صورت داخلی در فایل های سیستمی.
این روش به طور خاص برای مواردی هستش که شما باید داده ها را در سیستم فایلی دستگاه ذخیره کنید.
به طوری که برنامه های دیگه هیچ دسترسی روی این فایل ها ندارن.
برای استفاده از این روش نیازی نیستش که هیچ dependency را به برنامه پروژه اضافه کنید،
به صورت پیشفرض توی SDK اندروید هستش.
3) External Storage
از این روش اکثرا خیلی استفاده میکنن.
توی این روش داده ها رو توی یک پوشه ای به عنوان یک فایل ذخیره میکنید.
برای مثال : کاربر دوربین رو باز میکنه و عکس یا فیلم میگیره.
این عکس و فیلم به عنوان فایل توی یک پوشه ای ذخیره میشه.
برای اینکه از این روش استفاده کنید باید 2 تا permission (اجازه دسترسی) زیر رو به برنامه رو بدین.
android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
این پرمیشن ها اجازه خواندن و نوشتن فایل روی حافظه رو به شما میده که اجباری هم هستن.
4) SQLite database
این روش درواقع یک Database (دیتابیس) کامل هستش.
روش های قبلی به عبارتی صرفا برای ذخیره یکسری از اطلاعات به کار میرن.
ولی توی این روش به طور کامل میتونید دیتابیس با جداول مختلفی رو پیاده سازی کنید.
دیتابیس ها توی برنامه نویسی خیلی کاربرد دارن، مخصوصا اگر بخواین بخش آفلاین برنامه تون رو درست کنید.
برای استفاده از Sqlite نیازی به افزودن هیچ dependency نیست و به صورت پیشفرض داخل SDK اندروید موجود هستش.
5) DataStore
یک روش بسیار جدیدی هستش که گوگل اون رو جز کتابخونه های JetPack (جت پک) معرفی کرده.
این روش درواقع نسخه ارتقا و بهبود یافته روش SharedPreferences هستش.
البته DataStore (دیتااستور) فعلا در مرحله آزمایشی هستش و برای پروژه های بزرگ توصیه نمیشه.
ولی حتما یاد بگیریدش، چراکه تا چند وقت دیگه به طور کامل قراره جایگزین SharedPreferences بشه.
برای استفاده از این روش باید این dependency رو به پروژه اضافه کنی
implementation "androidx.datastore:datastore-preferences:1.0.0"
6) Room database
برای استفاده از دیتابیس این روش فوق العاده عالیه.
به طوری که دیگه چند وقتیه جایگزین SQLite هستش و کمتر کسی دیگه از SQLite استفاده میکنن.
اکثرا واسه اینکه دیتابیس رو توی پروژه هاشون پیاده سازی کنن از Room (روم) استفاده میکنن.
البته ناگفته نمونه که خوده گوگل هم اشاره کرده که از Room بجای SQLite استفاده کنید.
واسه استفاده کردن از Room باید این dependency رو به پروژه اضافه کنی.
implementation "androidx.room:room-runtime:2.2.6" kapt "androidx.room:room-compiler:2.2.6"
توی این پست روش هایی رو معرفی کردم که به طور رسمی توسط گوگل برای اندروید معرفی شدن.
روش های دیگه ای هم هستن که شاید حتی قدرت و سرعت بیشتر نسبت به موارد بالا داشته باشن مثل Realm ولی خب توی این پست صرفا ملاک روش های رسمی گوگل هستن.