本文摘自微信公众号“android高心星的私塾”一声明1网上很多的保活手段,但是不靠谱的居多2本文只是进行保活知识的推广,不是在教你做永生不死的进程二保活手段1业界保活手段:黑色保活,灰色保活,白色保活2黑色保活:1不同的APP进程,用广播相互唤醒,包括利用系统广播进行唤醒2常见手段:1开机,网络切换,拍照,拍视频等利用系统广播唤醒APP此场景Google已经意识到,在AndroidN取消了拍照,视频,网络切换的广播2接入第三方的SDK也会唤醒相应的APP进程3假如你手机里装了支付宝,淘宝,UC等阿里系的APP,那么你打开任何一个,都有可能唤醒其他的阿里系的APP3白色保活:就是调用系统的API启动一个前台Service进程,这样会在通知栏生成一个Notification,用户知道哪些进程正在运行4灰色保活1保活领域应用最为广泛,利用系统的漏洞来启动一个前台的Service进程,与“白色保活”不同的是,它不会在通知栏生成一个Notification,用户无法察觉,但是优先级要高于普通的后台进程。2实现思路思路一:当API18,启动前台的Service直接传入newNotification();思路二:当API18,同时启动两个id相同的前台Service,然后再将后启动的Service做stop处理代码这样写:importandroid.app.Notification;importandroid.app.Service;importandroid.content.Intent;importandroid.os.Build;importandroid.os.IBinder;/***APP灰色保活*Createdbyfflinon2016/4/23.*/publicclassGrayServiceextendsService{privatefinalstaticintGRAY_SERVICE_ID1001;@OverridepublicIBinderonBind(Intentintent){returnnull;}@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){//API18,此方法能有效地隐藏notification的图标if(Build.VERSION.SDK_INT18){startForeground(GRAY_SERVICE_ID,newNotification());}else{Intentintent1newIntent(this,GrayInnerService.class);startService(intent1);startForeground(GRAY_SERVICE_ID,newNotification());}returnsuper.onStartCommand(intent,flags,startId);}//给API18的平台上做灰色保护手段publicclassGrayInnerServiceextendsService{@OverridepublicIBinderonBind(Intentintent){returnnull;}@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){startForeground(GRAY_SERVICE_ID,newNotification());stopForeground(true);stopSelf();returnsuper.onStartCommand(intent,flags,startId);}}}3检验方法:首先看系统通知栏有没有Notification,如果没有,就进入手机adbshell模式,输入命令dumpsysactivityservicesPackageName打印出指定包名的所有进程中的service信息,看下有没有isForgroundtrue的信息,如果有,就说明了该APP使用了灰色保活4使用灰色保活手段并不意味着你的应用就能永生不死,只能说提高了进程的优先级,如果应用占用了很大的内存,还是会被回收的三进一步理解保活1进程回收机制系统出于体验和性能上的考虑,APP在退出后台时系统并不会真正的kill掉这个进程,而是将其缓存起来,打开的应用越多,后台缓存的进程也就越多。在系统内存不足的情况下,系统开始根据自身的一套进程回收机制来判断要回收掉哪些进程,这套杀死进程回收内存的机制叫LowMemoryKiller,它是基于Linux内核的OOMkiller机制诞生的,该机制为每个系统分配了一个值,叫做oom_adj,代表了进程的优先级,oom_adj越大,代表优先级越低,越容易被回收,普通APP进程的oom_adj0,系统的可能会小于0.2查看oom_adj的值,需要用到两个shell命令ps|grep包名$cat/proc/进程id/oom_adj3结果发现,APP推到后台,UI进程的值降低最为明显,因为它占用的内存资源最多,因此,为了避免后台UI进程被杀,需要尽可能的释放一些不用的图片,音频资源
如何让安卓APP一直在后台运行-如何设置微信一直运行-微信小程序后台运行
浏览量:6591
时间:
来源:蔺飞飞
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










