Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android使用pcap库_Java_Android_Libpcap - Fatal编程技术网

Java android使用pcap库

Java android使用pcap库,java,android,libpcap,Java,Android,Libpcap,我有一个关于android应用的一般性问题,我需要在我的android应用中使用一些pcap功能。因为java在原始数据包注入和低层编程方面没有提供可能性(据我所知,如果我错了,请纠正我),所以我正在寻找替代方案。到目前为止,我发现了以下几点: 安卓NDK JNETPCAP 有什么建议我应该使用哪一个,或者有人有其他建议吗?JNI解决方案 你需要将调用和逻辑从LBPCAP中的C或C++中打包出来,并通过它公开底层函数,这样你的应用程序就可以用java调用本地代码。 关于JNI的文档在互联网上

我有一个关于android应用的一般性问题,我需要在我的android应用中使用一些pcap功能。因为java在原始数据包注入和低层编程方面没有提供可能性(据我所知,如果我错了,请纠正我),所以我正在寻找替代方案。到目前为止,我发现了以下几点:

  • 安卓NDK
  • JNETPCAP

有什么建议我应该使用哪一个,或者有人有其他建议吗?

JNI解决方案

<>你需要将调用和逻辑从LBPCAP中的C或C++中打包出来,并通过它公开底层函数,这样你的应用程序就可以用java调用本地代码。 关于
JNI
的文档在互联网上非常完整,有很多关于这个主题的教程,例如

如果您想在JNI中轻松包装本机代码,可以使用
Swig
,它允许您根据C/C++本机头自动生成JNI代码

获得的JNI代码应该使用AndroidNDK作为动态库(.so)进行编译。此库将放置在应用程序包的
libs/
下。然后,您可以调用
System.loadLibrary(path\u to\u You\u dynamic\u library)
来加载库中包含的所有符号并在Java中使用它们

使用第三方库

如果您担心在弄清楚如何使用JNI时会遇到麻烦,那么可以看看这个库,它为您做了大量的工作,并提供了一个API来操作Java中的原始套接字

您需要将调用和逻辑从LbpCAP中的C或C++中打包出来,并通过JNI(java本机接口)公开底层函数,这样您的应用程序就可以java调用本地代码。 或者你需要一个已经完成了的库,比如,呃,嗯


在Android或任何其他使用Linux内核的操作系统上进行数据包捕获的任何尝试都可能存在一个问题,即默认情况下,libpcap(
pfu-packet
sockets)使用的底层内核机制需要根权限。如果有办法以root用户身份运行您的代码,或者给它
CAP\u NET\u RAW
和可能的
CAP\u NET\u ADMIN
权限,那么它就有可能工作。

您在非root用户手机上试过吗?我需要网络嗅探功能的非根安卓手机。