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

首发~腾讯内部流出《Android进程保活入门与实践》带你参透Android进程保活的终究奥义

Android进程保活保活是什么,简单的说就是让你的App不会被轻易杀死,一直留存在用户的后台去自动执行一些关于应用程序业务需求的相关逻辑࿰

Android 进程保活

保活是什么,简单的说就是让你的App不会被轻易杀死,一直留存在用户的后台去自动执行一些关于应用程序业务需求的相关逻辑(如实时传送位置、实时消息的接收)。
但是Android 系统为了保持系统运行流畅,在内存不足时,会将一些进程 kill ,以释放一部分内存。但是有些产品是有即时性的,在收到消息、推送等都是要立刻通知到用户。由此就出现了android的种种黑科技和奇葩操作来保障App的存活。

Android 进程保活,一般从两个方面进行:

  • 运行中保活:提高进程优先级,降低被系统 kill 的概率

  • 被 kill 后拉活:被系统 kill 后,将进程拉活(重启)


如何去学习Android 进程保活?

Android进程保活的重要性不容置疑,那我们该如何学习呢?

关于如何学习Android 进程保活知识,最近小编有幸在腾讯总监手里扒到这份Android进程保活入门与实战,部分知识章节发布到了在知乎上已经收获了1000+的点赞量,今天在这里拿出来分享给大家。

完整版《Android进程保活入门与实战》PDF电子书,点击下方二维码即可免费领取!

在这里插入图片描述

本书籍中总结了当前保活圈里最常用的方法,其中也含有大厂用到过的方法。并且在本文探索的过程中梳理了关于保活内容的相关知识点(进程种类,AIDL,如何查看oom_adj等),还有不同的手机品牌在不同系统版本、不同的环境下都有什么样的表现,都有说明,还包括各类进程保活案例分析,微信团队原创分享,项目实践等。无论是刚刚开始探索这个功能的小白,还是已经在保活圈里摸爬滚打的大佬都适合收藏。

第一章、保活功能相关基础内容:


  • 进程优先级
  • Android 系统回收进程内存的机制 LMS
  • 查看oom_adj的方法


第二章、进程保活的关键保活和复活


  • 保活分析
  • 在什么情况下进程会被杀死
  • 保活常用的手段
  • 复活常用方法

  • 在这里插入图片描述

第三章、具体保活和复活方案的实现过程


  • 单Service的提高进程的优先级
  • 通过监听锁屏和开屏广播,使用“1”像素Activity提升优先级(微信也这么干过)
  • 通过JobScheduler的方式复活Service
  • 通过在后台播放无声的音乐
  • 双进程守护方案
  • 双App相互拉活方案

  • 在这里插入图片描述

保活方案实现效果统计


  • 双进程守护方案
  • 监听锁屏广播打开1像素Activity
  • 后台播放无声的音乐
  • 混合使用的效果,并且在通知栏弹出通知

  • 在这里插入图片描述

进程保活的案例分析


  • Android 通过JNI实现守护进程,使Service服务不被杀死
  • 如何让你的App永远在后台存活:对Android进程守护、闹钟后台被杀死的研究
  • 关于 Android 进程保活,你所需要知道的一切
  • Android进程保活招式最全总结
  • Android进程间通信及 App 保活
  • Android正确的保活方案,不要掉进保活需求死循环陷进
  • 从源码角度看 Android 进程保活原理与优先级调度机制
  • Android 黑科技保活实现原理揭秘
  • 2020年了,Android后台保活还有戏吗?看我如何优雅的实现!

  • 在这里插入图片描述

第六章、微信团队原创分享


  • 微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)
  • 微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)
  • 微信Android客户端后台保活经验分享

第七章、进程保活实践


  • 融云技术分享:融云安卓端IM产品的网络链路保活技术实践
  • Android进程保活实践
  • “保活”—APP创业者永远的痛,Android进程保活姿势大全!

