Android NDK běží nativní procesy

hlasů
2

Chci běžet tcpdump na NDK pomocí Process.start () a chcete zachytit tento výstup do buffer.Can mi někdo ukázat, jak mohu udělat? Také je proces vytvořen ve stejném Dalvik Vm jako výzvu JNI nebo je že v jiném VM?

Položena 21/09/2010 v 07:35
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Běžící přirozené procesy ve skutečnosti není podporováno použití NdK, ale ty by neměly být první osoba, která má dělat.

Také si všimněte, že tcpdump může být nutné spustit jako root nebo setuid root být užitečné. A máte verze tcpdump sestaveny a spojeny vhodným pro android?

Myslím, že ve skutečnosti chcete android.os.Exec.createSubprocess který je um, ne veřejný, spíše než Process.start. Tam je správný způsob, jak to udělat pomocí odrazu a špatný způsob, jak to udělat zkopírováním Exec.java (který má prohlášení o přirozených metod) do projektu. Můžete použít trubku obnovit výsledky, nebo jej můžete spustit přes shell a přesměrovat výstup do souboru, který budete číst z Javy.

Viz zdroj android emulátor terminálu s možností místní shell na ukázku toho, jak to udělat.

(Ve skutečnosti bych zopakovat to - ten správný způsob, jak to udělat, je kopírovat nativní funkce metod neveřejných Exec ve svém vlastním JNI lib, takže jsou imunní vůči změnám v tomto neveřejnou část plošiny) ,

Odpovězeno 23/09/2010 v 06:06
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more