android使用pcap库

was*_*256 4 java android libpcap

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

  • ANDROID NDK
  • JNETPCAP

我应该使用的任何建议或任何人都有其他建议吗?

Hal*_*oum 5

JNI解决方案

您需要在C或C++中用libpcap 包装所需的调用和逻辑,并通过(Java Native Interface)公开底层函数,以便您的应用程序可以用Java调用本机代码.JNI

JNI关于互联网上的文档是相当完整的,关于这个主题的许多教程都存在,例如这个.

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

获取的JNI代码应使用Android NDK作为动态库(.so)进行编译.该库将放在您的应用程序包下libs/.然后,您可以调用 System.loadLibrary(path_to_you_dynamic_library)以加载库中包含的所有符号,并在Java中使用它们.

使用第三方库

如果您在弄清楚如何使用JNI时害怕头疼,可以查看这个为您工作的库,并提供一个API来操作Java中的原始套接字.

http://www.savarese.com/software/rocksaw/