美文网首页
个推SDK分析

个推SDK分析

作者: 戴同学不呆 | 来源:发表于2016-08-15 10:28 被阅读2257次

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

先从AndroidManifest入手

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

<receiver    
    android:name="com.getui.demo.PushDemoReceiver"    
    android:exported="false" >    
 <intent-filter>       
   <action android:name="com.igexin.sdk.action.你的APPID" />   //手机里可能有好几个App集成个推,通过APPID可以指定发送广播接受
 </intent-filter>
</receiver>

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

  • 安装但从未启动过的APP不会收到系统广播
  • 启动后被强制停止的APP不会收到系统广播
<receiver android:name="com.igexin.sdk.PushReceiver" >  
  <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />    //当手机开机的时候,系统发出的广播,接收到后,启动个推服务   
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> //网络变化时的广播
        <action android:name="android.intent.action.USER_PRESENT" /> //用户锁屏或者解锁达到桌面的广播
        <action android:name="com.igexin.sdk.action.refreshls" /> //大概是个推App互相拉起的广播(个推SDK在收到推送后,会拉起别的APP的个推服务)
        <!-- 以下三项为可选的action声明,可大大提高service存活率和消息到达速度 -->
        <action android:name="android.intent.action.MEDIA_MOUNTED" /> //SD卡安装广播
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> //连接电源广播
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> //断开电源广播
    </intent-filter>
</receiver>

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

<provider
         android:name="com.igexin.download.DownloadProvider"
         android:exported="true"
         android:authorities="downloads.第三方包名"
         android:process=":pushservice" />
<receiver
    android:name="com.igexin.getuiext.service.PayloadReceiver"
    android:exported="false" >
    <intent-filter>
        <action android:name="com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4" />
        <action android:name="com.igexin.sdk.action.你的APPID" />
    </intent-filter>
</receiver>
<service
    android:name="com.igexin.getuiext.service.GetuiExtService"
    android:process=":pushservice" />

相关文章

网友评论

      本文标题:个推SDK分析

      本文链接:https://www.haomeiwen.com/subject/yvkusttx.html