android - Android 手机上的 Gmail 同步

标签 android gmail

Android 具有Gmail 推送功能,即新邮件到达邮箱时无需检查或刷新邮箱。

据我了解,同步过程如下:
1) 用户开启同步
2) 将会有一条警告消息,并且此设备的 Gmail DB 中的同步标志将为 True
3) 当一封新邮件到达Gmail服务器时,它会检查设备同步值,如果是True则发送邮件

好的,到这里,我不太明白它到底是如何工作的,
对于 WiFi 和手机信号连接,手机是否打开了 TCP 套接字,继续监听 Gmail 服务器,或者当新电子邮件到达服务器并向手机发送短信警报时,手机将打开数据通道以获取电子邮件?两种连接方式有不同的做法吗?

第二个问题是哪种方法优先?
比如说当你正在接收数据(电子邮件)时,突然手机连接到无线网络,数据 socket 会关闭然后重新打开用于 WiFi 吗?运营商数据通道和 WiFi 翻转情况下的行为是什么?

我也下载了源代码,谁知道我应该看哪一部分才能解决我的问题?我在“package”文件夹中发现了一个名为“email”的文件夹,我应该查看它的代码吗?

我知道我在这里问了很多问题,如果您知道其中任何一个的答案,我将不胜感激,非常感谢!

最佳答案

从技术上讲,这不是 Android 的一部分,而是 Google 在 Android 上运行的专有应用程序套件。它也没有真正在 Gmail 中实现——谷歌应用程序共同与他们共享的谷歌服务器(建立在 gtalk 数据协议(protocol)上,但主要是出于历史原因)有一个推送数据连接。当有新邮件可用时,推送连接用于向设备发送一个“提示”,表明邮件中发生了一些变化,然后在设备上将其发送到 gmail 应用程序,该应用程序打开与其服务器的新套接字连接使本地状态与发生的任何变化同步。同样的机制用于联系人和日历同步,以及促使从市场下载等。

它的工作方式是一个实现细节,但目前它是通过保持打开的套接字连接来完成的。在无法进行语音和数据传输的网络上,发生语音调用时连接会断开。在 wifi 和 cell 之间切换时,连接断开并重新启动。

请注意,以这种方式发送推送通知会占用大量设备资源,因此经过精心设计,允许一个这样的实例支持所有 Google 服务。

关于android - Android 手机上的 Gmail 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2520042/

相关文章:

android - Android内核源代码的git repo在哪里?

android - 有没有一种方法可以关闭 Gmail 应用程序在电子邮件布局中的自动调整大小功能?

php - 如何在 PHP 的标签中使用 data-saferedirecturl?

css - 如何为 Gmail 编写媒体查询?

javascript - 尝试使用 Chrome 扩展程序删除 Gmail 中的广告

java - 重复条目 : com/google/android/gms/analytics/internal/Command. 类

java - 从 SQLite 中检索数据数组,从数组中检索属性,并将属性添加到数组中并创建折线

android - Kotlin 中的设备尺寸而不是 java 中的设备尺寸

android - Uri.builder 与基于字符串的 url 构造

javascript - 如何在chrome标题栏添加图标