关于5.0手机.so类库的测试,以BaiduMapsApiDemo为测试程序分别进行模拟器和真机测试,分析不同情形对程序安装是否成功的影响。
BaiduMapsApiDemo为从百度地图lbs下载,测试页面为:定位图层展示--LocationOverlayDemo(LocationOverlayDemo)
测试机如下:
模拟器型号:Nexus7、android版本:5.0.1
测试机型号:小米3、android版本:5.1.1(rom刷机)
测试机型号:小米1s、android版本:4.1.2
测试 | 条件 | 结果 |
情形1 | 只有armeabi文件夹的情况 | 正常√ |
情形2 | 有armeabi文件夹有armeabi-v7a文件夹且armeabi-v7a为空 | 正常√ |
情形3 | 有armeabi文件夹有armeabi-v7a文件夹且有libBaiduMapSDK_v2_4_0.so无liblocSDK3.so | 进入程序正常,进入定位功能页面无地图显示 couldn't find "liblocSDK3.so" |
情形4 | 有armeabi文件夹有armeabi-v7a文件夹且有liblocSDK3.so无libBaiduMapSDK_v2_4_0.so | 进入程序正常,进入定位功能页面无地图显示 couldn't find "liblocSDK3.so" × |
情形5 | 有armeabi文件夹有armeabi-v7a文件夹且有libBaiduMapSDK_v2_4_0.so有liblocSDK3.so | 正常√ |
情形6 | 有armeabi文件夹有armeabi-v7a文件夹且有无关.so文件无libBaiduMapSDK_v2_4_0.so无liblocSDK3.so | 进入程序失败,程序终止。couldn't find "libBaiduMapSDK_v2_4_0.so" × |
情形7 | 有armeabi文件夹有armeabi-v7a文件夹且有大小为0的无关文件(.txt)无libBaiduMapSDK_v2_4_0.so无liblocSDK3.so | 正常√ |
情形8 | 有armeabi文件夹有armeabi-v7a文件夹且有大小不为0的无关文件(.txt)无libBaiduMapSDK_v2_4_0.so无liblocSDK3.so | 正常√ |
本文为个人原创,转载请注明。
测试结论:
.so文件的适配,在所有架构文件夹都存在的情况下,如果只有armeabi文件夹存放其他文件夹为空的情况可能为正常;如果armeabi-v7a文件夹有.so文件存在的情况,如果缺少功能需要的.so文件都会对程序的正常运行造成影响即会出现异常;如果armeabi-v7a文件夹有非.so文件存在的情况,不一定会影响程序的正常运行,起码.txt文件没有影响(推测规则为遍历armeabi-v7a文件夹下后缀为.so的文件)。
同时,使用5.0之前的版本的真机(4.1.2)重复以上测试内容,结果情形3、情形5的结果跟5.0测试的结果不同都为正常。