Android programmer ••••••••••••••••• http://zires.ir
اندروید - پشتیبان گیری از داده های کاربر (SharedPreferences) با استفاده از Auto Backup
برای پشتیبان گیری از داده ها در اندروید، Auto Backup بطور خودکار از داده های کاربر، مربوط به برنامه هایی که در اندروید 6.0 (API 23 یا بالاتر) اجرا می شوند، پشتیبان گیری می کند. این اطلاعات با محدودیت 25 مگابایت به ازای هر برنامه و در یک پوشه خصوصی در Google Drive نگهداری میشوند. میزان حافظه مصرفی توسط اطلاعات بکاپ برنامه ها جدا از سهمیه 15 گیگابایتی Google Drive میباشد.
اطلاعاتی که پشتیبان گیری میشوند شامل فایل هایی است که توسط سیستم به برنامه اختصاص داده شده است:
- 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).
فعال و غیرفعال کردن backup در پروژه اندروید
در فایل manifest برنامه، با استفاده از android:allowBackup میتوانید پشتیبان گیری از اپ خود را فعال یا غیر فعال کنید:
<manifest ... >
...
<application android:allowBackup="true" ... >
...
</application>
</manifest>
شخصی سازی فایل ها برای پشتیان گیری
برای اطلاعاتی مانند توکن ها و اطلاعات اعتبار سنجی کاربر که در صورت بکاپ گیری از این اطلاعات مشکلاتی در عملکرد برنامه پیش می آید مانند توکن لاگین کاربر که برای خودم پیش آمد. در این حالت کاربر لاگین میکرد، از اطلاعات برنامه (شامل توکن) بکاپ گرفته می شد و بعد از حذف و نصب مجدد برنامه، اطلاعات بکاپ بازگردانی میشدند و کاربر با اپلیکیشن لاگین شده مواجه میشد!
برای جلوگیری از این مسائل میتوانید فایل هایی که پشتیبان گیری میشوند را شخصی سازی کنید.
- در 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>
منبع:
مطلبی دیگر از این انتشارات
مهاجرت از اندروید به ای او اس
مطلبی دیگر از این انتشارات
شی Context در اندروید
مطلبی دیگر از این انتشارات
هفت کتاب مهمی که هر برنامه نویس باید بخواند !