Android mk简介(三)

2019-01-08  本文已影响5人  xingzjx

一、Android.mk简介

Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库、jar包以及apk等等。

image

二、m命令

android源码目录下的build/envsetup.sh文件,描述编译的命令

要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.sh 脚本设置环境

m:编译所有的模块

mm:编译当前目录下的模块,当前目录下要有Android.mk文件

mmm:编译指定路径下的模块,指定路径下要有Android.mk文件

下面举个例子说明,假设我要编译android下的\hardware\libhardware_legacy\power模块,当前目录为源码根目录,方法如下:

1、. build/envsetup.sh

2、mmm hardware/libhardware_legacy/power/

或者 :

1、. build/envsetup.sh

2、cd hardware/libhardware_legacy/power/

3、mm

以上三个命令都可以用-B选项来重新编译所有目标文件。

三、mk文件分析

分析一个最简单的Android.mk文件

LOCAL_PATH := $(call my-dir):

定义了当前模块的相对路径

include $(CLEAR_VARS)

清空当前环境变量

LOCAL_MODULE:= test

编译生成的目标名称

LOCAL_SRC_FILES := test.c

编译该模块需要的源文件

include $(BUILD_EXECUTABLE)

编译所生成的目标文件格式

四、静态和动态库

1、静态jar包:include $(BUILD_STATIC_JAVA_LIBRARY)

使用.class文件打包而成的JAR文件,可以在任何java虚拟机运行

2、动态jar包:include $(BUILD_JAVA_LIBRARY)

在静态jar包基础之上使用.dex打包而成的jar文件,.dex是android系统使用的文件格式。

上一篇 下一篇

猜你喜欢

热点阅读