http://blog.csdn.net/gloryhero/article/details/47259583

Email的框架图:

Email 包含3个包:Eamil、Exchagne、UnifiedEmail。

这三个包相互调用。具体的关系如上图所示。

Email:

这个包主要负责用户的登录界面和账户信息的存储等等,其中,若手机中没有账户,Email表就会负责对用户输入的account信息进行收集,并且将收集到的信息通过传递给Exchange与服务器进行交互,验证用户的account信息的正确性。另外,在这个包中,还创建了本地存储,会将服务器同步下来的信息通过EmailProvider插入到本地数据库中。同时,当用户登录账户成功之后,用户对邮箱的操作也会通过该Provider更新数据库,同时将数据库中的信息通过Exchange与服务器进行同步。

Exchagne:

这个包主要负责与服务器端的交互工作。涉及了对用户account的验证,从服务器端得到账户的邮箱信息流,并用Parse类对数据流进行解析,解析完成之后会通过Provider插入到本地的数据库。同时,当用户对本地数据库进行更新时,Exchagne也会将更新的信息通过http反馈到服务器端,从而实现服务器端和客户端邮箱账户信息的同步。

UnifiedEmail:

这个包与用户的直接操作挂钩,它是用户与邮箱进行交互的主要场所,在这个包中,用户可以实现查看邮箱的文件夹,邮件信息,下载附件,发送邮件等信息,当用户在该包中实现了一个action之后,信息会实时更新到Email的数据库中,当数据库中的信息发生变化后,会将变化的内容通过Exchagne与服务器进行同步。

关于Android原生Email的自己的一些认识的更多相关文章

  1. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  2. 拓展 Android 原生 CountDownTimer 倒计时

    拓展 Android 原生 CountDownTimer 倒计时 [TOC] CountDownTimer 在系统的CountDownTimer上进行的修改,主要是拓展了功能,当然也保留了系统默认的模 ...

  3. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  4. Android原生游戏开发:使用JustWeEngine开发微信打飞机

    使用JustWeEngine开发微信打飞机: 作者博客: 博客园 引擎地址:JustWeEngine 示例代码:EngineDemo JustWeEngine? JustWeEngine是托管在Git ...

  5. android原生ExpandableListView

    android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容. 这个list的adapter对的数据要求与普通ListView的数据要求也有一些差 ...

  6. [Android Pro] android 4.4 Android原生权限管理:AppOps

    reference : http://m.blog.csdn.net/blog/langzxz/45308199 reference : http://blog.csdn.net/hyhyl1990/ ...

  7. 【android原生应用】之闹钟应用搭起篇

    由于工作原因接触android开发一段时间了,对于开发有了一些了解,于是萌生了搭起android原生应用进行分析和学习的想法.先从闹钟应用开始吧. 1.首先要下载原生应用,原生应用在原生系统里面(当然 ...

  8. PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

    PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...

  9. Android 原生listview item伸展收缩效果

    Android原生listview做的一个item的伸缩效果.*永远不要让你老大有机会改需求 package com.example.yunkanglast; import java.io.Seria ...

随机推荐

  1. oracle DataGuard 主从 踩过坑的

    一.主机描述 dbprimary: 192.168.1.57 主机名称db1    dbstandby: 192.168.1.58 主机名成db2    SID: orcl 二.配置tns,配置好的文 ...

  2. 篇三:XPath--解析Html

    导语:爬虫爬取的界面,大致分为静态界面.ajax异步加载.动态界面.静态界面直接获取HTML对象,然后使用XPath获取值 最有用的路径表达式: 表达式 描述 nodename 选取此节点的所有子节点 ...

  3. StarRTC , AndroidThings , 树莓派小车,公网环境,视频遥控(二)小车端

    原文地址:http://blog.starrtc.com/?p=94 1 创建工程IDE:Android Studio 3.1:File>New>New Project>输入项目名& ...

  4. android EditText设置光标、边框和图标,以及限制输入

    控制边框形状,先在drawable中建一个xml文件:shape.xml <?xml version="1.0" encoding="utf-8"?> ...

  5. android 内存管理机制、异常、垃圾回收

    当 Android 应用程序退出时,并不清理其所占用的内存,Linux 内核进程也相应的继续存在,所谓“退出但不关闭”.从而使得用户调用程序时能够在第一时间得到响应. 当系统内存不足时,系统将激活内存 ...

  6. Unity使用JsonFX插件进行序列化

    孙广东  2015.6.25 Unity and JSON – Quick Guide: 相比較XML的沉重和密集,Json更加高效. Introduction: 什么是 Json ?假设你从未使用过 ...

  7. 如何使用GameObject类发送消息

    一.GameObject发送消息的方法 GameObject类有三个方法可以实现发送消息,即SendMessage.BroadcastMessage和SendMessageUpwards.但是它们之间 ...

  8. .net FrameWork各个版本之间的发展[转]

    上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还是知道的,但是自己要说出个所以然来了,发现还是有点力不 ...

  9. 关于Unity 获得和使用GetComponent<MeshFilter>().mesh时的心得

    原文地址:http://blog.sina.com.cn/s/blog_7d9405e50100s061.html 今天在使用Unity3D的时候遇到了一个问题:_tesGameObject是在Pro ...

  10. 最大子数组之和(N)

    int maxSum(int *array, int n) { ]; ; ; ; i < n; i++) { ) newsum += array[i]; else newsum = array[ ...