在这里插入图片描述
由于内容过多,截图展示的目录及部分内容,完整文档领取方式点击下方二维码即可免费获取!

文末

如果这本书籍对你有帮助,请务必点赞+收藏这篇文章,把他分享给更多的小伙伴,一起学习进步!

追梦的路上总是艰难,路漫漫其修远兮,吾将上下而求索。即便未必能够如愿抵达,未必能够得偿所愿,但能进一步是一步,每前进一步总有一步的欣喜,也多少会见到一些新的风景。

我不知道读者里有多少这样前路迷茫需要鼓舞的人,希望今天这篇文章能够给你们一点鼓励和力量,勇敢地出发,朝着自己梦想的地方前进。你也可以点赞关注我,与我一起前进。
在这里插入图片描述


推荐阅读
  • 掌握这些技巧,轻松获取超过90%的资源信息
    在数字时代,高效获取所需资源是每个人必备的技能。本文将分享一系列实用技巧,帮助读者轻松获取超过90%的网络资源信息,无论是学术资料、技术文档还是最新资讯,都能迅速找到。通过优化搜索引擎使用、利用专业数据库和社群资源等方法,读者将能够在信息海洋中游刃有余。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 大家好,全新的技术专栏《从零开始掌握容器云网络实战》正式上线。该专栏将系统地介绍容器云网络的基础知识、核心技术和实际应用案例,帮助读者全面理解和掌握容器云网络的关键技术与实践方法。 ... [详细]
  • 【Linux进阶指南】第一阶段第三课:体验与部署Ubuntu系统
    在正式踏上Linux学习之旅之前,本课程将引导你深入体验和部署Ubuntu系统。通过详细的操作步骤和实践演练,你将掌握Ubuntu的基本安装、配置及常用命令,为后续的进阶学习打下坚实的基础。此外,课程还将介绍如何解决常见问题和优化系统性能,帮助你更加高效地使用Ubuntu。 ... [详细]
  • 本文介绍了如何使用开源工具ChkBugReport来解析和分析Android设备的Bugreport。ChkBugReport能够将复杂的Bugreport转换为易于阅读的HTML报告,并提供详细的图表和分析结论。 ... [详细]
  • 8个IDC大数据基础定义解析丨IDC
    本文针对IDC数据行业相关名词术语进行解析,分为4组相关概念,希望大家读完 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 说明Python教程正在编写中,欢迎大家加微信sinbam提供意见、建议、纠错、催更。drymail是一个邮件发送库,封装了Python的smtplib ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 微信发布 Tinker 1.9.5:增强的 Android 热修复框架
    Tinker 是微信团队开源的一款 Android 热修复框架,能够在不更新 APK 的情况下,动态地修复应用中的问题,包括 dex、库文件和资源文件的更新。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • 如何在PDF文档中添加新的文本内容?
    在处理PDF文件时,有时需要向其中添加新的文本内容。这是否可以直接实现呢?有哪些简便且免费的方法可供选择?使用极速PDF阅读器打开文档后,可以通过点击左上角的“注释”按钮切换到注释模式,并选择相应的工具进行编辑。此外,还可以利用其他功能丰富的PDF编辑软件,如Adobe Acrobat DC或Foxit PhantomPDF,它们提供了更多高级的编辑选项,能够满足更复杂的需求。 ... [详细]
  • 如何在微信公众平台上完成官方认证流程及注意事项
    在微信公众平台上进行官方认证可以提升账号的权威性和可信度,为用户提供更好的使用体验。关于微信公众平台的认证流程,可以通过以下两种方式进行申请:一是通过微信公众平台官方网站提交相关资料;二是联系腾讯客服获取详细的认证指导。在整个过程中,需要注意提交的信息必须真实有效,确保审核顺利通过。此外,还需关注认证所需的时间和可能产生的费用,以便做好充分准备。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
author-avatar
萧海豚泳_756
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有