Gmail Sync на телефоне Android - PullRequest
       18

Gmail Sync на телефоне Android

5 голосов
/ 26 марта 2010

Android имеет функции Gmail push, что означает, что новое сообщение поступает в почтовый ящик без проверки или обновления почтового ящика.

Как я понимаю, процессы синхронизации такие:
1) Пользователь включает синхронизацию
2) Появится сообщение с предупреждением, и флаг синхронизации в базе данных Gmail этого устройства будет иметь значение True
3) Когда новое электронное письмо попадает на Gmail-сервер, оно проверит, имеет ли значение синхронизации устройства значение True, и отправит электронное письмо

Хорошо, я не совсем понимаю, как именно это работает,
Для соединения по Wi-Fi и сотовой связи: открыт ли сокет TCP на телефоне, продолжайте слушать Gmail-сервер, или когда на сервер приходит новое электронное письмо, и он отправляет SMS-оповещение на телефон, и телефон открывает канал данных для получить электронную почту? У двух способов соединения разные подходы?

И второй вопрос: какой метод является приоритетным?
Скажем, когда вы получаете данные (электронные письма) и вдруг телефон подключается к беспроводной сети, будет ли сокет данных закрыт, а затем снова открыт для подключения к WiFi? Каково поведение в случае, когда канал данных оператора и WiFi переворачиваются?

Я также скачал исходный код, кто-нибудь знает, какую часть мне следует изучить, чтобы решить мои вопросы? Я нашел папку с именем «email» внутри папки «package». Должен ли я посмотреть на ее код?

Я знаю, что задал здесь несколько вопросов, я был бы признателен, если бы вы знали ответ на любой из них, большое спасибо!

1 Ответ

6 голосов
/ 26 марта 2010

Технически это не часть Android, а скорее проприетарный пакет приложений Google, который работает на Android. Это также не очень реализовано в Gmail - приложения google совместно имеют соединение push-данных с серверами google (построено на протоколе данных gtalk, но в основном там по историческим причинам), которым они делятся. Когда доступна новая почта, push-соединение используется для отправки на устройство «сообщения» о том, что в почте что-то изменилось, а затем на устройстве это отправляется приложению gmail, которое открывает новое сокет-соединение с сервером. синхронизировать локальное состояние с любыми изменениями, которые произошли. Этот же механизм используется для синхронизации контактов и календаря, а также для стимулирования загрузки с маркета.

То, как это работает, является деталью реализации, но в настоящее время это делается путем сохранения открытого сокета. В сети, которая не может выполнять передачу голоса и данных, соединение прерывается, когда происходит голосовой вызов. При переключении между Wi-Fi и сотовой связью соединение прерывается и перезапускается.

Обратите внимание, что выполнение push-уведомлений на этом устройстве довольно ресурсоемко, поэтому оно было тщательно разработано, чтобы один такой экземпляр мог поддерживать все службы Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...