高德地图包变大问题解决方案

包变大原因:兼容所有平台的so库打入apk中

解决思路:只打入必要的so

1.哪些so是必须打入的?
2.so之间的兼容性是怎样的?
3.跟其他sdk的兼容性如何解决?

参考网址:http://www.cnblogs.com/libertycode/p/5995399.html

ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a', 'x86'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}

abiFilters

指定ndk需要兼容的架构,把除了'armeabi', 'armeabi-v7a', 'x86' 以外的兼容包都过滤掉,只剩下'armeabi', 'armeabi-v7a', 'x86' 的文件夹

对于一个cpu是arm64-v8a架构的手机,它运行app时,进入jnilibs去读取库文件时,先看有没有arm64-v8a文件夹:
如果没有该文件夹,去找armeabi-v7a文件夹,如果没有,再去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常

如果有arm64-v8a文件夹,那么就去找特定名称的.so文件,注意:如果没有找到,不会再往下(armeabi-v7a文件夹)找了,而是直


关键点:微博没有v8的.so库,高德是有的(如果生产了V8文件夹,微博会报错)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。