تغییرات در پشتیبان گیری و بازیابی در اندروید

نحوه عملکرد پشتیبان گیری و بازیابی در برنامه هایی که روی Android 12 اجرا و مورد استفاده، قرار می گیرند تغییراتی ایجاد شده است که بر اساس آن پشتیبان گیری و بازیابی Android دارای دو شکل است:

  • پشتیبان گیری Cloud: داده های کاربر در Google Drive کاربر ذخیره می شود تا بعداً بتواند در آن را در دستگاه یا دستگاه جدید بازیابی شود.
  • انتقال Device-to-device (D2D): داده های کاربر مستقیماً از دستگاه قدیمی تر وی با استفاده از کابل به دستگاه جدید کاربر ارسال می شود.

برای کسب اطلاعات بیشتر در مورد نحوه پشتیبان گیری و بازیابی داده ها، به مقاله با پشتیبان گیری خودکار از اطلاعات کاربر پشتیبان تهیه کنید و یا مقاله سرویس  پشتیبان گیری  اندروید از key-value pairs مراجعه کنید.

قابلیت انتقال D2D

برای برنامه هایی که Android 12 و بالاتر را اجرا می کنند:

  • تعیین android: allowBackup = “false” پشتیبان گیری از Google Drive را غیرفعال می کند ، اما انتقال D2D را برای برنامه غیرفعال نمی کند.
  • مشخص کردن و حذف قوانین با مکانیزم پیکربندی XML دیگر بر انتقال D2D تأثیر نمی گذارد، اگرچه همچنان بر پشتیبان گیری های Google Drive تأثیر می گذارد. برای تعیین قوانین انتقال D2D، باید از پیکربندی جدیدی که در بخش بعدی پوشش داده شده استفاده کنید.

فرمت قدیمی رو حذف کنید و قالب جدید قرار دهید.

برنامه هایی که Android 12 و بالاتر را اجرا و هدف قرار می دهند، از قالب دیگری برای پیکربندی XML استفاده می کنند. این قالب باعث می شود تفاوت بین پشتیبان گیری Google Drive و انتقال D2D صریح باشد و شما را ملزم به تعیین و حذف قوانین جداگانه برای پشتیبان گیری ابری و انتقال D2D کند.

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

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

تغییرقالب XML

کد زیر برای پشتیبان گیری و بازیابی پیکربندی در Android 11 و پایین تر استفاده شده است:

<full-backup-content>
    <include domain=["file" | "database" | "sharedpref" | "external" |
                     "root"] path="string"
    requireFlags=["clientSideEncryption" | "deviceToDeviceTransfer"] />
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                     "root"] path="string" />
</full-backup-content>

در کادر زیر تغییرات قالب را به صورت پررنگ نشان داده شده است.

<data-extraction-rules>
  <cloud-backup [disableIfNoEncryptionCapabilities="true|false"]>
    ...
    <include domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
  </cloud-backup>
  <device-transfer>
    ...
    <include domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
  </device-transfer>
</data-extraction-rules>

هر بخش از پیکربندی (<cloud-backup> ، <device-transfer>) شامل قوانینی است که به شما فقط امکان انتقال نوع خاصی از اعمال را می دهد، اگر هیچ قانونی برای یک حالت پشتیبان گیری خاص وجود نداشته باشد، مانند این است که بخش <device-transfer> از دست رفته باشد، این حالت به طور کامل برای همه مطالب به غیر از پوشه های بدون پشتیبان گیری و حافظه پنهان فعال است، همانطور که در پرونده هایی که پشتیبان تهیه شده ان ، توضیح داده شده است.

برنامه شما می تواند پرچم disableIfNoEncryptionCapunities را در بخش <cloud-backup> تنظیم کند تا مطمئن شود که نسخه پشتیبان فقط در صورت رمزگذاری شدن اتفاق می افتد، مثلاً وقتی کاربر قفل صفحه دارد. اگر دستگاه کاربر نتواند از رمزگذاری پشتیبانی کند، تنظیم این محدودیت از ارسال نسخه پشتیبان به ابر جلوگیری می کند، اما چون انتقال D2D به سرور ارسال نمی شود، آنها حتی در دستگاه هایی که رمزگذاری پشتیبانی نمی کنند نیز به کار خود ادامه می دهند.

Manifest flag for apps

با استفاده از ویژگی android: dataExtactionRules در پرونده مانیفست خود، برنامه های خود را به پیکربندی جدید XML وصل کنید. وقتی به پیکربندی جدید XML اشاره می کنید، ویژگی android: fullBackupContent که به پیکربندی قدیمی اشاره دارد، نادیده گرفته می شود. نمونه کد زیر ورودی های پرونده جدید مانیفست را نشان می دهد:

<application
    ...
    <!-- The below attribute is ignored. -->
    android:fullBackupContent="old_config.xml"
    <!-- You can point to your new configuration using the new
         dataExtractionRules attribute . -->
    android:dataExtractionRules="new_config.xml"
    ...>
</application>

 

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

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

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

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

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

golaleh hoseini
مدرس دوره

golaleh hoseini

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

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

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

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

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

جاوا اسکریپت

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


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

پی اچ پی - PHP

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


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

نود جی اس

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


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

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۸۰۸
۰
۱۳ آذر ۱۳۹۹