当前位置: 移动互联网学院 > Android开发 > Android.mk语法分析
Android.mk语法分析 时间:2017-08-17     来源:移动互联网学院

由于Android系统是一个特别庞大的系统,因此Google在编写代码时考虑到了编译大量文件时会出现的情况,因此设计了一个Android系统中使用的特定的源码编译手段。当然还是使用的基于Perl语言的Make工程编译方式;而使用模块化编程思路形成生成不同结果的编译方法。因此在Android编译系统对开发人员来说,本质就是对全局变量的定义,而变量定义的内容就是使用的编译方法以及对应的编译文件。而其中出现多的文件就是Android.mk文件。

而Android.mk的写法在Android源码有详细的介绍。在androidL/nd k/docs/text/ANDROID-MK.text中介绍了该文件的简介及书写方法。

简介如下:

This document describes the syntax of `Android.mk` build filewritten to describe your C and C++ source files to the AndroidNDK. To understand what follows, it is assumed that you haveread the [OVERVIEW](OVERVIEW.html) file that explains their role andusage.     

表示当前文档是描述Android.mk文件的编写方法,该文件是将C/C++源文件描述给AndroidNDK。  

适用范围:

    - A static library.

    - A shared library.

- A standalone executable.   

当然实际适用范围远超过当前记录的静态、共享库以及可执行文件。

写法示例:

        LOCAL_PATH := $(call my-dir)

调用方法对本地路径赋值

    include $(CLEAR_VARS)

清楚原有全局变量

        LOCAL_MODULE    := hello-jni

设置后生成模块名称

        LOCAL_SRC_FILES := hello-jni.c

编译使用的源文件

        include $(BUILD_SHARED_LIBRARY)

使用共享库的编译方法生成共享库

当前是将一个c源文件编译生成一个共享库的编译方法。

该文件主要是源码中描述各部分元源码编译的方法,当然一个源码级别的编译方法没有那么简单,但是基本结构都是当前示例内容,需要使用时后续再查询文档补充即可。