Android - Veri Yedekleme
Android, uygulama verileri ve ayarları için bir geri yükleme noktası sağlamak üzere uygulama verilerinizi uzak "bulut" depolamaya yedeklemenize olanak tanır. Yalnızca uygulama verilerinizi yedekleyebilirsiniz. Diğer uygulama verilerine erişmek için telefonunuzu köklendirmeniz gerekir.
Veri yedekleme uygulaması yapabilmek için uygulamanızı google yedekleme servisine kaydettirmeniz gerekmektedir. Bu, örnekte açıklanmıştır. Kaydolduktan sonra, anahtarını AndroidManifest.XML'de belirtmeniz gerekir.
<application
android:allowBackup="true"
android:backupAgent="MyBackupPlace">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>
Android sağlar BackUpAgentHelperveri yedeklemesinin tüm işlemlerini yürütmek için sınıf. Bu dersi kullanabilmek için sınıfınızı onunla genişletmelisiniz. Söz dizimi aşağıda verilmiştir -
public class MyBackUpPlace extends BackupAgentHelper {
}
Yedeklemek istediğiniz kalıcı veriler iki formdan birindedir. SharedPrefrences veya File olabilir. Android, ilgili sınıflarda her iki yedekleme türünü de destekler.SharedPreferencesBackupHelper ve FileBackupHelper.
Kullanmak için SharedPerefernceBackupHelper, nesnesini sharedPerefernces Dosyanızın adıyla başlatmanız gerekir. Söz dizimi aşağıda verilmiştir -
static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);
Yapmanız gereken son şey, yedek anahtar dizesini ve yardımcı nesneyi belirterek addHelper yöntemini çağırmaktır. Söz dizimi aşağıda verilmiştir -
addHelper(PREFS_BACKUP_KEY, helper);
AddHelper yöntemi, belirli bir veri alt kümesine, aracının yapılandırmasına otomatik olarak bir yardımcı ekler.
Bu yöntemlerin dışında, BackupAgentHelper sınıfında tanımlanan başka yöntemler de vardır. Aşağıda tanımlanmıştır -
Sr.No | Yöntem ve açıklama |
---|---|
1 | onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) Yedekleme işlemini yapılandırılmış işleyicilerin her birinde çalıştırın |
2 | onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) Yapılandırılmış işleyicilerin her birinde geri yükleme işlemini çalıştırın |
SharedPreferencesBackUpHelper sınıfının yöntemleri aşağıda listelenmiştir.
Sr.No | Yöntem ve açıklama |
---|---|
1 | performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) Yapılandırılmış SharedPreferences gruplarını yedekler |
2 | restoreEntity(BackupDataInputStream data) Bir varlığı geri yükleme veri akışından uygun paylaşılan tercihler dosya deposuna geri yükler |
Misal
Aşağıdaki örnek, uygulama verilerinizin yedeğini oluşturmak için BackupAgentHelper sınıfının kullanımını gösterir.
Bu örneği denemek için, bunu gerçek bir cihazda veya bir emülatörde çalıştırmanız gerekir.
Adımlar | Açıklama |
---|---|
1 | Bir Android uygulaması oluşturmak için Android stüdyosunu kullanacak ve com.example.backup paketinin altında Yedek olarak adlandıracaksınız. |
2 | Uygulamanızı Google yedekleme hizmetine kaydedin. |
3 | İlgili gerekli anahtarı ve diğer bileşenleri eklemek için AndroidManifest'i değiştirin |
4 | AndroidManifest.XML'de belirttiğiniz adla yedekleme aracı sınıfı oluşturun |
5 | Uygulamayı çalıştırın ve sonuçları doğrulayın |
Android uygulamanızı google yedekleme hizmetine kaydedin. Bunu yapmak için bu bağlantıyı ziyaret edin . Hizmet şartlarını kabul etmeli ve ardından uygulama paketi adını girmelisiniz. Aşağıda gösterilmiştir -
Ardından Android yedekleme hizmetine kaydol'a tıklayın. Size, kopyalamanız için AndroidManifest kodunuzla birlikte anahtarınızı verir. Sadece anahtarı kopyalayın. Aşağıda gösterilmiştir -
Anahtarı kopyaladıktan sonra, onu AndroidManifest.XML dosyanıza yazmanız gerekir. Kodu aşağıda verilmiştir -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.backup" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:backupAgent="MyBackUpPlace"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.backup.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>
</manifest>
İşte BackUpAgentHelper sınıfının kodu. Sınıfın adı, AndroidManifest.XML'deki application altındaki backupAgent etiketinde belirttiğinizle aynı olmalıdır.
package com.example.backup;
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class MyBackUpPlace extends BackupAgentHelper {
static final String File_Name_Of_Prefrences = "myPrefrences";
static final String PREFS_BACKUP_KEY = "backup";
@Override
public void onCreate() {
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this,
File_Name_Of_Prefrences);
addHelper(PREFS_BACKUP_KEY, helper);
}
}
BackupAgent'ınızı test edin
Yedekleme aracınızı uyguladıktan sonra, yedekleme ve geri yükleme işlevini aşağıdaki prosedürle bmgr kullanarak test edebilirsiniz.
Uygulamanızı uygun bir Android sistem görüntüsüne yükleyin.
Emülatörü kullanıyorsanız, Android 2.2 (API Seviye 8) ile bir AVD oluşturun ve kullanın.
Bir cihaz kullanıyorsanız, cihaz Android 2.2 veya sonraki bir sürümü çalıştırıyor olmalı ve yerleşik Google Play'e sahip olmalıdır.
Veri yedeklemenin etkinleştirildiğinden emin olun
Öykünücüyü kullanıyorsanız, SDK araçlarınızdan / yolunuzdan aşağıdaki komutla yedeklemeyi etkinleştirebilirsiniz -
adb shell bmgr enable true
Bir cihaz kullanıyorsanız, sistem Ayarlarını açın, Gizlilik öğesini seçin, ardından Verilerimi yedekle ve Otomatik geri yükleme özelliğini etkinleştirin.
Yedekleme yapmak
Test amacıyla, aşağıdaki bmgr komutuyla da istekte bulunabilirsiniz -
adb shell bmgr backup your.package.name
Aşağıdaki komutu yazarak bir yedekleme işlemi başlatın.
adb shell bmgr run
Bu, Yedekleme Yöneticisini kendi kuyruğundaki tüm yedekleme isteklerini gerçekleştirmeye zorlar.
Uygulamanızı kaldırın ve yeniden yükleyin
Uygulamayı aşağıdaki komutla kaldırın -
adb uninstall your.package.name
Ardından uygulamayı yeniden yükleyin ve sonuçları doğrulayın.