2015-04-20 38 views
0

我有兩個c應用程序運行在android 說helloWorld和helloHell。我需要運行兩者,但在兩者之間重新啓動。 我已經ADB推應用程序文件夾中的Android文件系統,並創建了兩個腳本:運行兩個應用程序/腳本之間的重啓之間沒有手動干預

helloworld.sh and helloHell.sh 

inside helloworld.sh : 
./helloworld 
    reboot 

inside helloHell.sh : 
./helloHell 
    reboot 

我寫了一個shell腳本主機PC上是這樣的:

hell-world.sh 



1->adb shell sh helloWorld.sh 
2->some calculated delay 
3->adb shell sh helloHell.sh 

但隨着問題這是在運行第一個腳本(1->)後該命令掛起(可能是由於在helloworld.sh內重新啓動),我必須手動執行CTRL + C,然後手動運行第二個腳本(2->)重啓結束。 我甚至試圖做這樣的事情

PID =$! 
kill -9 $PID 

但invain第一個腳本執行後殺死(1->),

我的目標是在兩者之間沒有用戶同時運行以重新啓動應用程序干預介於兩者之間。這裏的問題是在重新啓動之後,沒有新的命令被執行,並且必須手動終止它。

+0

定期檢查,如果你的設備是可用的,使用'ADB devices'。設備再次可用後,等待一段時間,如果您想要並繼續進一步的命令。 – anishsane

+0

問題在於設備在重新啓動後變得可用之前。那就是終端窗口doenst返回到下一行並保持掛起狀態,直到我按CTRL + C,我想要避免。 – Raulp

+1

這將幫助你在上面評論中等待一段時間:http://stackoverflow.com/questions/13091035/adb-receive-broadcast-boot-complete – anishsane

回答

-1

從腳本文件中刪除reboot &試試這個

adb shell sh helloWorld.sh 
adb shell reboot 
# add some delay here 
adb shell sh helloHell.sh 
+0

如果我把所有內容放在腳本中,如你所說提示將不會重新啓動後,我不得不手動做CTRL + C,我不想要。 – Raulp

相關問題