2011-06-02 36 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殺死。如果有人知道更好的解決方案,請告訴我們。

相關問題