个推SDK分析

最近项目中有使用到个推,个推在程序关闭的时候也能收到推送,只有在程序被强制停止后才无法收到推送。
简单分析下个推的原理

先从AndroidManifest入手

PushDemoReceiver 你的接受推送的广播,接受从个推SDK发送的广播

    
        
      //手机里可能有好几个App集成个推,通过APPID可以指定发送广播接受
 

PushReceiver 接受系统广播,里面是各种启动PushService的逻辑
在Android4.0以后,系统广播带有FLAG_EXCLUDE_STOPPED_PACKAGES

  • 安装但从未启动过的APP不会收到系统广播
  • 启动后被强制停止的APP不会收到系统广播
  
  
            //当手机开机的时候,系统发出的广播,接收到后,启动个推服务   
         //网络变化时的广播
         //用户锁屏或者解锁达到桌面的广播
         //大概是个推App互相拉起的广播(个推SDK在收到推送后,会拉起别的APP的个推服务)
        
         //SD卡安装广播
         //连接电源广播
         //断开电源广播
    

下面那些代码混淆的有点厉害,之后再补充



    
        
        
    


你可能感兴趣的:(个推SDK分析)