美文网首页
Android mk简介(三)

Android mk简介(三)

作者: xingzjx | 来源:发表于2019-01-08 22:54 被阅读5次

    一、Android.mk简介

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

    image

    二、m命令

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

    • m: Makes from the top of the tree.

    • mm: Builds all of the modules in the current directory.

    • mmm: Builds all of the modules in the supplied directories.

    要想使用这些命令,首先需要在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系统使用的文件格式。

    相关文章

      网友评论

          本文标题:Android mk简介(三)

          本文链接:https://www.haomeiwen.com/subject/mhyirqtx.html