تهیه Backup از اطلاعات کاربران به صورت خودکار

Backup گیری به طور خودکار از داده های کاربر در برنامه هایی که Android 6.0 (API level 23) یا بالاتر را هدف قرار داده و اجرا می کنند، پشتیبان تهیه می کند. Android با بارگذاری اطلاعات برنامه در Google Drive کاربر، اطلاعات آن را حفظ می کند برای ذخیره سازی اطلاعات پشتیبان هزینه ای پرداخت نمی شود. برنامه شما می تواند با غیرفعال کردن پشتیبان گیری، فرآیند تهیه نسخه پشتیبان را شخصی سازی کند یا انصراف دهد.

فایل هایی که از ان ها backed up گرفته می شود:

به طور پیش فرض، پشتیبان گیری خودکار شامل پرونده هایی است که بیشتر به طور مستقیم توسط سیستم به برنامه شما اختصاص داده شده است شامل:

  • پرونده های تنظیمات مشترک
  • فایلهایی که در حافظه داخلی برنامه شما ذخیره شده اند و توسط getFilesDir () یا getDir(String, int) قابل دسترسی هستند.
  • پرونده هایی که در فهرست قرار دارند توسط (getDatabasePath (String برگردانده می شوند که شامل پرونده های ایجاد شده با کلاس SQLiteOpenHelper نیز می شود.
  • پرونده های ذخیره سازی خارجی در دایرکتوری که توسط getExternalFilesDir (String)برگردانده شده اند.

به یاد داشته باشیم که پشتیبان گیری خودکار از پرونده های موجود در فایل های که توسط ()getCacheDir  ، getCodeCacheDir () و getNoBackupFilesDir () برگردانده شده اند مستثنی است. پرونده های ذخیره شده در این مکانها فقط به طور موقت مورد نیاز هستند و عمداً از عملیات پشتیبان گیری خارج می شوند.

محل Backup

داده های مربوط به پشتیبان گیری در یک پوشه خصوصی در حساب Google Drive کاربر، با محدودیت 25 مگابایت برای هر برنامه ذخیره می شوند. به یاد داشته باشیم که وقتی از داده ها Backup تهیه می شود، نسخه پشتیبان قبلی (در صورت وجود) حذف می شود.

کاربران می توانند لیستی از برنامه هایی را که در برنامه Android Drive Google پشتیبان تهیه شده اند، مشاهده کنند. در دستگاه مجهز به Android ، کاربران می توانند این لیست را بخش Settings > Backup  پیدا کنند.

همانطور که در مثال های زیر نشان داده شده، پشتیبان گیری از هر دستگاه در طول عمر دستگاه در مجموعه داده های جداگانه ذخیره می شود:

  • اگر کاربر دو دستگاه داشته باشد برای هر دستگاه مجموعه داده پشتیبان وجود دارد.
  • اگر کاربر تنظیمات کارخانه را بازنشانی کند و سپس دستگاه را با همان حساب تنظیم کند، نسخه پشتیبان در یک مجموعه داده جدید ذخیره می شود. مجموعه داده های منسوخ شده پس از یک دوره عدم فعالیت به طور خودکار حذف می شوند.

نکته: اگر مقدار داده بیش از 25 مگابایت باشد، سیستم دستور () QuUEEExceded () فراخوانی کرده و از داده ها پشتیبان تهیه نمی کند. این سیستم به صورت دوره ای بررسی می کند که آیا مقدار داده بعداً زیر آستانه 25 مگابایت قرار می گیرد یا خیر و در صورت کمتر بودن حجم داده ها از 25 مگابایت پشتیبان گیری خودکار را ادامه می دهد.

در نهایت وقتی همه شرایط زیر فراهم باشد، پشتیبان گیری به طور خودکار انجام می شود:

  • کاربر پشتیبان گیری را در دستگاه فعال کرده است. در Android 9 ، این تنظیمات در Settings > System > Backup است.
  • حداقل 24 ساعت از آخرین نسخه پشتیبان می گذرد.
  • دستگاه بیکار است.
  • دستگاه به شبکه Wi-Fi متصل است.

در هنگام پشتیبان گیری خودکار، سیستم برنامه را خاموش می کند تا مطمئن شود دیگر در سیستم فایل نمی نویسد. به طور پیش فرض، سیستم پشتیبان برنامه هایی را که در پیش زمینه اجرا می شوند نادیده می گیرد زیرا کاربران متوجه خاموش شدن برنامه های خود می شوند. با تنظیم ویژگی android;backupInForeground می توانید رفتار پیش فرض را نادیده بگیرید.

فعال کردن و غیرفعال کردن backup

برنامه هایی که Android 6.0 (سطح API 23) یا بالاتر را دارند به طور خودکار در از آن ها backup  گرفته می شود. در فایل manifest  برنامه خود، مقدار boolean  اندروید را قرار داده و گزینه allowBackup برای فعال یا غیرفعال کردن پشتیبان گیری را انتخاب کنید. برای تصری در کار خود می توانید از کد زیر استفاده کنید:

    …

        …

 اگر برنامه شما دارای اطلاعات حساسی است که نمی خواهید از آن بک آپ تهیه کنید به بخش تنظیمات اندروید رفته ودر قسمت allowBackup to false پشتیبان گیری را غیر فعال کنید.

وارد یا خارج کرده فایل ها برای پشتیبان گیری

به طور پیش فرض، سیستم تقریباً از همه داده های برنامه پشتیبان تهیه می کند. اما شما می توانید فایل های مورد نیاز خود را از گزینه پشتیبان گیری حذف و یا اضافه کنید. برای این کار:

  1. در xml ، ویژگی android: fullBackupContent را به عنصر اضافه کنید. این ویژگی به یک فایل XML اشاره دارد که شامل قوانین پشتیبان است. مثلا:
<application …
android:fullBackupContent=”@xml/my_backup_rules”>
  1. یک فایل XML به نام xml در دایرکتوری res / xml / ایجاد کنید. در داخل پرونده ، قوانینی با عناصر و اضافه کنید. نمونه زیر از همه تنظیمات مشترک به جز device.xml پشتیبان تهیه می کند:

نحو پیکربندی XML

نحو XML برای پرونده پیکربندی در زیر نشان داده شده است:

    <include domain=[“file” | “database” | “sharedpref” | “external” | “root”]
path=”string”
requireFlags=[“clientSideEncryption” | “deviceToDeviceTransfer”] />
<exclude domain=[“file” | “database” | “sharedpref” | “external” | “root”]
path=”string” />

در داخل برچسب می توانید عناصر و را تعریف کنید:

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

توجه: پرونده های موجود در دایرکتوری هایی که توسط getCacheDir () ، getCodeCacheDir () یا getNoBackupFilesDir () برگردانده می شوند همیشه مستثنی هستند حتی اگر بخواهید آنها را وارد کنید.

پرونده یا پوشه ای را مشخص می کند که نمی خواهیم  از ان ها پشتیبانی تهیه کنیم. در اینجا چند فایل وجود دارد که به طور معمول از تهیه نسخه پشتیبان حذف می شوند:

  • پرونده هایی که شناسه های خاص دستگاه دارند یا توسط سرور صادر می شوند یا در دستگاه ایجاد می شوند. به عنوان مثال ، Firebase Cloud Messaging (FCM) باید هر بار که کاربر برنامه شما را روی دستگاه جدیدی نصب می کند، یک رمز ثبت ایجاد کند. اگر رمز ثبت قدیمی بازیابی شود، ممکن است برنامه غیرمنتظره رفتار کند.
  • اعتبار حساب یا سایر اطلاعات حساس. در نظر داشته باشید که از کاربر بخواهید برای اولین بار در هنگام راه اندازی یک برنامه بازیابی شده، احراز هویت مجدد کند به جای اینکه امکان ذخیره سازی چنین اطلاعاتی در نسخه پشتیبان را داشته باشد.
  • فایلهای مربوط به اشکال زدایی برنامه.
  • پرونده های بزرگی که باعث می شود برنامه بیش از سهمیه پشتیبان 25 مگابایت داشته باشد.

اگر برنامه شما اطلاعات حساس را روی دستگاه ذخیره می کند، می توانید شرایطی را تعیین کنید که داده های برنامه شما در پشتیبان گیری کاربر لحاظ شود. می توانید شرایط زیر را در (API level 28) یا بالاتر اضافه کنید:

  • clientSideEncryption: پشتیبان گیری کاربر با یک راز سمت مشتری رمزگذاری شده است. این فرم رمزگذاری در دستگاههایی که دارای Android 9 یا بالاتر هستند فعال است به شرطی که کاربر پشتیبان گیری را در Android 9 یا بالاتر فعال کرده باشد.
  • deviceToDeviceTransfer: کاربر در حال انتقال پشتیبان خود به دستگاه دیگری است که از انتقال محلی به دستگاه پشتیبانی می کند (به عنوان مثال Google Pixel).

اگر سیستم خود را به Android 9 ارتقا داده اید، باید پس از ارتقا، پشتیبان گیری از داده را غیرفعال کرده و دوباره فعال کنید.

برای این کار، مشخصه RequireFlags را به مقدار یا مقادیر مورد نظر در در مجموعه قوانین  backup تنظیم کنید:

my_backup_rules.xml

    <!– App data isn’t included in user’s backup

unless client-side encryption is enabled. –>

<include domain=”file” path=”.”

requireFlags=”clientSideEncryption” />

توجه: از آنجا که افزودن الزامات به XML از کار نسخه پشتیبان در نسخه های قبلی Android جلوگیری می کند ، شما باید منابع جایگزینی برای استفاده پشتیبان در دستگاه های دارای Android 8.1 (سطح API 27) یا پایین تر تهیه کنید.

اجرای BackupAgent

برنامه هایی که پشتیبان گیری خودکار را اجرا می کنند نیازی به اجرای BackupAgent ندارند. با این حال، به صورت اختیاری می توانید یک BackupAgent سفارشی را پیاده سازی کنید. انجام این کار دو دلیل دارد:

  • شما می خواهید اعلان رویدادهای پشتیبان، مانند onRestoreFinished () و onQuotaExceded (طولانی ، طولانی) را دریافت کنید. این روشهای پاسخگویی حتی اگر برنامه در حال اجرا نباشد نیز اجرا می شوند.
  • شما نمی توانید به راحتی مجموعه قوانینی را که می خواهید از آنها پشتیبان تهیه کنید با قوانین XML بیان کنید. در این موارد نادر، می توانید یک BackupAgent پیاده سازی کنید که onFullBackup(FullBackupDataOutput) را لغو کند و آنچه را که می خواهید ذخیره کند. برای حفظ اجرای پیش فرض سیستم، روش مربوطه را در superclass با onFullBackup() فراخوانی کنید.

در این مقاله قصد داریم تا درباره تهیه Backup از اطلاعات کاربران به صورت خودکار صحبت کنیم.


قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

golaleh hoseini
مدرس دوره

golaleh hoseini

مدرس دوره های سِون کلونر

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

مقالات پیشنهادی

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۶۲۶
۰
۱۳ آذر ۱۳۹۹

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۷۷۴
۰
۲۲ آذر ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۶۶۰
۰
۱۲ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۷۵۹
۰
۲۹ آبان ۱۳۹۹