1.   Android端进程被杀死后,目前自带的保护后台接收消息活跃机制。暂时没有什么好的机制保持任何情况下都活跃

文章参考:http://blog.csdn.net/marswin89/article/details/50917098

android原生系统用home键杀进程可以起来,如果是强行停止就只能用户自己手动开启应用

如果是miui等第三方应用,杀了进程默认无法自启动

如果是root过的原生系统,杀了进程也是没有办法起来的,这个时候推送是收不到的

如果是原生系统,没有root,只要不是强行停止,其他系统自带的停止方式都可以自启动,一般10s内恢复

目前已知以下第三方系统会影响到应用:

小米【MIUI】

自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启

通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示

华为【Emotion】

自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用

后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行

通知管理:应用状态有三种:提示、允许、禁止。禁止应用则通知栏不会有任何提醒

魅族【Flyme】

自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程发开启

通知栏推送:关闭应用通知则收到消息不会有任何展示

VIVO【Funtouch OS】

内存一键清理:需要将应用加入【白名单】列表,否则系统自带的“一键加速”,会杀掉进程

自启动管理:需要将应用加入“i管家”中的【自启动管理】列表,否则重启手机后进程不会自启。但强制手动杀进程,即使加了这个列表中,后续进程也无法自启动。

OPPO【ColorOS】

冻结应用管理:需要将应用加入纯净后台,否则锁屏状态下无法及时收到消息

自启动管理:将应用加入【自启动管理】列表的同时,还需要到设置-应用程序-正在运行里锁定应用进程,否则杀进程或者开机后进程不会开启,只能手动开启应用

目前推送的保活机制基本上都是

一.依赖于系统广播的接收调用

常用的有:1.锁屏解锁广播2.网络状态改变广播3.安装包广播,卸载包广播4.存储器挂载卸载广播

android.intent.action.USER_PRESENT android.net.conn.CONNECTIVITY_CHANGE android.net.wifi.RSSI_CHANGED android.net.wifi.STATE_CHANGE android.net.wifi.WIFI_STATE_CHANGED

android.intent.action.MEDIA_UNMOUNTED

android.intent.action.MEDIA_REMOVED

android.intent.action.MEDIA_CHECKING

android.intent.action.MEDIA_EJECT

二.依赖于同一个手机上不同APP使用相同的SDK来相互拉起对方

通过LBE安全大师看QQ能通过个推,JPUSH,小米推送,微信开放平台接口广播,新浪SAE云推送,qq浏览器推送状态广播,手机QQ广播接收等多种推送方式相互唤醒

是否可以尝试按照QQ方式去实现。

尝试用com.tencent.mm包名,在魅族NOTE2上,在另外zzh中创建了个服务,服务里每隔一秒打印test,发现正常通过菜单关闭都可以继续执行,此时例子APP到缓存进程中继续运行,关闭缓存进程才彻底关闭。

QQ当我在魅族NOTE2上,把正在运行和缓存进程中的QQ杀掉后,并且没有其他QQ能唤醒的情况下,QQ也无法收到推送消息。

三.是否可以尝试依赖于某个手机自身的推送服务

逐个判断当前推送方式是否能成功,如果不能成功就换下种推送方式推送

或者在用户登陆APP后反馈登陆信息,根据反馈信息来首先使用当前手机得推送服务。

魅族没有自己的推送服务,此路不通

四.看到360手机助手怎么杀都杀不死

找到一个root的手机,如果不行就找个360一键root,adb shell进入后,执行su命令,当时root权限后,就进入到data/app中,把我需要的com.qihoo.appstore文件中base.apk复制到某个可以用文件夹(例如/mnt/sdcard/tmp)中,然后adb pull /mnt/sdcard/tmp c:\ 中,再通过反编译编译出代码,看看实现。

发现它有个deamon守护进程的库,libCoreDaemon.so看看怎么使用,发现一直无法加载该库,System.loadLibrary("CoreDaemon");报错,无法加载

1.尝试在魅族上使用微信的包名,发现通过菜单关闭APP,后台服务依然存在可以执行

2.反编译出360的JAVA代码,查看保活机制,没看懂,尝试使用它的第三方,发现无法加载

3.尝试集成了信鸽和JPUSH两个推送,发现存活率依然不高

4.尝试集成多个手机系统的消息推送,发现VIVO,魅族等没有推送服务

5.尝试闹钟唤醒,闹钟在5.1随着APP关闭也无效

6.GITHUB上找例子  JNI开启服务不行     前台服务也不行    双JAVA服务也不行

7.尝试ROOT后使用系统权限   没有ROOT方式,暂时没尝试

8.两个APP采用不同用户,一个关闭去拉起另外一个     暂时没有尝试

9.尝试微信或者QQ是否有广播,可以唤醒我们APP      没有发现什么广播可以唤醒

10.尝试单独起个接收器,接收所有推送的守护进程广播,来启动我们自己的服务  LBE显示有相互唤醒路径,但是没有唤醒服务   没有唤醒

在上面基本上又做了新的尝试

问题点1.JNI运行在哪里   启动服务  确认下通过任务管理器关闭掉APP后C进程是否存在

动态链接库文件,是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源,只是加载到内存一种资源文件,仅测试和java属于同一个进程,不同线程

java虚拟机类似于一个沙箱,应用程序进程共享zygote的同一套JAVA核心库,Android的进程和线程其实是和liunx进程管理保持一致,Android里fork创建进程,clone创建线程

am startservice -n com.uhealth.member/cn.jpush.android.service.DaemonService 包名/类名

推送是通过

am startservice -a cn.jpush.android.intent.DaemonService 相互唤醒

魅族把静态注册广播接收器进程没启动时,不给启动,也就是自启动管理设置的

