پشتیبان گیری از اطلاعات کاربران با AutoBackup در اندروید
9 مهر 1399 1399-07-09 14:16پشتیبان گیری از اطلاعات کاربران با AutoBackup در اندروید
اگه به Manifest پروژه ت نگاه کنی ممکنه یه همچی کدی رو توی تگ Application ببینی : android:allowBackup=”true”
حالا شاید بپرسی که این کد چیه و اصلا چه کاری میکنه؟!
با کمک این کد میتونی از اطلاعات کاربران بکآپ (پشتیبان) بگیری. اگه این تکه کد رو به تگ Application اضافه کنی، سیستم اندروید توی دستگاه های اندروید 6 به بالا یا به عبارتی API 23 به بالاتر میاد از اطلاعات کاربران یه نسخه پشتیبان میگیره و توی گوگل درایو (Google drive) ذخیره میکنه.
گوگل برای هر اپلیکیشنی حداکثر 25مگابات رو برای این اطلاعات توی گوگل درایو اختصاص میده.
این پشتیبان گیری به چه دردی میخوره؟!
ممکنه کاربر اپلیکیشن شما رو حذف کنه و بعد یه مدتی دوباره بخواد نصبش کنه!
گوگل از این اطلاعات برای استفاده بهتر کاربر از اپلیکیشن شما استفاده میکنه.
سیستم عامل اندروید از این موارد موجود توی اپلیکیشن شما پشتیبان گیری میکنه
- Shared preferences files.
- Files saved to your app’s internal storage, accessed by getFilesDir() or getDir(String, int).
- Files in the directory returned by getDatabasePath(String), which also includes files created with the – SQLiteOpenHelper class.
- Files on external storage in the directory returned by getExternalFilesDir(String)
برای فعال یا غیر فعال کردن این قابلیت باید از کد زیر استفاده کنی
<manifest ... > <application android:allowBackup="true" ... > </application> </manifest>
درواقع خاصیت true برای فعال کردن و false هم برای غیر فعال کردن این قابلیت هست.
شخصی سازی فایل ها برای پشتیان گیری از اطلاعات کاربران
واسه اطلاعاتی مثل توکن ها و اطلاعات اعتبار سنجی کاربر که در صورت بکاپ گیری از این اطلاعات مشکلاتی در عملکرد برنامه پیش میاد.
مانند توکن لاگین کاربر که برای خودم پیش آمد. در این حالت کاربر لاگین میکرد، از اطلاعات برنامه (شامل توکن) بکاپ گرفته می شد و بعد از حذف و نصب مجدد برنامه، اطلاعات بکاپ بازگردانی میشدند و کاربر با اپلیکیشن لاگین شده مواجه میشد!
برای جلوگیری از این مسائل میتونی فایل هایی که پشتیبان گیری میشون رو شخصی سازی کنی.
توی AndroidManifest.xml فیلد android: fullBackupContent رو به <application> اضافه کن.
این ویژگی به یک فایل XML اشاره داره که حاوی قوانین پشتیبان گیریه. مثلا:
<application android:fullBackupContent="@xml/my_backup_rules"> </application>
نحوه ساختن و نوشتن قوانین جدید برای پشتیبان گیری
یه فایل XML به اسم my_backup_rules.xml توی مسیر / res / xml / درست کن.
حالا باید توی این فایل ، قوانین رو با <include> و <exclude> اضافه کنی.
نمونه زیر از کلیه shared preferences ها به جز دستگاه، پشتیبان تهیه می کنه :
<?xml version="1.0" encoding="utf-8"?> <full-backup-content> <include domain="sharedpref" path="."/> <exclude domain="sharedpref" path="device.xml"/> </full-backup-content>
سینتکس XML واسه فایل پیکربندی :
<full-backup-content> <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" requiredFlags=["clientSideEncryption" | "deviceToDeviceTransfer"] /> <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> </full-backup-content>
تکه کد نهایی :
<application android:allowBackup="true" android:fullBackupContent="@xml/my_backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" android:theme="@style/AppTheme">