Android知识

Android常驻内存

2016-07-04  本文已影响853人  谢志海

这是一个偶尔由github issue里得到的方案,我还没机会运到实际项目上。希望将来也用不到,暂且记下。

首先来看原理


Android系统中(5.0及以上未验证是否有改变)当前进程(Process)fork出来的子进程,被系统认为是两个不同的进程。当父进程被杀死的时候,子进程仍然可以存活,并不受影响。

然后来看实现步骤


用C编写守护进程(即子进程),守护进程做的事情就是循环检查目标进程是否存在,不存在则启动它。
在NDK环境中将1中编写的C代码编译打包成可执行文件(BUILD_EXECUTABLE)。
主进程启动时将守护进程放入私有目录下,赋予可执行权限,启动它即可。

最后是相关代码片段


Paste_Image.png Paste_Image.png Paste_Image.png
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := watchdog.c
LOCAL_MODULE := watchdog
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
LOCAL_LDLIBS := -llog
include $(BUILD_EXECUTABLE)
Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读