服务:

packageManagerService解析APK,负责安装,及/data下目录生产,并在内存存储了所有组件的信息(Acitivity,Service),并对外提供数据查询

ActivityManagerService  管理ActivityRecord和TaskRecord,processRecord,并根据uid和processname去看是否需要创建新的进程,创建新进程是发消息给zygote,给新进程绑定Application,然后最后启动Activity或Service

问题点2.自启动试试是否可以

Flyme3.1设置开机自启:可以在设置—应用控制—开机启动进行设置。

Flyme4.0设置开机自启:可以在设置—应用管理—(点击需设置的软件)—权限管理—自启动,点击即可关闭或打开。  打开自启动确实可以重启

所谓的自启动管理,就是把静态注册的广播接收器进程没启动时无法接收广播,当DEMO程序自启动打开时,收到发送广播也会自动启动

对外暴露的服务是可以通过广播启动

问题点3:

尝试生成子进程的子进程,然后把子进程杀掉,看是否可以形成360的依赖于init的子进程特例

360并不是通过生成子进程,然后杀掉父进程来连接上的

通过JAVA层新建2个进程,2个进程里2个JAVA服务,一个java服务service1去唤醒另外一个JAVA服务service2,service2里会启动一个C线程,并创建其子进程,然后通过命令杀掉service2所在的进程,此时子进程就成为了init的子进程,子进程一直在运行,然后通过任务管理器关闭DEMO程序,没有自启动

android app后台收不到消息,Android APP被关闭后无法收到推送消息(尝试)相关推荐

  1. android推送服务不被关闭,Android APP被关闭后无法收到推送消息(尝试)

    1.   Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 文章参考:http://blog.csdn.net/marswin89/artic ...

  2. Android App 被关闭后无法收到推送消息

    zzz~ Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 文章参考:http://blog.csdn.net/marswin89/artic ...

  3. Android APP被关闭后无法收到推送消息(尝试)

    1.   Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 文章参考:http://blog.csdn.net/marswin89/artic ...

  4. ios极光推送 App收到推送消息时,修改BadgeNumber,同时点击状态栏消息以后跳到指定的页面和静默推送

    极光推送生产环境测试需要打包为adhot或者用testflight 在收到远程推送的消息的时候,有以下三种情况需要考虑: 1. 程序在后台运行 2. 程序未运行 3. 程序运行在前台 原则上,应用在收 ...

  5. 微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo

    在开始前,你需要准备:注册微信小程序 一个简单的springBoot 项目 微信开发者工具 正式 微信小程序发送消息主要通过WxMaTemplateMessage 类来推送 public class ...

  6. php推送消息到邮箱,thinkphp3.2通过PHPMailer发送邮件推送消息

    thinkphp3.2通过PHPMailer发送邮件推送消息 1.首先下载PHPMailer: 2.在Controller中新增方法public function sendmail($title,$c ...

  7. 后端 消息 转发_springCloud 后端使用webSocket向前端推送消息

    1.webSocket webSocket长连接是一种在单个tcp连接上进行全双工通信的协议,允许双向数据推送.一般微服务提供的restful API只是对前端请求做出相应.使用webSocket可以 ...

  8. php个推设置指定用户收到推送消息,请问怎么给指定用户推送信息

    大家好,我第一次用这个系统.现在的需求是:A怎么将信息只推送给B,或者系统指定给B推送信息.能不能根据$socket->id单独去推送信息?下面是代码,请问如何去实现? $m = new Mem ...

  9. android 杀死程序收不到推送_Android APP切换到后台接收不到推送消息

    1.   Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 android原生系统用home键杀进程可以起来,如果是强行停止就只能用户自己手动 ...

  10. 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...

    XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...

最新文章

  1. Padas中DataFrame运算
  2. 谷歌用AI训练“耳机线”,实现了触摸屏大多数功能
  3. 不是python对文件的读操作方法的是-一文读懂Python对文件的各种操作方式-阿里云开发者社区...
  4. Android项目中的assets和raw文件夹
  5. mysql 哨兵模式_Redis讲解主从复制和哨兵模式
  6. python 定时加载网页
  7. android studio下NDK开发
  8. 增长量计算n+1原则_土方量计算方法
  9. mysql报错error2002_mysql中异常错误ERROR:2002的解决方法分享
  10. qt android程序联网死机,Qt for Android(九) ——APP 崩溃卡死拉起保活实战
  11. C++ list类的模拟实现
  12. azure云数据库_Azure SQL数据库中的高级数据安全性–数据发现和分类
  13. NWT失败反省:一下子买1万个用户许可,全浪费了
  14. 计算机考试专业知识题库,计算机考试题库:计算机考试练习题(113)
  15. QT入门(一)——QT概述
  16. 诛仙账号合并服务器,《诛仙3》10/17 服务器数据互通公告
  17. AR unity制作阴影
  18. requests模块练习1
  19. 软件 耗电 android OS 系统,六款安卓平台浏览器耗电量实测
  20. [SHOI2008]仙人掌图

热门文章

  1. win10计算机护眼,win10系统设置护眼模式的三种方法
  2. 短信验证码注册登录,Python可以用两种方法实现
  3. Typora免费版官网下载
  4. cad插入块_CAD中的块,用得好,画图快人一步!
  5. UWP 如何访问本地代理
  6. 程序员坐牢了,会被安排写代码吗?
  7. Oracle多表关联查询
  8. php 京东 联盟 链接,京东联盟推广链接在微信上如何直接跳转接入到京东小程序下单购买?...
  9. 银河麒麟WPS表格打开TXT文件的方法
  10. 《数字电子技术基础》5.3/4/5 电平/脉冲/边沿触发的触发器