由于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源文件编译生成一个共享库的编译方法。
该文件主要是源码中描述各部分元源码编译的方法,当然一个源码级别的编译方法没有那么简单,但是基本结构都是当前示例内容,需要使用时后续再查询文档补充即可。
热点新闻