ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android.mk文件、Application.mk文件编写规则

2020-03-21 11:55:33  阅读:312  来源: 互联网

标签:文件 x86 ABI mk Application 64 arm64


在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年

相应生成arm64-v8a,mips64,x86_64下的文件需要NDK_r10以上版本支持。在Application.mk文件里配置APP_ABI的内容。例如指明某个具体的CPU架构

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

 

标签:文件,x86,ABI,mk,Application,64,arm64
来源: https://www.cnblogs.com/juluwangshier/p/12537486.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有