Android 10.0 lowmemorykiller低内存时,禁止某个app被kill掉功能实现

这篇具有很好参考价值的文章主要介绍了Android 10.0 lowmemorykiller低内存时,禁止某个app被kill掉功能实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前言

在10.0的系统定制化开发中,在对于系统lowmemorykiller低内存的时候,应用保活功能是非常重要的,就是在低内存的情况下 禁止某个app被杀掉,所以就需要从lowmemorykiller机制入手,在杀进程的相关流程中进行分析来实现进程避免被杀掉,接下来 就来实现这个功能

2.lowmemorykiller低内存时,禁止某个app被kill掉功能实现的核心类

system\core\lmkd\lmkd.c

3.lowmemorykiller低内存时,禁止某个app被kill掉功能实现的核心功能分析和实现

Android系统中在app的应用中,当页面被遮挡或者当Activity切换到后台,activity所在进程并不会马上退出被系统杀掉进程,还是会继续存在内存中,便于再次启动activity时, 快速启动来提高响应速度(热启动),当内存达到一定极限值,lmkd会根据策略来杀掉一些优先级较低的进程来保障系统内存的正常运行。 lowmemorykiller的低内存机制中,关于在低内存时杀掉一些优先级低的进程,这部分功能在Android8.0之前主要实现在kernel中,8.0以后主要在lmkd中实现,kernel使用vmpressure机制, 达到和kernel解耦的目的 对于Android 系统来说,希望将这种 OOM killer 放在用户空间,例如这里的 lmkd,用户空间的 OOM killer 在希望释放内存的时候,必须要依靠 kill() 或者是 pidfd_send_signal(),这种方式杀死一个进程并不能使 OOM reaper 接受来发挥作用 所以说lmkd的主要源码功能就是在system\core\lmk文章来源地址https://www.toymoban.com/news/detail-860437.html

到了这里,关于Android 10.0 lowmemorykiller低内存时,禁止某个app被kill掉功能实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 10.0 pms中关于启动app时获取app的ActivityInfo信息相关源码分析

     在android10.0的系统rom定制化开发中,在对于app启动时,通过Launcher调用pms来查询app的相关ActivityInfo的相关信息,然后调用 ams来启动activity,这篇来分析pms中获取app的ActivityInfo的相关信息的相关源码分析

    2024年02月02日
    浏览(73)
  • Android 11.0 系统限制上网系列之iptables用IOemNetd实现app某个时间段禁止上网的功能实现

    在11.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置app某个时间段禁止上网的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app某个时间段禁止上网的的相关功能,就是在 系统中只能允许某个app某个

    2024年02月14日
    浏览(59)
  • 2022-10-09 Android app禁止截屏方法 和 在禁止截屏的情况下录制屏幕

    一、APP有时候为了保护用户的隐私安全会禁止用户录屏和截屏,比如金融类的app等。可以在app的onCreate方法中添加这么一段代码       1、代码       2、效果图,禁止截屏   二、那在app禁止截屏的情况下如何录屏呢?        1、使用 scrcpy ,下载scrcpy          2、下载链接 

    2024年02月08日
    浏览(48)
  • Android 10.0 截屏流程

    Android 10.0版本在截屏方面做了一些改进和优化,使得截屏更加方便和高效。在Android 10.0版本中,可以使用多种方式实现截屏,其中包括使用系统快捷键、使用手势操作、调用API等。 Android 10.0版本中,截屏的流程大致如下: 触发截屏操作:用户可以通过系统快捷键或手势操作

    2024年02月09日
    浏览(80)
  • Android 10.0 SystemUI启动流程

    1、手机开机后,Android系统首先会创建一个Zygote(核心进程)。 2、由Zygote启动SystemServer。 3、SystemServer会启动系统运行所需的众多核心服务和普通服务、以及一些应用及数据。例如:SystemUI 启动就是从 SystemServer 里启动的。 4、进入锁屏界面,开机完成。 SystemServer 中有一个

    2024年02月05日
    浏览(49)
  • Android 10.0 Launcher 启动流程

    在前面SystemUI启动流程中说到,在SystemServer中会去启动各种系统服务,这里的launcher也是启动的其中一个服务ActivityManagerService去启动的。在android10之前,系统四大组件的启动都是在ActivityManagerService中,在android10中,单独抽出了一个ActivityTaskManagerService,主要负责Activity的管理和

    2024年02月04日
    浏览(44)
  • Android 10.0 Settings 加载流程

    一、系统设置首页 代码路径:packages/app/Settings/ 1 主界面加载: Settings的主界面是Settings.java,但是从Settings.java来看,除了大量的静态类继承SettingsActivity,就无其他有效信息了。但看其xml定义可以发现targetActivity属性,实质应是SettingsHomepageActivity.java。 先看其xml配置: SettingsH

    2024年02月05日
    浏览(51)
  • Android10.0 人脸解锁流程分析

    人脸解锁概述 人脸解锁即用户通过注视设备的正面方便地解锁手机或平板。Android 10 为支持人脸解锁的设备在人脸认证期间添加了一个新的可以安全处理相机帧、保持隐私与安全的人脸认证栈的支持,也为安全合规地启用集成交易的应用(网上银行或其他服务)提供了一种容

    2024年02月03日
    浏览(45)
  • android10.0(Q)编译安卓内核(pixel 2)

    下载内核源码 1.查看内核版本 首先需要看一下内核的版本,可以在手机中看到内核版本 2.下载该内核版本对应的源码 执行结果如下: 这里的分支\\\"4fecde07e68d\\\"就是上面的手机截图中内核版本里g后面的数字 编译 3.安装libssl(不装编译的时候会报错) 执行结果如下: 4.去掉内核

    2024年02月08日
    浏览(37)
  • Android 10.0 禁用adb shell input输入功能

    在10.0的产品开发中,在进行一些定制开发中,对于一些adb shell功能需要通过属性来控制禁止使用input 等输入功能,比如adb shell input keyevent 响应输入事件等,所以就需要 熟悉adb shell input的输入事件流程,然后来禁用adb shell input的输入事件功能,接下来分析下adb shell input的输入

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包