Android开源项目SMSPopup学习 (二)

原文地址:Lucky_Man http://lucky-man.iteye.com/blog/954114

  了解了SMSPopup的相关概况后,开始研究源代码,从Google Code上check了一份最早的版本0.9.6,早期版本,核心功能有,而且代码结构很简单清晰。关于看源代码的方法,参考了网上很多人的想法,大致的意思是先从总体对代码有个了解,然后深入分析自己要学习的相关代码,否则会陷入茫茫代码中。

源码结构

   来看一下SMSPopup的项目结构

 

一共两个包,19个类,代码量不算多,貌似最新版的代码多了很多,逐个介绍下

 

包名:net.everythingandroid.smspopup    //主要功能类
ClearAllReceiver    --清除WakeLocks和启用键盘锁
Log                    --日志类,提供了打印日志的相关方法
ManageKeyguard        --管理键盘锁
ManageNotification    --管理通知
ManageWakeLock        --管理唤醒锁
ReminderReceiver    --未读消息提醒Receiver,调用ReminderReceiverService来处理
ReminderReceiverService--处理未读消息提醒,在状态栏显示图标
SmsMmsMessage        --短信及彩信实体对象
SMSPopupActivity    --弹出窗的Activity
SMSPopupConfigActivity --相关配置的Activity,程序入口
SMSPopupUtils        --获取短信及彩信相关属性,如短信的发件人,短信内容,未读短信总数等等。
SMSPopupUtilsService--将短信标为已读的Service
SMSReceiver            --接受系统短信、彩信到达的广播,并启动SMSReceiverService来处理
SMSReceiverService    --将接受到的短信或彩信展示到弹出窗口中

包名:net.everythingandroid.smspopup.preferences //自定义设置相关类
AppEnabledCheckBoxPreference    --是否启用SMSPopup
CustomVibrateListPreference        --自定义震动模式相关设置
DialogCheckBoxPreference        --自定义弹出窗样式的设置
EmailDialogPreference            --发送邮件给开发者的设置
TestNotificationDialogPreference--测试通知的设置


Mainfest

   了解一个Android应用程序最快的方法就是从Mainfest文件开始,Mainfest也是Android程序中最重要的元素。SMSPopup的Mainfest文件主要的内容如下:

1、Activity
.SMSPopupConfigActivity   ---配置窗体,程序入口
.SMSPopupActivity         ---弹出窗体
值得注意的是这两个Activity的launchMode(加载模式)属性不同,前者是singleTask,后者是singleInstance,虽然两者都是表示在Activity栈中只限定有一个实例,但还是有区别的,关于Activity的加载模式,具体可见http://android.group.iteye.com/group/blog/718835


2、Receiver
.SMSReceiver接受系统短信及彩信到达广播
.ClearAllReceiver和.ReminderReceiver见上面的描述


3、Service
.SMSPopupUtilsService、.SMSReceiverService、.ReminderReceiverService,具体描述看上面


4、Uses-permission( 应用程序权限)
从中也可以看出系统的大概功能
android.permission.RECEIVE_SMS        接收短信       
android.permission.READ_SMS            读短信
android.permission.WRITE_SMS        编辑短信
android.permission.READ_CONTACTS    获取联系人数据
android.permission.WAKE_LOCK        唤醒锁
android.permission.DISABLE_KEYGUARD    键盘解锁
android.permission.VIBRATE            震动
android.permission.RECEIVE_MMS        接收彩信


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值