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年

相应生成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

原文地址:https://www.cnblogs.com/juluwangshier/p/12537486.html

时间: 2024-11-09 01:42:40

Android.mk文件、Application.mk文件编写规则的相关文章

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke

1. 前言 在android2.2中,加入了cmake编译,而以前都是用Android.mk.Application.mk的,今天就来记录下,他们的配置选项. 2. Android.mk Android.mk在jni目录下,用于描述构建系统的源文件以及 shared libraries .文件格式如下: 以LOCAL_PATH变量开始 LOCAL_PATH := $(call my-dir) 紧接着是CLEAR_VARS变量 include $(CLEAR_VARS) 接下来LOCAL_MODU

Cocos2d-x移植到Android平台编译的两个文件Android.mk和Application.mk

背景 首先,说说文章的背景.最近手中的一个项目,由于需求中要求提供Web界面的打印功能,当然如果没有打印机,还可以提供保存到本地.项目组长把这个"小任务"分给了我.本着努力为组长分忧解难的思想,领了任务之后,就马上开始了工作. 问题 刚开始的时候,组长给了一个工具(jatoolsprinter)让我研究,我用了一个多小时的时间,做出了一个简单的Demo,然后就是各种的测试,由于 web 打印需要浏览器安装 ActiveX 组件,在随后的测试中,我用了几款浏览器,甚至把安全级别都调到了最

Android.mk和Application.mk文件语法规范说明及举例

以下英文内容摘自:http://www.kandroid.org/ndk/docs/OVERVIEW.htmlThe Android NDK is a set of tools that allows Android application developers to embed native machine code compiled from C and/or C++ source files into their application packages. NDK development

如何输出 android.mk 及 Application.mk 中个变量的值

想知道 android.mk 及 Application.mk 中各变量的值可以通过新建如下两个.mk文件: PRINT_ANDROID_VARIABLE.mk PRINT_APPLICATION_VARIABLE.mk 包含到android.mk文件中某位置: 1 include $(LOCAL_PATH)\PRINT_ANDROID_VARIABLE.mk 2 include $(LOCAL_PATH)\PRINT_APPLICATION_VARIABLE.mk 文件PRINT_ANDROI

Android NDK开发指南---Application.mk文件和android.mk文件

https://android.googlesource.com/platform/development/+/donut-release/ndk/docs/OVERVIEW.TXT https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/ANDROID-MK.TXT https://android.googlesource.com/platform/ndk/+/4

NDK开发之Application.mk文件详解

做过NDK开发的同学应该都知道有个Application.mk文件,这是android NDK构建系统使用的一个可选构建文件.它的目的是描述应用程序需要哪些模块,也定义了所有模块的一些通用变量.主要有以下几个变量. APP_MODULES,默认情况下,ndk会构建在android.xk文件中声明的所有模块.但是这个变量可是覆盖上述行为. 假如我们的android.mk文件是这样的: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_

【转】Application.mk 文件语法规范

原文网址:http://blog.sina.com.cn/s/blog_4c451e0e0100s6q4.html Application.mk file syntax specification Application.mk 文件语法规范 Introduction: 介绍: ------------- This document describes the syntax of Application.mk build files written to describe the native m

Application.mk文件使用说明

本文档介绍了 ndk-build 所使用的 Application.mk 编译文件. 我们建议先阅读概念页面,然后再阅读本页面. 概览 Application.mk 指定了 ndk-build 的项目范围设置.默认情况下,它位于应用项目目录中的 jni/Application.mk下. 注意:其中许多参数也具有模块等效项.例如,APP_CFLAGS 对应于 LOCAL_CFLAGS.无论何种情况下,特定于模块的选项都将优先于应用范围选项.对于标记,两者都使用,但特定于模块的标记将后出现在命令行中

【Android本地开发技术:编译脚本】Application.mk

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 一 Application.mk文件的作用和特点 作用:描述应用程序中所需要的模块(静态库或动态库). 位置:Application.mk通常放在PROJECT/jni/Applicatio.mk,PROJECT指的是项目路径. 二 Application.mk文件的变量 2