Android.mk具体解释
概述
- APK程序:一般的Android程序。编译打包生成apk文件。
- JAVA库:java类库。编译打包生成jar包文件。
- C\C++应用程序:可运行的C/C++应用程序。
- C\C++静态库:编译生产C/C++静态库。并打包成.a文件。
- C\C++共享库:编译生成共享库。并打包成.so文件,有且仅仅有共享库才干被安装/拷贝到APK包中。
举例
因此,Android.mk文件内容例如以下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
解释一下这几行代码:
在这个样例中,宏函数my-dir由编译系统提供,用于返回当前路径(即包括Android.mk文件的文件夹)。
这是很有必要的。由于全部的编译文件都在同一个GUN MKAE运行环境中,全部的变量都是全局变量。不清除easy引起解析错误。
模块描写叙述变量
2. LOCAL_SRC_FILES:当前模块包括的全部源码文件。
3. LOCAL_MODULE:当前模块的名称,这个名称应当是唯一的。而且不能包括空格。模块间的依赖关系就是通过这个名称来引用的。
ETC表示放置在/system/etc.文件夹下。APPS表示放置在/system/app文件夹下,SHARED_LIBRARIES表示放置在/system/lib文件夹下。假设详细指定,则编译的模块不会放到编译系统中。最后会在out相应product的obj文件夹下的相应文件夹中。
比如framework.jar包。
7. LOCAL_STATIC_JAVA_LIBRARIES:当前模块依赖的Java静态库,在Android里。导入的jar包和引用的第三方project都属于Java静态库。
9. LOCAL_SHARED_LIBRARIES:当前模块在执行时依赖的动态库的名称。
10. LOCAL_C_INCLUDES:c或c++语言须要的头文件的路径。
13. LOCAL_CERTIFICATE:签署当前应用的证书名称。
14. LOCAL_MODULE_TAGS:当前模块所包括的标签,一个模块能够包括多个标签。标签的值可能是eng、user、debug、development、optional。当中,optional是默认标签。
15. LOCAL_DEX_PREOPT:apk的odex优化开关,默认是false。
除此之外。Build系统中还定义了一些函数方便在Android.mk中使用。包含:
1. $(call my-dir):获取当前目录的路径。
2. $(call all-java-files-under, <src>):获取指定文件夹下的全部java文件。
3. $(call all-c-files-under, <src>):获取指定文件夹下的全部c文件。
4. $(call all-Iaidl-files-under, <src>):获取指定文件夹下的全部AIDL文件。
5. $(call all-makefiles-under, <folder>):获取指定文件夹下的全部Make文件。
6. $(call intermediates-dir-for, <class>, <app_name>, <host or target>, <common?>):获取Build输入的目标目录路径。
Android.mk具体解释的更多相关文章
- Android.mk参数解释
-------------------- 下面对Android.mk 中经常出现的变量进行讲解 -------------------- 这些变量,你会经常在Android.mk文件中见到,下面以字表 ...
- Android.mk文件官方使用说明
本页介绍了 ndk-build 所使用的 Android.mk 编译文件的语法. 概览 Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库.它实际上是编译系 ...
- Android.mk 基本应用
如果是在android源码里面编译我们自己的应用,就需要这个android.mk文件,这个文件就告诉android系统应用如何来编译这个应用以及这个应用它所依赖哪些文件等等信息.我对android.m ...
- Android.mk的用法和基础【转】
一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...
- Android.mk 常用宏和变量
android ndk开发有一个重要的文件 Android.mk,他虽然重要,但是对它进行深入介绍的文档却比较的少,这里将对Android.mk中常用的宏和变量进行说明: 由于这一部分的内容多,资料零 ...
- Android.mk文件语法规范 原文
序言:------------- 此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件.为了明白下面的内容,你必须已经阅读 ...
- Android.mk
Introduction: Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法.在阅读下面的内容之前,假定你已经阅读了docs/OVER ...
- Android NDK开发之Android.mk文件
Android NDK开发指南---Android.mk文件 博客分类: Android NDK开发指南 Android.mk文件语法详述 介绍: ------------ 这篇文档是用来描述你的 ...
- 【整理修订】Android.mk详解
Android.mk详解 1. Android.mk 的应用范围 Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 一个Android.mk文件可以编 ...
随机推荐
- [Cycle.js] Generalizing run() function for more types of sources
Our application was able to produce write effects, through sinks, and was able to receive read effec ...
- linux高级技巧:heartbeat+lvs(一)
1.heartbeat一个简短的引论: Heartbeat 项目是 Linux-HA project的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组 ...
- C++11 多线程 基础
C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用 ...
- javasscript学习笔记 之 数组学习二 数组的所有方法
1.push() 和 pop() 栈的方法 后进先出 push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度. push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返 ...
- html img Src base64 图片显示
http://blog.csdn.net/knxw0001/article/details/10983605 大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: ...
- CSS基础知识笔记(三)
继承 继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为s ...
- WebAPI中Message Handler与Filter的区别
两者最主要的区别是关注点不同.Message Handlers应用到HTTP Request,Filters仅应用到controller/action上. 如果某种行为应用到大多数的Request时, ...
- sql获取第n条数据
select * from (select top n * from students) aa where not exists(select * from (select top n-1 * fro ...
- 技术路线 vs 技术管理路线
最近因为要给刚毕业的学生做一次演讲,所以就职业发展这类话题先以写博客的形式做一些思考,希望届时能给同学们带来质量更高的内容.我在<驾驭你的"职场布朗运动">一文中谈了2 ...
- myeclipse10.7破解成功 但 无法打war包 securecrt alert:integrity check error 解决方案
本次对于myeclipse10破解后,导出war包时报“SECURITY ALERT: INTEGERITY CHECK ERROR”进行了破解 只要执行完第一步的破解后,将com.genuitec. ...