在不同的Android项目中使用已编译的ffmpeg库

时间:2014-01-17 14:51:34

标签: android linux windows android-ndk ffmpeg

我已经在我的Android应用程序中编译了ffmpeg库,所以现在我有* .so文件,我想在其他Android项目中使用它们。 但是我已经在Linux中编译了它们,现在我将在Windows中工作。我可以把这些编译好的文件放到Windows中的项目中,将它们链接到mk文件中并使用吗? 32位和64位操作系统之间的区别是否起作用? 谢谢!

1 个答案:

答案 0 :(得分:1)

只要你的目标android平台是相同的,它应该可以工作。

Android NDK编译器生成的.so文件是目标android平台的本机代码。 它只是完整地打包到APK中,因此用于打包APK的操作系统不会影响结果。

编辑:

  1. 正如评论者建议的那样,目标平台我的意思是CPU架构,如ARM,x86或MIPS

  2. 对于API级别,targetSdkVersion和minSdkVersion都不会直接影响本机代码。

    相反,如果您使用的API级别高于实际Android设备上提供的API级别,则代码可能会在运行时失败。

    为了安全地避免这种情况,您需要根据编译.so文件时假定的NDK API级别设置minSdkVersion。

    换句话说,"< your-ndk-dir> / platforms / android-< NDK-API-level> / arch-< CPU type> / usr /...&#下的文件34;编译本机代码时应该由NDK编译器查找。确定使用的级别,并确保您具有与minSdkVersion相同或更大的数字。

    如果您安装了NDK,则会记录在"< your-ndk-dir> /docs/STABLE-APIS.html"。