非淡泊无以明志,非宁静无以致远。这篇文章主要讲述Android.mk文件Application.mk文件编写规则相关的知识,希望能为你提供帮助。
在Application.mk文件中有个预定义命令参数APP_ABI,是指明编译与调试的CPU架构。
目前android系统支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年),MIPS(从2012年),ARMv8,MIPS64和x86_64(从2014年),每一种都对应相应的ABI。
CPU架构 | ABI | |
ARMv5 | armeabi | 32位,从2010年 |
ARMv7 | armeabi-v7a | 32位,从2010年 |
x86 | x86 | 32位,从2011年 |
MIPS | mips | 32位,从2012年 |
ARMv8 | arm64-v8a | 64位,从2014年 |
MIPS64 | mips64 | 64位,从2014年 |
x86_64 | x86_64 | 64位,从2014年 |
APP_ABI := arm64-v8a
或者直接生成所有的版本
APP_ABI := all
注意:根据不同的NDK版本,APP_ABI := all仅能生成当前版本支持的ABI信息库文件,如果需要生成最新的必须更新相应的NDK版本。
或者明确写明支持的CPU架构
APP_ABI := armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64
注意:(1)、目前模拟器只有x86_64的没有arm64-v8a的;(2)、在用真机测试armv8-a时,最好先通过adb shell, cat /proc/cpuinfo ,来查看下真机是否是支持armv8-a;(3)、arm32和arm64有些配置参数不能共存,如-msoft-float仅在arm32位下支持,在arm64位下是不支持的.
##一.Application.mk简介
要将C\\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。
本文将对Application.mk进行非常详细介绍。
###1.作用
Application.mk是用来确定一些编译规则的,
它规定的不是某一个文件某一行代码,而是所有文件相关
###2.存放位置
Application.mk和Android.mk是放在同一个目录下的。
一般是放在src/main/jni/下
jni是新建的文件夹,用于存放C/C++相关的代码
jni文件夹和java文件夹是同级目录,
如果生成的.so也是在/main下创建文件夹jniLibs,把.so放在jniLibs文件夹下
参考博客:https://blog.csdn.net/wenzhi20102321/article/details/87909907?depth_1-utm_source=distribute.pc_relevant.none-task& utm_source=distribute.pc_relevant.none-task
参考博客: https://blog.csdn.net/qq_31387043/article/details/50899589
参考博客:https://www.cnblogs.com/gamesky/p/11369156.html
【Android.mk文件Application.mk文件编写规则】
推荐阅读
- vant Weapp使用 引入
- 性能比肩美拍秒拍的Android视频录制编辑特效解决方案
- Android OnClick的四种方法
- Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/mapp
- 网页打开Android APP
- appium多线程
- adb 连接 Android 手机的两种方式
- Spring执行ApplicationEvent事件顺序ServletWebServerInitializedEvent
- Golang 版本 支付宝支付SDK app支付接口2.0