APP的Android.mk文件分析

转载至:http://blog.csdn.net/bmw7bmw7/article/details/45482599

APP的Android.mk文件分析

2015-05-04 16:22 52人阅读 评论(0) 收藏 举报

android应用源码

[plain] view plaincopyprint?

1.  # 调用宏my-dir,这个宏返回当前Android.mk文件所在的路径

2.  LOCAL_PATH:= $(call my-dir)

3.

4.  # 包含CLEAR_VARS变量指向的mk文件build/core/clear_vars.mk,它主要用来清除编译时依赖的编译变量

5.  include $(CLEAR_VARS)

6.

7.  # 指定当前目标的TAG标签,关于其作用见前面Android编译系统章节

8.  LOCAL_MODULE_TAGS := user

9.

10. # 当前mk文件的编译目标模块

11. LOCAL_PACKAGE_NAME := LedDemo

12.

13. # 编译目标时依赖的源码,它调用了一个宏all-java-files-under,该宏在build/core/definitions.mk中定义

14. # 表示在当前目录下查找所有的java文件,将查找到的java文件返回

15. LOCAL_SRC_FILES := $(callall-java-files-under, src)

16.

17. # 在编译Android应用程序时都要指定API level,也就是当前程序的编译平台版本

18. # 这里表示使用当前源码的版本

19. LOCAL_SDK_VERSION := current

20.

21. # 最重要的就是这句代码,它包含了一个文件build/core/package.mk,根据前面设置的编译变量,编译生成Android包文件,即:apk文件

22. include $(BUILD_PACKAGE)

# 调用宏my-dir,这个宏返回当前Android.mk文件所在的路径

LOCAL_PATH:= $(call my-dir)

# 包含CLEAR_VARS变量指向的mk文件build/core/clear_vars.mk,它主要用来清除编译时依赖的编译变量

include $(CLEAR_VARS)

# 指定当前目标的TAG标签,关于其作用见前面Android编译系统章节

LOCAL_MODULE_TAGS := user

# 当前mk文件的编译目标模块

LOCAL_PACKAGE_NAME := LedDemo

# 编译目标时依赖的源码,它调用了一个宏all-java-files-under,该宏在build/core/definitions.mk中定义

# 表示在当前目录下查找所有的java文件,将查找到的java文件返回

LOCAL_SRC_FILES := $(callall-java-files-under, src)

# 在编译Android应用程序时都要指定API level,也就是当前程序的编译平台版本

# 这里表示使用当前源码的版本

LOCAL_SDK_VERSION := current

# 最重要的就是这句代码,它包含了一个文件build/core/package.mk,根据前面设置的编译变量,编译生成Android包文件,即:apk文件

include $(BUILD_PACKAGE)

上述代码中都加了注释,基本上每一个编译目标都有类似上述的编译变量的声明:

LOCAL_MODULE_TAGS

LOCAL_PACKAGE_NAME

LOCAL_SRC_FILES

由于所有的Android.mk最终被编译系统包含,所以在编译每个目标模块时,都要通过LOCAL_PATH:= $(call my-dir)指定当前目标的目录,然后调用include $(CLEAR_VARS)先清除编译系统依赖的重要的编译变量,再生成新的编译变量。

时间: 2024-10-19 23:08:46

APP的Android.mk文件分析的相关文章

Android JNI的Android.mk文件语法详解

Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次. 所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义. Android.mk文件语法允许我们将Source打包成一个"modules". modules可以是: 静态库 动态库. 只有动态库可以被 install/copy到应用程序包(A

Android.mk文件简单分析

Android.mk文件简单分析 一个Android.mk文件用来向编译系统描述需要编译的源代码.具体来说:该文件是GNUMakefile的一小部分,会被编译系统解析一次或多次.可以在每一个Android.mk中定义一个或多个模块,也可以在几个模块中使用同一个源代码文件. 每个模块属下列类型之一: 1)APK程序,一般的Android程序,编译打包生成apk文件 2)JAVA库,java类库,编译打包生成jar文件 3)  C\C++应用程序,可执行的C\C++应用程序 4)C\C++静态库,编

Android.mk简单分析

LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := Settings LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) # Use the folloing include to m

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

基于Android2.3.5系统:Android.mk文件解析

*************************************************************************************************************************** 作者:EasyWave                                                                                                               时间:2

Android.mk文件语法规范及使用模板

Android.mk文件语法规范 根据eoeandroid上的的连载,进行一些更新.修改和加亮. 今天翻译ANDROID-MK.TXT文件(英文原文件在/development/Ndk/Docs/android-mk.txt) Android.mk文件语法规范 Introduction: Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法.在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色

02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译

?? 1  编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; public class DataProvider { /** * 计算x和y的加法  apktools * * @param x * @param y * @return */ public native int add(int x,int y); /** * 给字符串后面拼接字符串   加密运算

Android.mk文件详解

Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的.因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义. 一个Android.mk文件可以编译多个模块,每个模块属下列类型之一: 1)APK程序 一般的Android程序,编译打包生成apk文件 2)JAVA库 java类库,编译打包生成jar文件 3)C\C++应用程序 可

quick cocos 或者 Cocos2dx 项目下的Android.mk文件的学习

android.mk文件的作用:编译需要的cpp文件,生成.so动态库,供android端调用. 先上一个android.mk文件: 第一次创建项目,在Android平台编译时,都需要通过android.mk文件编译整个cocos2dx的库(第一次编译我们需要等待很长的时间.....). 首先知道$(call import-module,dir_name)的作用,然后顺着lib/proj.android目录继续找对应目录下的android.mk文件 类似于递归一样,把所有目录下的android.