2010-03-25 27 views
5

Android'in Gmail push özellikleri, posta kutusuna yeni mesaj geldiğinde posta kutusunu kontrol etmeden veya yenilemeden geliyor. Anlıyorum gibiAndroid telefonda Gmail Sync

, senkronizasyon işlemleri bunlar gibi şunlardır:
1) Kullanıcı Gerçek olacak uyarı msg ve bu cihazın Gmail DB senkronizasyon bayrak olacak
2) senkronize açar
yeni bir e-posta, Gmail Sunucusu ulaştığında eğer doğruysa cihaz senkronizasyon değeri, daha sonra

TAMAM e-posta göndermek eğer 3), o burada, ben oldukça
için çalışır tam olarak nasıl anlamıyorum kontrol edecek WiFi ve hücre sinyali bağlantısı, telefonun açık bir TCP soketine sahip olması, Gmail Sunucusunu dinlemeyi sürdürmesi veya Sunucuya yeni bir e-posta gelmesi durumunda telefona bir SMS uyarısı gönderir ve telefon e-postayı almak için veri kanalını açar? İki bağlantının farklı yaklaşımları var mı?

Ve ikinci soru hangi yöntemin önceliklidir?
Veri almanın (e-postalar) ortasındayken, birdenbire telefonun kablosuz bir ağa bağlandığını söyleyin, veri soketi kapatılacak ve WiFi için yeniden açılacak mı? Operatörün veri kanalı ve WiFi çevrildiğinde durumun davranışı nedir?

Ayrıca kaynak kodunu da indirdim, sorularımı çözmek için hangi parçanın bakacağını bilen var mı? Koduna bakarken, "paket" klasöründe "e-posta" adlı bir klasör buldum.

Burada bir kaç soru sorduğumu biliyorum, bunların cevabını biliyor olsanız çok memnun olurum, teşekkürler!

+0

Gmail istemcisinin açık kaynak olmadığını unutmayın. İndirdiğiniz kodda değil. – CommonsWare

cevap

6

Bu teknik, Android'in bir parçası değil, Google’ın Android’de çalışan özel uygulama paketidir. Ayrıca, Gmail'de de gerçekte uygulanmadı - google uygulamalarının, google sunucularıyla (gtalk veri protokolü üzerine kurulu, ancak çoğunlukla tarihsel nedenlerden dolayı) paylaştıkları bir push veri bağlantısı var. Yeni posta mevcut olduğunda, push bağlantısı, bir şeyin postada değiştiğini söylemek için cihaza bir "gıdıklama" göndermek için kullanılır ve daha sonra bu, sunucu ile yeni bir soket bağlantısı açan gmail uygulamasına gönderilir. Yerel durumu, ne tür değişiklikler olursa olsun senkronize etmek için. Aynı mekanizma, kişilerden ve takvim senkronizasyonundan, ayrıca indirilenleri pazardan indirmek gibi şeyler için de kullanılır.

Bu çalışma şekli bir uygulama detayıdır, ancak şu anda açık soket bağlantısı tutularak yapılır. Ses ve veri yapamayan bir ağda, sesli arama gerçekleştiğinde bağlantı kesilir. Wifi ve hücre arasında geçiş yaparken, bağlantı bırakılır ve yeniden başlatılır.

Anında iletme bildirimlerinin bu şekilde yapılması, aygıtta oldukça yoğun bir kaynak olduğunu unutmayın; bu nedenle, bu tür bir uygulamanın tüm Google hizmetlerini desteklemesi için dikkatlice tasarlandı.

İlgili konular