热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

关于进程保活的三两事

前言本文中所讲的保活,并非之前所做的无论用户怎么折腾都还能常驻后台的保活,只是指在用户不主动杀进程的情况下,能保持服务长存的方案。公司的做的是B2B的产品,部分业务必须要及时的通

前言

本文中所讲的保活,并非之前所做的无论用户怎么折腾都还能常驻后台的保活,只是指在用户不主动杀进程的情况下,能保持服务长存的方案。

公司的做的是B2B的产品,部分业务必须要及时的通知用户,在Android5.0之前还好,毕竟保活的方案不少,而且不少手机rom对后台服务的管控也并不是很严格(某些机型除外),然而现在,一言不合就是杀进程,虽然作为手机用户的体验更好了,但是作为开发者却头疼万分,因为leader是不会给你谈体验的,只会问你能不能做到,人家QQ、360、微信都能保活,为啥你不能(呵呵......)。

 

保活探索

一、进程守护

这个应该是大家之前最常用的解决方案了,最简单的就是双进程service通过广播进行守护,在nexus5机型的5.0.1上用过,有效果,但是效果很一般,更不要说在现在的机型上了。后来,就有想到网上通过jni将子进程变成孤儿进程由init进程领养的方案,做了简单的demo测试,发现5.1以上依旧不行......

 

二、无声音频

之前听说在上古时期,迅雷就是由播放无声音频的方案来实现在IOS上后台下载的功能的,让系统认为用户在同音乐,所以保留当前进程。套用此方案,竟然发下在华为荣耀8上竟然可用,但是需要有播放声音的间隔控制(无声音频播放间隔>5s,依旧会被Kill),不幸的是,在同事的某台华为4.4手机并不能成功实施,只能在黑屏之后强行续命5分钟.......后来查了下,在网上还能找到某些版本的rom杀qq音乐的记录,可见白噪声最多也只能续命了。

 

三、前台页面

使用前台页面进行保活完全是个意外,应为在测试的时候我们发现一个规律,当app处于前台时,无论发生什么情况(异常除外),该app都会活下去。所以我们对app前台处理分两种:1、正常情况下,会有一个信息浮框展示在页面(本身就是客户需求)。2、增加亮屏熄屏广播监听,熄屏时,服务会拉起一个透明页面,亮屏时,会finish掉透明页面。当然,也有无声音频续命(部分机型上缺少亮屏广播,比如海信的某型号......),原理自然也就是前台进程,优先级最高了。

在测试的20种机型上,都能做到进程保活,当然,为了用户体验,我们也做了一些优化(1、无声音频长度与间隔长度。2、在无屏幕广播机器上的轮询机制管理。3、由用户选择是否开启进程保活......)

 

四、其他方案

中间过程中,我们考虑了其他的方案,比如:电话提醒、短信提醒、白名单......电话和短信并不是所有用户都愿意使用的,白名单又因为国内定制系统过多,最终作罢。

 


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 华为鸿蒙系统官网2.0报名方法及适用设备
    本文介绍了华为鸿蒙系统官网2.0报名的适用设备、报名方法以及三种方式,包括在应用商店下载开发者联盟app、在官网中进行报名、在微信公众号中申请体验HarmonyOS 2.0 手机开发者Beta版本。同时提醒错过测试机会的用户可以等待后续的正式版发布。 ... [详细]
author-avatar
书友34043247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有