2011-06-02 66 views
1

有没有办法让本机C可执行文件永久运行(在后台)在Android操作系统? 我在Android中移植了libpcap,并且制作了一个嗅探器。我有一个根深蒂固的HTC Hero。我跑了嗅探器在后台通过这个命令:如何使本机C可执行文件在Android中永远运行?

$ su 
# mount -o remount,rw -t vfat /dev/block//vold/179:0 /sdcard 
# /sdcard/mysniffer & 

我同时运行一个Android服务,浏览网页,在一个循环的方式列表。为了强制我的服务在后台运行,我通过android.os.PowerManager获取PARTIAL_WAKE_LOCK

的服务永远在后台运行,但嗅探器从操作系统上运行的一段时间后杀死..

有没有办法让它运行下去?我希望这两个程序都在后台运行,以便进行一些测量。

+2

保持部分WakeLock不会使您的服务保持活动状态 - 它只是防止CPU在您的服务运行时休眠。这种行为会破坏电池寿命。标准服务一直运行,直到您停止;如果它由于内存不足而被Android系统破坏,那么稍后会在有更多内存可用时重新创建它。 – 2011-06-02 09:59:14

+0

是的,但在我的服务中,我使用计时器(我在onCreate中调用它)每隔5分钟将一些值转储到文件中。当我没有获得部分WakeLock时,如果我运行了2小时的服务,那么这个文件在这个时候才会有所有的值。而且,我怎么能永远运行一个本地可执行文件?这可能吗? – 2011-06-02 10:04:24

+0

在这种情况下,为什么不能使用每5分钟将其唤醒的警报服务来转储文件? – Geobits 2011-06-02 10:26:09

回答

0

我找到了一种方法来做到这一点,并进行我的实验和测量! :)我只是改变了PARTIAL_WAKE_LOCKSCREEN_DIM_WAKE_LOCK在我的服务! 我无法理解原因,但通过这样做,本机嗅探器并不会被Android杀死。如果有人知道更好的解决方案,请告诉我们。