Android_常驻进程(杀不死的进程)

                                                                                                  常驻进程

        Android常驻进程,就是要让进程在内存中永远存在,让进程保活,不被杀死。可能这时都会喷,这不是流氓软件吗?刚接触android的时候,我也是认为这是很流氓的做法,可是慢慢发现很多场景(应用),要为用户服务,就必须用到常驻进程,就好像微信,QQ,360安全手机卫士这些现在比较火,比较常用的软件来说,他们都是实现了常驻进程的。所以说,有时候常驻进程在开发中是必须的,比如锁屏应用,就必须在进程中接收锁屏的广播,因此要保证进程常驻,像QQ,微信那些IM类应用,也需要长期在后台维护一个长链接,因此进程常驻又是必须的!

        因为最近开发的应用需要用到常驻进程,因此一开始的猜想在java层是不能解决的,必须得在native解决,可是现在对linux和android系统理解还不够深入,而且ndk开发才刚入门,因此在网上搜了一大堆资料,总得来说,给出的解决方法不就外乎下面的几种:

1、将Service设置为前台进程
       相关资料和Demo可以查看之前的博客:http://blog.csdn.net/Two_Water/article/details/52084372

       本质是修改了Service所在进程的进程优先级。有了前台进程的优先级,在android系统清理内存的时候,他被杀死的优先级仅高于前台的activity,也就是正在和用户交互的页面,而且使用ddms杀进程他也可以自己启动起来。首先ddms杀进程和在系统设置的正在运行中杀进程本身就不具威胁,在系统设置的所有应用中选择强行停止,仍然可以强停掉,360,cm等软杀更是能轻而易举杀死他。而且他还有一个缺点,在api17以上,设置了一个前台服务,他会以一个无法消除的notification的样式出现在用户的手机状态栏里,大大降低了用户体验。可是前台服务适合做一些音乐播放器,天气类的应用!

2、在service的onStartCommand方法里返回 STATR_STICK
       主要的几个返回值:
       1. START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。 
       2. START_STICKY:系统就会重新创建这个服务并且调用onStartCommand()
  • 10
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
在Linux中,常驻进程(也称为守护进程)是指在后台运行并保持运行的进程常驻进程通常用于维护系统的稳定性和可用性,例如网络服务、系统监控等。常驻进程在系统启动时启动,并在系统关闭时终止。 常驻进程可以通过多种方式实现,其中一种常见的方式是使用init.d脚本。init.d脚本是一种用于管理系统服务的脚本,可以在系统启动时自动启动常驻进程,并在系统关闭时自动终止。通过init.d脚本,可以方便地管理常驻进程的启动、停止和重启。 要查看当前系统中的进程信息,可以使用ps命令。ps命令的常用选项包括: - ps -a:显示当前终端的所有进程信息 - ps -u:以用户的格式显示进程信息 - ps -x:显示后台进程运行的参数 例如,使用ps -aux命令可以显示当前系统中所有进程的详细信息,包括进程号、CPU占用率、内存占用率等。\[2\] 要查看特定进程的详细信息,可以使用ps -ef命令结合grep命令进行过滤。例如,使用ps -ef | grep sshd命令可以查看所有与sshd相关的进程信息。\[3\] 如果需要终止进程,可以使用kill命令。kill命令可以向指定的进程发送信号,以请求其终止。可以使用进程号或进程名来指定要终止的进程。另外,killall命令可以终止所有具有指定名称的进程。 总结起来,Linux中的常驻进程是在后台运行并保持运行的进程,可以通过init.d脚本启动和管理。可以使用ps命令查看进程信息,使用kill命令终止进程。 #### 引用[.reference_title] - *1* [【Linux 系统】关于守护进程](https://blog.csdn.net/liuhuoxingkong/article/details/114207231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Linux 进程管理(重点)](https://blog.csdn.net/sxycylq/article/details/128719670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值