application.mk简介:

0. 基础知识介绍:
Application.mk用来描述应用程序需要哪些modules。Application.mk通常放在:$PROJECT/jni/Application.mk。

2. Application.mk变量:
Application.mk是GNU Makefile的一个小片段。它可以定义以下变量。

APP_PROJECT_PATH:以绝对路径指向Project root目录。
APP_MODULES:可选项,如果没有定义,则NDK编译所有Android.mk中的modules.如果定义了,则只编译Android.mk中被APP_MODULES指定的模块以及他们所依赖的模块。
APP_OPTIM:可选项。设置为:'release' or 'debug'。ndk build system根据此项决定优化等级。

release是缺省模式,会使用高等级优化。 debug则使用低等级优化项目。但请注意:如果AndroidManifest.xml中设置了android:debuggable="true"。则缺省设置为debug.
APP_CFLAGS: C/C++ CFLAGS.这个CFLAGS将取代Android.mk中module中指定的。
APP_CPPFLAGS:只对C++代码有效的CPPFLAGS
APP_BUILD_SCRIPT:通常情况下,NDK Build System会查找Android.mk从$(APP_PROJECT_PATH)/jni/即:$(APP_PROJECT_PATH)/jni/Android.mk如果想改变这个行为,则修改:APP_BUILD_SCRIPT.
APP_ABI:缺省情况下,NDK build system会产生'armeabi' ABI。它为ARMv5TE指令集,并使用软浮点。可以通过修改这个变量来改变。

Sam机的armeabi可以在ARMv5TE和ARMv7-a 上都可以使用。

如果想使用硬浮点。FPU。
APP_ABI := armeabi-v7a

或者两个都支持:APP_ABI := armeabi armeabi-v7a
APP_STL:缺省情况下,NDK Build System 提供最小的C++ 支持(/system/lib/libstdc++.so).

可以修改如下:
APP_STL := stlport_static --> static STLport library APP_STL := stlport_shared --> shared STLport library APP_STL := system --> default C++ runtime library
APP_CXXFLAGSAPP_CFLAGS的别名。 

APP_PLATFORM:这个条目很重要,因为Sam经常要编译一些NDK下可执行程序,但发现Include却直接指向Android-3下面。-I/opt/Android-NDK/android-ndk-r8b/platforms/android-3/arch-arm/usr/include

觉得很奇怪。怎么都修改不过来,一直觉得是Android ndk-build的Bug。 后来无意中发现使用这个选项,就可以正常修改。APP_PLATFORM = android-8
注意:此处NDK版本为NDK R7C.(不同NDK版本,ndk-build所产生的Makefile并不完全相同)

转载于:https://www.cnblogs.com/songtzu/archive/2013/04/01/2993810.html

android.mk简单介绍相关推荐

  1. Android 系统简单介绍

    Android 系统简单介绍 2011年11月20日 写这篇文章的目的是为了给那些刚刚入手安 卓手机的新手们一些参考,希望他们能快速的上手 [第一期]ANDROID基础知识1~20 [第二期]继续泡! ...

  2. android treble,Android Treble 简单介绍.ppt

    Android Treble 简单介绍.ppt Android Treble Brief Introduction Jacky Cai – 2017/09/27 Why Treble ? The An ...

  3. Android.mk 用法介绍

    一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...

  4. Android——DDMS简单介绍

    DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务. 它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运 ...

  5. android.mk官网介绍,转载:Android.mk语法介绍

    Android.mk内的变量定义 3.1 LOCAL_PATH 一个Android.mk file首先必须定义好LOCAL_PATH变量.它用于在开发树中查找源文件.例如: 1.LOCAL_PATH: ...

  6. Android NDK 简单介绍、工具安装、环境配置

    NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一 ...

  7. 2021-09-27 Android AEE简单介绍以及如何抓第三方app 的exception

    一.AEE介绍        AEE (Android Exception Engine)是安卓的一个异常捕获和调试信息生成机制. 手机发生错误(异常重启/卡死)时生成db文件(一种被加密过的二进制文 ...

  8. Android的简单介绍

    定义 Android早期由"Android之父"之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信.手机检索.定位等 ...

  9. Android平台简单介绍

    1.  起源和发展 Android是由Android公司的创始人Andy Rubin创造的,而后被Google收购,Google的目标是将Android打造成一个标准化.开放式的移动操作系统平台. A ...

最新文章

  1. linux服务器垃圾箱,如何将Linux rm命令删除的文件放入垃圾箱
  2. 剑指Offer #11 二进制中1的个数(想不到的骚操作)
  3. android连接耳机时音量控制,android – 扬声器音量(闹钟)在插入耳机时会降低
  4. 使用cardme读写VCard文件,实现批量导入导出电话簿
  5. 织梦CMS AJAX分页,可自定义typeid,调取任意内容
  6. SQL2K数据库开发二十一之索引操作创建索引
  7. MATLAB一维数组的创建与元素提取
  8. 百度DuerOS与高通合推手机语音交互解决方案,谁会欢喜谁要愁?
  9. WPF:Documents文档--Annomation批注(1)
  10. Android - 获取字符串长度的宽度
  11. UI设计教程学习分享:APP布局
  12. python手写计算器
  13. 新书上市|这套北大数学系青睐的数学科普书,又添新成员
  14. Zigbee和wifi信道设置避免同频干扰
  15. Linux查找大文件命令
  16. 数字金额转换为大写金额python_python 实现金额数字转成大写
  17. Mac 下读写NTFS文件
  18. json模块的转义dump 和反转义 loap
  19. 六级阅读翻译——2017.11.13
  20. FIL产出持续下降,FIL还会涨吗,还有参与的价值吗?

热门文章

  1. Java继承_30道最常问的Java基础面试题
  2. android自定义图片加载,Android自定义ProgressDialog加载图片
  3. Zookeeper之java api详解
  4. PostgreSQL 12系统表(1)pg_class
  5. manual setting mysql_mysql 5.5配置
  6. android 开发问题----avd按钮无法按
  7. java list top_Java程序员最常犯的错误盘点之Top 10
  8. 平扫加重建什么意思_在这款“奸商模拟器”里,帮助战场老兵重建家园吧!
  9. springBoot跨域解决
  10. 计算机维修法宝,计算机的三大法宝