Cihaz ile web sunucusu arasında veri eşlemesi yapmak, uygulamanız açısından kullanışlı bir özelliktir. Bunun yanında kullanıcılarınız açısından saygı uyandırıcı bir özelliktir. Örneğin, uygulamanızdaki verileri bir web sunucusuna yedeklemek, yedek alma açısından işlevseldir. Aynı şekilde verileri sunucudan almak da kullanıcının cihazı çevrim dışı olduğunda verilere erişimi açısından kullanışlı bir senaryodur. Bazı durumlarda kullanıcılar, verilerini bir web arayüzünden girmeyi ve düzenlemeyi kullanışlı bulurlar. Ardından o verileri cihazlarında kullanılabilir halde bulmaktan da mutluluk duyarlar. Aynı şekilde, zamanla biriktirdikleri verileri bir arada toplamak ve onları merkezi bir depolama alanına yüklemek hoşlarına gider.
Mobil uygulamanızda kendi veri aktarma sisteminizi tasarlayabilseniz de Android'in "sync adapter framework" denilen veri eşleme çatısına mutlaka göz atmalısınız.
Android'in Sync Adapter altyapısı, veri aktarımlarını yönetmenize ve otomatikleştirmenize yardımcı olur, farklı uygulamalar arasındaki veri eşleme işlemlerini koordine etmenizi sağlar. Bu geliştirme çatısını kullanacağınız zaman, kendi yapınızla veri eşleme yapmayı denediğinizde yapamayacağınız bazı önemli özellikleri kazanırsınız:
Eklenti mimarisi: Veri aktarım kodunuzu, çağırılabilir bazı bileşenlerle doğrudan sisteme eklemenize olanak sağlar.
Otomatikleştirilmiş Çalışma: Veri aktarımlarını belli koşullara göre otomatikleştirmenize olanak sağlar. Örneğin veri ağı değişimi (WiFi-Mobil veri gibi), geçen zaman veya günün belli bir saati bu koşullardan biri olabilir. Ek olarak sistem, bir kuyrukta çalıştırılması zor olan aktarımları kuyruğa alır ve cihaz müsait olduğunda çalıştırır.
Otomatikleştirilmiş Ağ Denetimi: Sistem veri aktarımlarınızı sadece cihaz ağa bağlantığında çalıştırmanıza olanak sağlar.
Artırılmış Batarya Ömrü: Uygulamanızın veri aktarım görevlerini tek bir yerde toplamanıza olanak sağlar ve böylece hepsi aynı anda çalıştırılabilir. Veri aktarımlarınız aynı zamanda diğer uygulamaların veri aktarımlarıyla birlikte çalışmak üzere zamanlanır. Tüm bu faktörler sayesinde sistemin batarya kullanımını artıran ağ bağlantısı aç/kapa işlemlerinin sayısı azalacaktır.
Hesap Yönetimi ve Hesap Doğrulaması: Eğer uygulamanız sunucuda oturum açmak için bazı kullanıcı bilgileri gerektiriyorsa, böyle bir durumda isterseniz veri aktarımlarınızın içinde hesap yönetimi ve doğrulamasını ekleyebilirsiniz.
Takip eden eğitim içeriklerinde bir "sync adapter"ı ve onu sarmalayan Service'i nasıl oluşturacağınıza değineceğiz. Ayrıca "sync adapter"ınızı veri eşleme çatısına entegre etmenize yardımcı olacak diğer bileşenleri nasıl sağlayacağınızı ve "sync adapter"ınızı farklı yollarla nasıl çalıştıracağınızı da göreceksiniz.
NOT: Sync adapter'lar eşzamansız (asenkron) çalışır ve bu nedenle veri aktarımlarınızı düzenli ve verimli yapmasını bekleyebilir fakat anında gerçekleştirmesini bekleyemezsiniz. Uygulamanızın gerçek zamanlı bir veri aktarım ihtiyacı olacaksa, orada bu işlemi AsyncTask veya bir IntentService ile yapmalısınız.
Sıradaki konularımız şunlar:
- Stub Authenticator Oluşturmak: Sync Adapter çatısı, uygulamanızın parçası olarak bir hesap yöneticisi tanımlamanızı bekler. Bu bileşeni nasıl ekleyeceğinizi bu içerikte öğrenebilirsiniz. Basitlik açısından bir "stub authentication" bileşenini nasıl oluşturacağınızı görebilirsiniz.
- Stub Content Provider Oluşturmak: Sync Adapter çatısı, bir de uygulamanızın içerik sağlayıcısına ihtiyaç duyar. Bu içerikte bir içerik sağlayıcısını (content provider) nasıl ekleyeceğinizi görebilirsiniz. Bu içerikte uygulamanızın bir içerik sağlayıcı kullanmadığını varsayıyoruz ki, bu yüzden sadece bir "stub" bileşen nasıl eklenir onu gösteriyoruz. Eğer halihazırda uygulamanızın bir içerik sağlayıcı (ContentProvider) yapısı varsa burayı atlayabilirsiniz.
- Sync Adapter Oluşturmak: Veri aktarım kodunuzu, Sync Adapter çatısının otomatik olarak çalıştırabileceği bir bileşen içinde nasıl sarmalayacağınızı bu içerikte bulabilirsiniz.
- Sync Adapter'ı Çalıştırmak: Sync Adapter kullanarak veri aktarımlarınızı nasıl zamanlayacağınızı ve tetikleyeceğinizi burada görebilirsiniz.
Bu sayfadaki parçalar Android Open Source Project kapsamında oluşturulmuş ve paylaşılmış içeriğin küçük değişiklikler yapılmış hâlidir ve Creative Commons 2.5 Attribution License'ta belirlenen koşullara göre kullanılmıştır.
Bu eğitim içeriğinin orijinal haline buradan ulaşabilirsiniz: Transferring Data Using Sync Adapters