Android: app不被系统kill掉
lowmemorykiller的操作规则比如为
write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
可以看到,设置persistent后, oom_adj=-12,永远没有机会被lowmemorykiller处理
Android:persistent
Whether or not the application should remain running at all times — "true" if it should, and "false" if not. The default value is "false". Applications should not normally set this flag; persistence mode is intended only for certain system applications
代码
- ActivityManagerService.java
- final ProcessRecord addAppLocked(ApplicationInfo info) {
- ProcessRecord app = getProcessRecordLocked(info.processName, info.uid);
- if (app == null) {
- app = newProcessRecordLocked(null, info, null);
- mProcessNames.put(info.processName, info.uid, app);
- updateLruProcessLocked(app, true, true);
- }
- if ((info.flags&(ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_PERSISTENT))
- == (ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_PERSISTENT)) {
- app.persistent = true;
- app.maxAdj = CORE_SERVER_ADJ;
- }
- if (app.thread == null && mPersistentStartingProcesses.indexOf(app) < 0) {
- mPersistentStartingProcesses.add(app);
- startProcessLocked(app, "added application", app.processName);
- }
- return app;
- }
可以看到同时符合FLAG_SYSTEM(/system/app目录)及FLAG_PERSISTENT(android:persistent="true")
的app,设置app.maxAdj = CORE_SERVER_ADJ(-12),而adj=-12不会被lowmemorykiller处理
Android: app不被系统kill掉相关推荐
- Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- Android APP字体随系统字体调整造成界面布局混乱问题解决方案
一.遇到的问题 当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱. 下面先说一下关于sp单位的理解 sp单位除了受屏幕密度影响外,还受到用户的字体大小影响,通 ...
- android 7.1 字体更换,Android APP字体随系统字体调整造成界面布局混乱问题解决方案...
一.遇到的问题: 当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱. 下面先说一下关于sp单位的理解 sp单位除了受屏幕密度影响外,还受到用户的字体大小影响, ...
- android改变整个app字体大小,Android APP字体随系统字体调整造成界面布局混乱问题解决方案...
一.遇到的问题: 当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱. 下面先说一下关于sp单位的理解 sp单位除了受屏幕密度影响外,还受到用户的字体大小影响, ...
- Android下写一个永远不会被KILL掉的进程/服务
Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一 ...
- android进程守护 失效,保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 1...
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ?Android.content.Context ?and ...
- 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 3
第二部分: 做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看 ...
- Android 系统(55)---Android App开发之ANR异常的原因分析及处理总结
Android App开发之ANR异常的原因分析及处理总结 Android App开发之ANR异常的原因分析及处理总结 ANR的全称是application not responding,根据它的意思 ...
- 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 2
保持Service不被Kill掉的方法--双Service守护,代码如下: AndroidManifest.xml: [java] view plaincopy <activity androi ...
最新文章
- 问题征集 | 跟计算机史学家对谈是一种怎样的感受
- 靠Python数据分析已赚10w的本科生
- mac下安装与配置mysql数据库,Mac下MySQL的安装与配置
- python输出语句print i、j、k,python:在exec语句中获取打印输出
- Coinbase与CS: GO比赛组织者BLAST Premier签署赞助协议
- js和php难度,有js基础和简单的php基础,但是学习nodejs还是很吃力
- Bootstrap 后台模板-AdminLTE
- 炫酷神器,AE插件Bodymovin.zxp的安装与使用
- GRUB和LILO的区别
- 【软件测试面试题】证券项目面试过程总结
- 北京航空大学计算机录取分数线,北京航空航天大学录取分数线2021是多少分(附历年录取分数线)...
- vue根据获取的文件名显示文件服务器上的图片
- matlab冲激响应不变发,matlab实验七冲激响应不变法IIR数字滤波器设计
- C语言:strcpy()---字符串复制
- 云适配联合IT巨头拟成立“中国企业级HTML5产业联盟”
- 数学建模笔记(十三):离散模型(DP、图论)
- 苹果应用程序商店_苹果TF上架丨Testflight如何使用?
- 详解SpringBoot整合Redis
- 情人节python代码_情人节 ,能否表白成功就看这段Python代码了
- 工作中遇见的git疑问整理
热门文章
- Network Virtualization In Solaris 11
- Window系统下 MongoDB 下载 和 安装
- C语言调用函数将is替换为be,C语言程序设计课件ppt.ppt
- Word2Vec算法详解(CBOW和skip-gram算法详解)
- 机器学习--支持向量机实战(二)简易SMO算法实现
- oracle共享内存系统全局,Oracle10g 管理系统全局区简介
- java 比较2个时间大小写_date - Java 8:计算两个LocalDateTime之间的差异
- 在马来西亚做it总监_IT行业40岁以上的人都去哪儿了?
- mysql导入报错1071_导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes...
- mysql函数第一次返回字符串_Mysql字符串处理函数详细介绍、总结