我想在使用Process.start()的NDK上運行tcpdump並希望將此輸出捕獲到緩衝區。任何人都可以告訴我該如何做到這一點?同樣是在同一過程中創建的進程Dalvik Vm作爲JNI調用還是它在不同的VM?運行本機進程的Android NDK
2
A
回答
4
運行本機進程並不是真正支持ndk的使用,但您不會是第一個執行此操作的人。
另請注意,tcpdump可能需要以root或setuid root身份運行纔能有用。你有一個版本的tcpdump編譯和鏈接適當的android?
我認爲你實際上想要的是android.os.Exec.createSubprocess這是這個,而不是公開的,而不是Process.start。有一種使用反射的正確方法,通過將Exec.java(具有本地方法的聲明)複製到項目中是錯誤的方法。您可以使用管道來恢復結果,也可以通過shell啓動它並將輸出重定向到您從java讀取的文件。
查看帶有本地shell選項的android終端模擬器的源代碼,瞭解如何執行此操作的示例。
(實際上,我應該重申一下 - 正確的做法是在您自己的jni庫中複製非公開Exec方法的本地功能,以便您不受非公開部分中的更改影響的平臺)。
相關問題
- 1. 如何從android本機二進制運行單獨的進程?
- 2. 使用ndk-gdb進行Android NDK調試
- 3. Android studio ndk-build.cmd未運行
- 4. 與ndk運行Android應用程序時的運行時錯誤
- 5. 如何運行NDK樣本?
- 6. 運行android ndk-build的問題
- 7. Android本機 - 何時使用64位NDK?
- 8. 使用NDK構建Android本機代碼
- 9. 使用NDK在Android上進行本地化/本地化
- 10. 開發本機C應用程序沒有NDK的android?
- 11. 從Adobe AIR的本機進程運行Java程序
- 12. 在Linux桌面上運行Android NDK二進制文件
- 13. 在Android NDK中運行Unix二進制文件
- 14. 我如何知道我正在運行的Android ndk版本
- 15. Android:使用NDK進行OpenGL渲染
- 16. 黑莓Android運行時與NDK
- 17. 運行2個樣本NDK應用程序的問題
- 18. 運行在命令行IDE的NDK本地活動樣本
- 19. Android ndk基本:關於本機字符串的幫助
- 20. 在Eclipse中進行Android NDK調試 - 如何停止只在進入本機代碼時出現的segfaults/SIGILL
- 21. 無法在設備上運行Android NDK應用程序
- 22. 如何在eclipse中運行示例android ndk程序?
- 23. Python:在Windows主機中運行進程
- 24. 在進程內運行erlang虛擬機
- 25. AIR本機進程在Mac上運行,但不在Windows上運行
- 26. 如何在flex庫中運行本機進程?
- 27. 從Android應用程序運行C二進制文件:particulare case
- 28. 在本地機器上使用腳本運行遠程R進程
- 29. Android中運行任務和運行進程之間的區別
- 30. Android NDK本地代碼是否爲真本機?
將嘗試...感謝您的幫助 – Jony 2010-09-23 05:50:42