[Android][KK][SMS]Frameworks学习——介绍

这篇博客主要探讨了Android SMS架构,包括SMS数据结构、发送和接收流程。重点介绍了SMSMessage类和SmsMessageBase,以及它们在GSM和CDMA制式下的不同。还提到了SmsManager作为发送短信的唯一入口,以及SMSDispatcher如何处理短信的发送和接收。
摘要由CSDN通过智能技术生成

一、Android SMS架构

二、短信数据结构

三、发送短信流程分析

四、接收短信流程分析


一、Android SMS架构

SMS(Short Messaging Service),短信息服务。在android源代码中已经实现了基本的短信、彩信的发送与接收以及状态报告等相关通信能力,并且将SMS、MMS功能集成在一个应用中的MMS应用。

SMS的分层结构与Android架构保持一致, 从上到下依次是:MMS应用层、Telephony Frameworks框架层、RIL层。app层如何将发送短信转换成RIL请求以及app如何接收RIL发出的新短信通知相关的代码主要集中在Java Frameworks层,因此本次学习主要关注Frameworks层。

SMS在Telephony Frameworks层主要有以下几个类:

1.SmsMessage.java(frameworks/opt/telephony/src/java/android/telephony):定义了短信在framework层的数据结构。

2.SmsMessageBase.java:容纳实际的短信数据。它有两个子类 SmsMessage.java(frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm)和SmsMessage.java(frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma),负责帮助SmsMessage.java(frameworks/opt/telephony/src/java/android/telephony)来处理GSM/CDMA制式下的数据解析。

3.SmsManager.java:发送短信的唯一入口。SmsManager类在Telephony Frameworks层提供短信操作的相关接口供application层调用,application层通过获取此类的对象,完成对短信的操作。该类提供了短信拆分、短信发送、将短信复制到SIM卡、从SIM卡删除短信和小区广播等接口。

4.IccSmsInterfaceManager.java:抽象类,实现了ISms.stub接口,它有两个子类:RuimSmsInterfaceManager和SimSmsInterfaceManager,分别对应USIM卡和SIM卡的操作,不同之处在于电话卡中的短信存储和读取以及小区广播的实现逻辑。

5.SMSDispatcher.java:继承Handler类,有三个子类:ImsSMSDispatcher、GsmSMSDispatcher和CdmaSMSDispatcher。与RIL.java交互,完成短信的发送和接收。

6.RIL.java:通过socket与RILC交互,完成短信发送请求与RIL请求之间的转换。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值