前言:
有很多APP和需求,需要让APP不被系统杀死。然而,我在这里,必须明确的跟各位安卓开发者说的就是,这个需求就跟让物理学家发明永动机一样,是不可行的。然而,我们却可以尽最大的可能性让APP存活下来。实现最大存活有多种方式,网上的各位大牛,也有列出方法,我也想在这里,系统的总结一下。但暂时没能一下就全列出来,后面,想到哪个就再补上来,或者如果您有好的建议,直接在评论处给个建议,我会将您的建议列入。

一、接入不同厂商的推送。

这一条,是迄今为止,老夫找到的,保活率最高的方法,看官请稍候,且听我一一道来。
话说安卓大势,分久必合,合久必分。推送之道,久为极光、友盟所占。时至今日,各厂商的霸权意识,已经渐渐生起。
当今之势,各厂商的推送主要有(点击,下面的XX推送,可跳转到相应的推送接入文档页):

1、信鸽推送
2、小米推送
3、华为推送
4、魅族推送
5、VIVO推送
6、OPPO推送

本博主,亲测,存活率相当高,可信(人较穷,机型较少,但在有限资源下,存活率最高)。

二、针对6.0+系统,忽略电池优化功能。优点是锁屏后,还能让APP一直运行。缺点是,用户可能不同意。

/*** 忽略电池优化*/
public void ignoreBatteryOptimization(Activity activity) {PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(activity.getPackageName());//  判断当前APP是否有加入电池优化的白名单,如果没有,弹出加入电池优化的白名单的设置对话框。if(!hasIgnored) {Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);intent.setData(Uri.parse("package:"+activity.getPackageName()));startActivity(intent);}
}
// 在AndroidManifest.xml里加入以下权限。
android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

三、接入极光、友盟等第三方SDK,实现互拉。
这些第三方SDK,普遍有“互拉”的功能。特别是友盟,居然连UC都有。UC现在,普及程度不比微信低多少。接入这些第三方SDK的优点是,实现互拉,可以大大的增加APP存活机率,哪怕APP被killed了,也能被拉起来。但是,弊端也有。就是有些Android系统,已经出现了禁止互拉功能的选项了,不过,用户一般不会去操作吧。

四、双进程守护应用。
开一个后台服务,通过设置android:process属性,来让这个后台与APP处于不同进程,来达到互相监听,互相唤醒。然而实际情况呢?优点是,在部分机子上,确实可以。。但部分机子上,当APP被杀后,这些“处于不同进程的服务“也照样被杀。据说,有些机子杀APP是直接把APP相关的进程池都清空掉。所以,这种方法,不一定行得通。

相关文献:
1、双进程守护应用保活方法

五、维持一个Socket长连接。
一个Socket长连接可以让你的后台服务长时间的运行。甚至,在杀死APP的一瞬间,还会出现复活的现象。

相关文献:
1、微信Android客户端后台保活经验分享
2、微信Android客户端架构演进之路

六、维持一个在消息栏的通知。
像某狗一样。这种,也可以避免被杀。这种可能比较恶心人,除非功能性的需求,不然不建议这样做。像某狗这种音乐型APP,是比较适合这种。但其它APP,慎重考虑。

Android APP杀不死(最大存活方法)相关推荐

  1. Android App定位和规避内存泄露方法研究

    from:http://site.douban.com/android/widget/notes/350758/note/167481484/ 工作中刚好用到,网上搜到的,觉得不错,与大家分享 And ...

  2. 2022-01-26 Android app java 获取设备制造商的方法:Build.MANUFACTURER,实际上是读ro.product.manufacturer的值。

    一.Android app java 获取设备制造商的方法:Build.MANUFACTURER 二.例如  二.分析Build.MANUFACTURER流程,实际上是读ro.product.manu ...

  3. Android创建杀不死的Service

    在Android开发中我们经常会遇到一些特殊的需求需要让我们的服务常驻内存,但是会遇到各种清理软件或者用户在设置中手动停止程序的情况而导致我们的服务被异常的终止掉.虽然没有办法保证绝对的常驻内存,但是 ...

  4. android 后台杀不死的进行实现

    1. 要想永远不被系统kill掉,那你只能是升级成系统应用(例如launcher,systemUI这些应用怎么杀,也是杀不死的). 我们写的当然不是系统应用,只能说,在很大概率上不被杀死.也就是说也不 ...

  5. android viewpager 详解,详解Android App中ViewPager使用PagerAdapter的方法

    PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用. 要使用PagerAdapter, 首先要继承Pag ...

  6. Flutter开发:运行项目时提示Error parsing LocalFile:‘/Users/xxx/android/app/src/main/AndroidManifest.xml’…解决方法

    前言 在Flutter开发初期的时候,会遇到各种各样的问题,这个时候对于刚接触Flutter开发的开发者来说是有点费事费力的,所以在Flutter开发初期要多积累,多查阅,多踩坑,这样才能快速上手开发 ...

  7. android方法入口,Android App多个入口的实现方法

    经常看到有App提供多个入口,就是桌面上显示有多种图标,点不同图标进入不同的功能页. 基本实现很简单,以下是步骤. 1. AndroidManifest.xml里注册别名. 在 里添加 android ...

  8. Android app 录音回音消除两种方法

    在app开发录音功能的时候 会遇到回音的问题,今天就来借助android 自带的api 来解决回音的问题 1.通过设置AudioManager.MODE_IN_COMMUNICATION模式进行录音, ...

  9. eclipse开发Android app的一些问题及解决方法

    1.无法正常预览布局文件layout.xml(没有出现Graphical Layout,只有design) 右键点击所要打开的xml文件,open with -> Android Layout ...

最新文章

  1. istringstream和ostringstream
  2. CentOS内核编译
  3. 计算机基础与应用 是学什么,计算机基础与应用教学大纲
  4. 三星Galaxy Note20新旗舰发布会官宣:8月5日线上见
  5. Leetcode每日一题:1356.sort-integers-by-the-number-of-1-bits(根据二进制1的个数排序)
  6. 巧用FineReport搭建成本管控监测系统
  7. 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径1...
  8. mysql主从复制从机开启读_MySQL主从复制和读写分离
  9. 2021华为软挑赛题_思路分析——实时更新,做多少更多少(二)
  10. 协程学习一:nty协程的设计原理及效率分析
  11. 国际象棋渲染测试软件,C4D结合Octane Render渲染器制作三维国际象棋建模渲染教程 含中英文字幕...
  12. laaS 、paaS和SaaS区别
  13. 短信接口被恶意调用,瞬间损失两万,怎么解决?
  14. 为什么要配置环境变量以及配置环境变量的步骤
  15. [RK3288][Android6.0] 调试笔记 --- Activity多次调用finish()引起的Warning
  16. Stem教育究竟是什么性质
  17. JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
  18. 星座运势,周公解梦流量主微信小程序源码下载
  19. General information (1)
  20. 图与网络模型及方法(二)

热门文章

  1. 嵌入式端音频开发(基础篇)之2021-2022年国内主流语音识别芯片科普(1)
  2. C++面试知识点搜集
  3. 重要前端面试题,来自一个2022年面试大牛(上)
  4. 广州大学 操作系统实验之银行家算法
  5. CI/CD之搭建私有git仓库gitlab
  6. Python 爬虫多线程爬取美女图片保存到本地
  7. lisp中窗选线_ssget怎样选择所有的多线lisp语言里面……
  8. gm convert: Improper image header
  9. Nordic芯片如何达到最快的蓝牙传输速率
  10. 小红书编辑器_校招 | 微软、百度、小红书等校招已开启,尽快投递!