在Android手机开发中经常需要使用动态连接库的调用。
根据cpu不同只要分为arm构架和x86构架以及MIPS构架(MIPS暂时忽略);
根据不同构架需要将不同的*.so文件放入不同不同文件中。但是需要注意以下几点:
1、如果在libs 有多个文件夹比如 有三个x86 、 armeabi 、 armeabi-v7a 时,一定要保证 每一个文件下的so种类是全的 (常规的检查方式是查看名称和个
假设这样一个场景,如果有一台cpu为armeabi-v7a的手机再调用程序时,因为有armeabi-v7a的文件夹但是没有对应的so文件(so文件在armeabi 中),就会报错;
2、x86文件夹不是必须的,因为x86的cpu已经做了适配可以调用arm的so的库,如果厂商有需求可以在群里找我们客户的技术提供。
根据cpu不同只要分为arm构架和x86构架以及MIPS构架(MIPS暂时忽略);
根据不同构架需要将不同的*.so文件放入不同不同文件中。但是需要注意以下几点:
1、如果在libs 有多个文件夹比如 有三个x86 、 armeabi 、 armeabi-v7a 时,一定要保证 每一个文件下的so种类是全的 (常规的检查方式是查看名称和个
数是否相同),安智的平台在开开发包的demo中提供了armeabi和armeabi-v7a的so库。开发者根据自己的需求来选用。
这样做的原因是有些部分机型是调用动态库的逻辑是先查到和自己的cpu匹配的库,如果没有对应的文件夹(注意此处是对于的文件夹),则向下匹配。假设这样一个场景,如果有一台cpu为armeabi-v7a的手机再调用程序时,因为有armeabi-v7a的文件夹但是没有对应的so文件(so文件在armeabi 中),就会报错;
2、x86文件夹不是必须的,因为x86的cpu已经做了适配可以调用arm的so的库,如果厂商有需求可以在群里找我们客户的技术提供。