Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android.mk文件的語法解析

Android.mk文件的語法解析

編輯:關於Android編程

這是RDA8810(Android4.2.2)的Browser模塊的Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_JAVA_LIBRARIES := \

android-common \

guava \

android-support-v13 \

android-support-v4 \

LOCAL_SRC_FILES := \

$(call all-java-files-under,src) \

src/com/android/browser/EventLogTags.logtags

LOCAL_PACKAGE_NAME := Browser

LOCAL_PROGUARD_FLAG_FILES := proguard.flags

LOCAL_EMMA_COVERAGE_FILTER := *,-com.android.common.*

# We need the sound recorder for the Media Capture API.

LOCAL_REQUIRED_MODULES := SoundRecorder

include $(BUILD_PACKAGE)

# additionally, build tests in sub-folders in a separate .apk

include $(call all-makefiles-under,$(LOCAL_PATH))


第一行、LOCAL_PATH:

這個變量用於給出當前文件的路徑,你必須在Android.mk文件的開頭定義,這個變量不會被$(CLEAR_VARS)清除,因此每個Android.mk只需要定義一次(即使你在一個文件中定義了幾個模塊的情況下);

第二行、include $(CLEAR_VARS)

CLEAR_VARS由編譯系統提供,指定讓GNU_MAKEFILE為你清除許多LOCAL_XXX變量,除LOCAL_PATH外,這介必要的,因為所有的編譯控制都在同一個GNU MAKE執行環境中,所有變量都是全局的;

第三行、LOCAL_MODULE_TAGS

這個變量有四個選項可以選擇:

1、user:指該模塊只在user版本下才編譯;

2、eng:指該模塊只在eng版本下才編譯;

3、tests:指該模塊只在tests版本下才編譯;

4、optional:指該模塊在所有版本下都編譯。

第四行、LOCAL_STATIC_JAVA_LIBRARIES

取 .jar庫的別名,可以隨便取的

第五行、LOCAL_SRC_FILES

列舉所有需要編譯的源文件,宏all-java-files-under定義在build/core/definitions.mk中

第六行、LOCAL_PACKAGE_NAME

表示這個包的名字,一般和文件夾的名字一致

第七行、LOCAL_PROGUARD_FLAG_FILES

混淆代碼相關的配置

第八行、LOCAL_EMMA_COVERAGE_FILTER

這個暫時沒能理解,如果有理解了的幫忙解答一下

第九行、LOCAL_REQUIRED_MODULES

配置錄音方面的接口

第十行、include $(BUILD_PACKAGE)

表示當前JAVA代碼build成APK

第十一行、include $(call all-makefiles-under,$(LOCAL_PATH))

表示需要build該目錄下的子目錄的文件,這樣編譯系統就會在當前目錄下的子目錄尋找Android.mk來編譯so等其它程序

OVER

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved