android 杀不死的服务

本文介绍了一种在Android上实现后台服务不死的方法,通过创建双子进程并利用JNI调用Java层来监听文件变动,即使服务被杀死也能自动重启。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,在inter教育版本的项目中,实现了后台杀不死的服务。

1、前台服务

2、主进程fork()子进程。

(1)Android.mk:声明c文件

(2)xxx.h:声明native方法

(3)xxx.c:

a:fork子进程(1),再fork子进程,再杀死子进程(1)

b:AllocObject(env, clazz);初始化应用成对象

c:(*env)->SetObjectField(env, subprocess,
(*env)->GetFieldID(env, clazz, "mContext",
"Landroid/content/Context;"), context);把上下文环境传给应用层



d:jni调用java层,初始化监听,并且主线程wait(),

d:利用FileObserver监听:onEvent事件,当为不可写文件被 close时。


/proc/+pid (杀不死)    

"/data/data/"+pkgName;  卸载反馈

e:            Runtime.getRuntime()
                    .exec("am start --user 0 -n com.polysaas.emmlite/com.polysaas.emmlite.ui.FragmentHomeActivity");重启应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值