做过NDK开发的同学应该都知道有个Application.mk文件,这是android NDK构建系统使用的一个可选构建文件。它的目的是描述应用程序需要哪些模块,也定义了所有模块的一些通用变量。主要有以下几个变量。


APP_MODULES,默认情况下,ndk会构建在android.xk文件中声明的所有模块。但是这个变量可是覆盖上述行为。

假如我们的android.mk文件是这样的:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := jni1
LOCAL_SRC_FILES := jni1.c include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS) LOCAL_MODULE := jni2
LOCAL_SRC_FILES := jni2.c include $(BUILD_SHARED_LIBRARY)

application.mk文件是这样的:

APP_MODULES := jni1

那么系统只会生成libjni1.so文件,而不会生成libjni2.so文件。如果要生成libjni2.so,那么我们可以这样:

APP_MODULES := jni1 jni2

APP_OPTIM:该变量可以被设置为release或者debug,这样可以改变生成的二进制文件的优化级别。默认情况下是release模式。此时生成的二进制文件被高度优化。如果需要调试的话我们最好还是设置为debug模式。


APP_CLAGS:该变量列出了一些编译器标志,在编译任何模块的C或者C++代码时这些标志都会被传给编译器。


APP_CPPFLAGS:该变量列出了一些编译器标志,在编译任何模块的C++代码时这些标志都会被传给编译器。


APP_ABI:默认情况下,ndk构建系统为armeabi,ABI生成二进制文件,该变量可以改变上述行为:

APP_ABI := armeabi armeabi-v7a x86

如果要为所有支持的ABI生成二进制文件:

APP_ABI := all

APP_STL:默认情况下,ndk构建系统使用最小的stl运行库,也被称为system库,该变量可以改变上述行为。


APP_GUNSTL_FORCE_CPP_FEATURES:表明所有的模块都依赖于具体的C++特性,与LOCAL_CPP_EXTENSIONS类似。


APP_SHORT_COMMANDS:该变量使得构建系统在有大量源文件的情况下可以在项目中使用更短的命令。与LOCAL_SHORT_COMMANDS类似。


版权声明:本文为博主原创文章,未经博主允许不得转载。若有错误地方,还望批评指正,不胜感激。

NDK开发之Application.mk文件详解的更多相关文章

  1. Android.mk文件和Application.mk文件详解

    Android.mk文件和Application.mk文件详解 相同点:都是轻量级 Makefile(Makefile文件定义一些列指令,指定文件编译顺序,类似shell脚本) Application ...

  2. Android NDK开发之Android.mk文件

    Android NDK开发指南---Android.mk文件 博客分类: Android NDK开发指南   Android.mk文件语法详述 介绍: ------------ 这篇文档是用来描述你的 ...

  3. Android.mk文件详解(转)

    源:Android.mk文件详解 从对Makefile一无所知开始,折腾了一个多星期,终于对Android.mk有了一个全面些的了解.了解了标准的Makefile后,发现Android.mk其实是把真 ...

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

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

  5. Android编译系统(Android.mk文件详解)

    [Android-NDK(Native Development Kit)  docs文档] NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成a ...

  6. 零基础学习java------39---------json格式交互,Restful(不懂),静态资源映射,SSM整合(ssm整合思想,application.xml文件详解(声明式事务管理),)

    一. json格式交互(知道) 1 . 回顾ajax基本语法 $.ajax({ url:"", // 请求的后台路径 data:{"":"" ...

  7. iOS开发之UITextField的使用详解

    UITextField的使用详解 UITextField控件是开发中,使用频率比较高的控件了,那么有必要总结一下. 一.UITextField手动编写控件 UITextField  *txtAccou ...

  8. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)

    HttpServletResponse简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 request和re ...

  9. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)

    HttpServletRequest获取请求头信息  (1)获取客户机请求头 String getHeader(String name) Enumeration<String> getHe ...

随机推荐

  1. 【Xamarin开发 Android 系列 13】 应用打包部署

    原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...

  2. android java 堆栈的实现

    android和java不提供堆栈的实现,只提供了list,vector,deque得存储结构,对于以前做面向过程语言的程序员来说,总觉得缺少了些什么: Stack.java文件: public cl ...

  3. SELECT /*!40001 SQL_NO_CACHE */ * INTO OUTFILE '/tmp/ClientActionTrack2015112511.txt' 不堵塞事务

    mysql> insert into ClientActionTrack20151125(clientSn,ip,url,httpMethod,requestParams,requestHead ...

  4. 数据库sql整体整理

    create database 数据库 /* 数据库的服务.数据库文件. */ --修改表添加列 create table biao ( name ) ) ) --往表里增加一列 alter tabl ...

  5. SIFT算法:DoG尺度空间生产

    SIFT算法:DoG尺度空间生产  SIFT算法:KeyPoint找寻.定位与优化 SIFT算法:确定特征点方向  SIFT算法:特征描述子 目录: 1.高斯尺度空间(GSS - Gauss Scal ...

  6. org.hibernate.LazyInitializationException: failed to lazily initialize

    今天搞了一上午,都在解决这个问题:org.hibernate.LazyInitializationException: failed to lazily initialize 原因很简单,是在非法的s ...

  7. Unix环境高级编程

    1.  windows下编辑的程序怎么上传到linux下执行? //Service vsftpd status查看linux ftp服务是否开启: Linuxi ip:192.168.40.128 打 ...

  8. chapter3:Collaborative Filtering ---------A Programmer's Guide to Data Mining

    Implicit rating and item based filtering Explicit rating: 用户明确的对item评分 Implicit rating:反之 明确评分所存在的问题 ...

  9. (转载)WindowsXP上安装和运行神器SqlMap的步骤

    在Windows XP上安装和运行SqlMap的步骤…… 1.首先下载SqlMap 点击下载. https://codeload.github.com/sqlmapproject/sqlmap/leg ...

  10. [LeetCode] Minimum Size Subarray Sum 解题思路

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...