让APK只包含指定平台的so库(abi)
来源:互联网 发布:应届程序员工资 编辑:程序博客网 时间:2024/05/17 00:12
相信大家都用过很多第三方的sdk,比如百度地图,支付宝,极光推送等等。如果这个sdk对Android的平台支持全,可能会包含armeabi, armeabi-v7a,x86, arm64-v8a,x86_64五种abi,但是你其他的so库可能只支持其中的几个平台,这样,你编译运行,可能就会Crash。
我试着把QQ和微信的APK解压,发现他们只有armeabi的支持,其他的平台根本不需要,我也就查阅资料,看如何把其他的去掉,开始只想着去删除,后面查询资料发现了更加便捷的方式。
第一种:对每个要生成的渠道包进行分别配置(在app下的build.gradle文件中配置)
productFlavors { samsungapps{ ndk { abiFilters "armeabi" } } hiapk{ ndk { abiFilters "armeabi-v7a" abiFilters "x86" abiFilters "armeabi" abiFilters "arm64-v8a" abiFilters "x86_64" } } anzhi{ ndk { abiFilters "armeabi-v7a" abiFilters "armeabi" abiFilters "arm64-v8a" } }}像这种就是单独对渠道包配置,对应打出来的包就只包含你所需要的so库。
第二种:全局配置(这种需求比较多,同样是在app下的build.gradle下配置)
defaultConfig { ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" } }这样生成的所有Apk就最多有armeabi, armeabi-v7a, arm64-v8a这三种平台的so库,当然要它本身就有这三个平台的so库
更多分享请搭载老爷车进入开车啦
1 0
- 让APK只包含指定平台的so库(abi)
- 让APK只包含指定的ABI
- 让APK只包含指定的ABI
- 让APK只包含指定的ABI
- 让apk只包含指定的so
- Android打包APK时-->指定.so库
- ABI-CPU架构-.so库
- Android按需打包多种ABI(cpu)架构的so文件库
- 只保留armeabi的.so文件用来减小apk包(不保证100%不崩溃)
- Android源码中内置包含so文件的APK文件
- Android源码中内置包含so文件的APK文件
- 让qmake的lib项目只生成一个so库文件
- 只让指定的机器连接SQLServer服务器
- 只让指定的机器连接SQLServer服务器
- 只让指定的机器连接SQLServer服务器
- 只让指定的机器连接SQLServer服务器
- 只让指定的机器连接SQLServer服务器
- 只让指定的机器连接SQLServer服务器
- java 基础知识五 数组
- 空格替换
- adb: 未找到命令
- DAY1
- ios自定义TextView,实时监控输入字数的改变,计数以及超出时键盘自动隐藏
- 让APK只包含指定平台的so库(abi)
- 防丢器技术支持。
- jquery hover事件 in和out
- Linux Framebuffer驱动剖析之二—驱动框架、接口实现和使用
- 电商项目秒杀分析
- 什么是经济地理学
- jedis连接池配置
- 1020. 月饼 (25)
- Android Studio安装及配置过程