
引入jna.jar包。 然后写一个接口类继承Library来和.so(linux平台)或.dll(windows平台)文件交互。接口中对应的方法为so中的方法,大小写都需要完全一致,同时参数类型也需要注意,jna和so中的参数类型的对应转换。
以下是代码是大概例子,你可以看一下,是有参数的对应格式的。其中,Native.loadLibrary为加载链接库文件。
public interface LibVlc extends Library {Info INFO = Info.getInstance()
LibVlc INSTANCE = (LibVlc)Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class)
LibVlc SYNC_INSTANCE = (LibVlc)Native.synchronizedLibrary(INSTANCE)
String libvlc_errmsg()
void libvlc_clearerr()
libvlc_instance_t libvlc_new(int argc, String[] argv)
}
用Eclipse编译工程,若工程下有libs目录,会自动将里面的*.so库编译到apk包中。我现在需要用到*.so库和Android.mk文件编译工程,但用Eclipse编译时,Android.mk不起作用。Android.mk好像只有在通过源代码编译工程时才起作用(我目前只发现这个法),即在Linux环境下的Android源代码目录中,通过make或mmm命令编译。但通过mmm编译的工程,不会把工程下libs目前中的*.so库添加进apk包里,是不是要在Android.mk文件中添加一些申明什么的?还有,想知道Android源代码中,重启手机的相关代码在哪个部分。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)