Android 短信模块分析(一) Mms功能概述及源码目录结构分析

一. MMS功能描述:

    MMS是Multimedia messaging service的缩写,中文是多媒体信息服务。在android系统中,它支持SMS(Short Messaging Service)短信和MMS(Multimedia messaging service)彩信发送和接收;支持接收Wappush,Wappush又叫服务信息或者推入信息,是一种特殊格式的短信;同时还能主动接收BroadCast Message,但是目前中国范围内暂不支持该功能。

   

      MMS是在短消息业务基础上发展起来的一种消息业务,它可以用于传送文字、图片、动画、音频和视频等多媒体信息。MMS采用"存储转发"的技术,用户创建的信息能够自动、快速的在手机和手机之间传送;信息的传送仍然按接收方手机号码进行定位;当接收方关机或暂时不在服务区的情况下,信息将存储在多媒体消息中心(MMSC),直到能够正确送达为止。MMS消息服务要求一个WAP网关,一个数据传输网如电路交换网、GPRS或WCDMA网络,和一个多媒体消息中心(MMSC)。在目前,MMS业务主要是以WAP作承载,以短消息作提示通知,由MMS手机自动到多媒体消息中心(MMSC)去提取来实现的。

在android中,MMS主要的处理都在app层,在framework层中主要涉及MMS pdu包的解析处理和发送和接受MMS时的网络处理



二. 源码目录结构分析:

Mms模块包文件之间的关系如下图所示:





导入eclipse的短信源码目录结构图:

  


      其实无论是学习源码也好,还是商业项目入手也好. 首先需要从Manifest文件开始入手,在Mms应用中,它扩展了原始的android.app.Application类,在com.android.mms.MmsApp类中重写了onCreate()方法进行系统初始化、以及重写onTerminate() 方法做相关清理工作。最重要的是设置taskAffinity =“android.task.mms”、allowTaskReparenting ="true" 这是两个属性与任务有关。Task是指用户借助Application提供的功能完成某件事情。通常一个任务操作所涉及的内容不会超过application边界 ,但在Android允许一个Task操作横跨多个Apllication。以向老朋友发送信息为例,在该任务中,至少需要一个用来输入目标电话号码和消息内容的用户界面——即Android中的Activity组件(这是 Mms应用中的内容 ),如果进一步要求目标号码是从联系人列表或通话列表中选择,而非手工输入,那么就涉及到跨 Apllication调用‘联系人应用’中的列表组件(它也是一个 Activity ) 。因此以上两个属性前者设置了 Activity的吸引力(Affinity)值;后者使得 Activity可以在不同的Task中自有切换。接下来的章节中我会分别从Activity、Receiver、Service和ContentProvider分类进行详细介绍.

          

  

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值