当前位置: 代码迷 >> Android >> 能否在应用程序中直接调用系统已经编译好的so库
  详细解决方案

能否在应用程序中直接调用系统已经编译好的so库

热度:106   发布时间:2016-05-01 22:22:10.0
求助:能否在应用程序中直接调用系统已经编译好的so库?
在做一个视频播放的项目,用到了havlenapetr的开源代码,它采用了ffmpeg作为解码器,还有android的视频渲染、音频播放实现。它将android关于视频渲染和音频播放的实现编译为libjnivideo.so和libjniaudio.so两个库(这两个库在编译Android系统后可以得到),然后通过JNI在C语言层调用了相关函数,实现了已解码视频的播放。
现在想能不能不使用这两个库,直接调用系统中的相关函数?不知道大家有没有什么想法呀?谢谢大家了

------解决方案--------------------
问题是libjnivideo.so和libjniaudio.so不同的机子不一定有的

如果可以肯定系统上有这两个库可以不用拷 只要指定运行时指定下库的加载路径
LOCAL_LDLIBS +=-Lsystem/usr/lib -ljniaudio
------解决方案--------------------
探讨

引用:

问题是libjnivideo.so和libjniaudio.so不同的机子不一定有的

如果可以肯定系统上有这两个库可以不用拷 只要指定运行时指定下库的加载路径
LOCAL_LDLIBS +=-Lsystem/usr/lib -ljniaudio

是在Android.mk里添加这句话吗?



------解决方案--------------------
系统有的库,可以不用加的。如果要用这些库你还得写代码调用这些方法,然后再写JNI,这样JAVA才可以用到库中的方法。你可以看下源码frameworks/base/media/jni的实现。
------解决方案--------------------
探讨

问题是libjnivideo.so和libjniaudio.so不同的机子不一定有的

如果可以肯定系统上有这两个库可以不用拷 只要指定运行时指定下库的加载路径
LOCAL_LDLIBS +=-Lsystem/usr/lib -ljniaudio
  相关解决方案