您的位置:首页 > 移动开发

Android: 怎样设置app不被系统k掉

2013-12-31 11:04 435 查看
Android: 怎样设置app不被系统k掉
2013-09-14 11:24:28     我来说两句       作者:u011884154
收藏    

我要投稿

有一种方法可以设置app永远不会被kill,AndroidManifest.xml 中添加:
 
android:persistent="true"
适用于放在/system/app下的app
 
设置后app提升为系统核心级别,任何情况下不会被kill掉, settings->applications里面也会屏蔽掉stop操作,
设置前 Proc #19: adj=svc  /B 4067b028 255:com.xxx.xxx/10001
(started-services)
# cat /proc/255/oom_adj
4
设置后 PERS #19: adj=core /F 406291f0 155:com.xxx.xxx/10001 (fixed)
# cat /proc/155/oom_adj
-12
 
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
 
代码
 

?
 

 
可以看到同时符合FLAG_SYSTEM(/system/app目录)及FLAG_PERSISTENT(android:persistent="true")
的app,设置app.maxAdj = CORE_SERVER_ADJ(-12),而adj=-12不会被lowmemorykiller处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: