【发布时间】:2011-05-25 19:39:07
【问题描述】:
我有一个应用程序(有一部分)需要始终运行;它不是作为服务启动的,该应用程序启动了一个以 root 身份运行的守护进程(用 c 编写)。
android 会为了回收内存而杀了我吗?它以root身份运行是否可以保护我免受此侵害?如果没有,我该怎么做才能确保它永远不会死,如果死了,它会重新开始?
【问题讨论】:
标签: android android-ndk daemon root kill
我有一个应用程序(有一部分)需要始终运行;它不是作为服务启动的,该应用程序启动了一个以 root 身份运行的守护进程(用 c 编写)。
android 会为了回收内存而杀了我吗?它以root身份运行是否可以保护我免受此侵害?如果没有,我该怎么做才能确保它永远不会死,如果死了,它会重新开始?
【问题讨论】:
标签: android android-ndk daemon root kill
如果您的守护程序是纯原生应用程序(例如,通过系统的 inittab 启动),而不是在 APK 上下文中运行的东西,那么 Android 将永远不会杀死它。至少,在我的情况下,我的守护进程唯一一次终止是在我修复 SIGSEGV 之前;)
【讨论】:
我已经有一段时间没有使用过 android 了,也没有使用过 root 运行进程。但我确实相信,无论您的应用程序正在运行什么用户,如果内存确实变低,Android OS 可能会发出“停止”,然后可能会发出“杀死”命令。我之所以这么说是因为类似于完整的 Linux 内核,如果它需要内存,它会找到一种方法来获取它。我有一部 HTC 手机,实际上我已经看到内核杀死 HTC sense 以获得 RAM,这实际上是重置手机。有一些方法可以设置应用程序的启动时间,我相信您可以设置挂钩,说明应用程序何时应该根据电话事件启动。类似于当手机收到 txt 时 txt msg 应用程序将如何启动,或者即使您在任务管理器中杀死该应用程序,警报应用程序仍将如何关闭。我相信您可以在应用程序 xml 配置中设置这些。
祝你好运!
【讨论】: