日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C++ > 正文

詳解安卓系統(tǒng)中的Android.mk文件

2020-05-23 14:16:30
字體:
供稿:網(wǎng)友

這篇文章主要介紹了詳解安卓系統(tǒng)中的Android.mk文件,該文件用來告訴系統(tǒng)關(guān)于源代碼的編譯,需要的朋友可以參考下

概述

Android.mk文件用來向編譯系統(tǒng)描述如何編譯你的源代碼。更確切地說,該文件其實(shí)就是一個(gè)小型的Makefile。由于該文件會(huì)被NDK的編譯工具解析多次,因此應(yīng)該盡量減少源碼中聲明變量,因?yàn)檫@些變量可能會(huì)被多次定義從而影響到后面的解析。這個(gè)文件的語法允許把源代碼組織成模塊,每個(gè)模塊屬于下列類型之一:

APK程序:一般的Android程序,編譯打包生成apk文件。

JAVA庫:java類庫,編譯打包生成jar包文件。

C/C++應(yīng)用程序:可執(zhí)行的C/C++應(yīng)用程序。

C/C++靜態(tài)庫:編譯生產(chǎn)C/C++靜態(tài)庫,并打包成.a文件。

C/C++共享庫:編譯生成共享庫,并打包成.so文件,有且只有共享庫才能被安裝/復(fù)制到APK包中。

舉例

這里參考了網(wǎng)上一個(gè)通用的例子,編譯簡單的“Hello World”,來說明一下Android.mk編寫。例如下面的文件:

1. sources/test/hello.c

2. sources/test/Android.mk

其中“hello.c”是一個(gè)JNI共享庫,實(shí)現(xiàn)返回“hello world”字符串的原生方法。因此,Android.mk文件內(nèi)容如下:

 

 
  1. LOCAL_PATH := $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. LOCAL_MODULE := hello  
  4. LOCAL_SRC_FILES := hello.c  
  5. include $(BUILD_SHARED_LIBRARY)  

解釋一下這幾行代碼:

1. LOCAL_PATH := $(call my-dir) : 一個(gè)Android.mk文件首先必須定義好LOCAL_PATH變量,用于在開發(fā)樹中查找源文件。在這個(gè)例子中,宏函數(shù)my-dir由編譯系統(tǒng)提供,用于返回當(dāng)前路徑(即包含Android.mk文件的目錄)。

2. include $(CLEAR_VARS):CLEAR_VARS由編譯i系統(tǒng)提供,指定讓GNU MAKEFILE清除除了LOCAL_PATH變量外的許多LOCAL_***變量(例如:LOCAL_MODULE、LOCAL_SRC_FILES等)。這是非常有必要的,因?yàn)樗械木幾g文件都在同一個(gè)GUN MKAE執(zhí)行環(huán)境中,所有的變量都是全局變量,不清除容易引起解析錯(cuò)誤。

3. LOCAL_MODULE := hello:LOCAL_MODULE變量必須定義,用來標(biāo)識(shí)在Android.mk文件描述的每一個(gè)模塊。而且名稱必須是唯一的,并且不能包含空格。編譯系統(tǒng)會(huì)自動(dòng)產(chǎn)生合適的前綴和后綴,比如一個(gè)被命名為hello的共享庫模塊,將會(huì)生成libhello.so文件。如果把庫命名為libhello,編譯系統(tǒng)將不會(huì)添加任何lib前綴,也會(huì)生成libhello.so文件。

4. LOCAL_SRC_FILES := hello.c:LOCAL_SRC_FILES變量必須包含將要編譯打包進(jìn)模塊中的源代碼文件。

5. include $(BUILD_SHARED_LIBRARY):BUILD_SHARED_LIBRARY是編譯系統(tǒng)提供的變量,指向一個(gè)GNU Makefile腳本(應(yīng)該就是build/core目錄下的shared_library.mk),負(fù)責(zé)收集自從上次調(diào)用include $(CLEAR_VARS)以來,定義在LOCAL_***變量中的所有信息,并且決定編譯什么,如何正確地去做,并根據(jù)其規(guī)則生成靜態(tài)庫。

6. 解釋一下Android.mk里變量定義字符":="。“:=”類似于c中的宏,即在定義處明確展開,完全進(jìn)行文本替換。

模塊描述變量

下面的變量用于向系統(tǒng)描述我們自己的模塊,它應(yīng)該定義在include $(CLEAR_VARS)和include $(BUILD_***)之間。正如前面講述的那樣,$(CLEAR_VARS)是一個(gè)腳本,清除所有這些變量,除非在描述中顯示注明。

1. LOCAL_PATH:這個(gè)變量用于給出當(dāng)前文件的路徑,必須在Android.mk的開頭定義,可以這樣使用:LOCAL_PATH := $(call my-dir),這樣這個(gè)變量不會(huì)被$(CLEAR_VARS)清除,因?yàn)槊總€(gè)Android.mk只需要定義一次(即使一個(gè)文件中定義了多個(gè)模塊的情況下)。

2. LOCAL_SRC_FILES:當(dāng)前模塊包含的所有源代碼文件。

3. LOCAL_MODULE:當(dāng)前模塊的名稱,這個(gè)名稱應(yīng)當(dāng)是唯一的,并且不能包含空格。模塊間的依賴關(guān)系就是通過這個(gè)名稱來引用的。

4. LOCAL_MODULE_CLASS:標(biāo)識(shí)所編譯模塊最后放置的位置。ETC表示放置在/system/etc.目錄下,APPS表示放置在/system/app目錄下,SHARED_LIBRARIES表示放置在/system/lib目錄下。如果具體指定,則編譯的模塊不會(huì)放到編譯系統(tǒng)中,最后會(huì)在out對(duì)應(yīng)product的obj目錄下的對(duì)應(yīng)目錄中。

5. LOCAL_SRC_FILES:這是要編譯的源代碼文件列表。只要列出要傳遞給編譯器的文件即可,編譯系統(tǒng)會(huì)自動(dòng)計(jì)算依賴關(guān)系。源代碼文件路徑都是相相對(duì)于LOCAL_PATH的,因此可以使用相對(duì)路徑進(jìn)行描述。

6. LOCAL_JAVA_LIBRARIES:當(dāng)前模塊依賴的Java共享庫,也叫Java動(dòng)態(tài)庫。例如framework.jar包。

7. LOCAL_STATIC_JAVA_LIBRARIES:當(dāng)前模塊依賴的Java靜態(tài)庫,在Android里,導(dǎo)入的jar包和引用的第三方工程都屬于Java靜態(tài)庫。

8. LOCAL_STATIC_LIBRARIES:當(dāng)前模塊在運(yùn)行時(shí)依賴的靜態(tài)庫的名稱。

9. LOCAL_SHARED_LIBRARIES:當(dāng)前模塊在運(yùn)行時(shí)依賴的動(dòng)態(tài)庫的名稱。

10. LOCAL_C_INCLUDES:c或c++語言需要的頭文件的路徑。

11. LOCAL_CFLAGS:提供給C/C++編譯器的額外編譯參數(shù)。

12. LOCAL_PACKAGE_NAME:當(dāng)前APK應(yīng)用的名稱。

13. LOCAL_CERTIFICATE:簽署當(dāng)前應(yīng)用的證書名稱。

14. LOCAL_MODULE_TAGS:當(dāng)前模塊所包含的標(biāo)簽,一個(gè)模塊可以包含多個(gè)標(biāo)簽。標(biāo)簽的值可能是eng、user、debug、development、optional。其中,optional是默認(rèn)標(biāo)簽。

15. LOCAL_DEX_PREOPT:apk的odex優(yōu)化開關(guān),默認(rèn)是false。

除此之外,Build系統(tǒng)中還定義了一些函數(shù)方便在Android.mk中使用,包括:

1. $(call my-dir):獲取當(dāng)前文件夾的路徑。

2. $(call all-java-files-under, ):獲取指定目錄下的所有java文件。

3. $(call all-c-files-under, ):獲取指定目錄下的所有c文件。

4. $(call all-Iaidl-files-under, ):獲取指定目錄下的所有AIDL文件。

5. $(call all-makefiles-under, ):獲取指定目錄下的所有Make文件。

6. $(call intermediates-dir-for, , , , ):獲取Build輸入的目標(biāo)文件夾路徑。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲国产一区自拍| 国产一区久久| 国产一区三区三区| 精品福利一区二区三区| 日韩.com| 中文字幕五月欧美| 欧美片网站免费| 不卡视频一区二区| 91精品在线国产| 国产日韩av一区二区| 亚洲综合欧美在线| 交视频在线观看国产| 欧美日韩亚洲系列| 亚洲国产综合久久| 欧美日韩亚州综合| 久久69成人| 欧美日韩精品不卡| 欧美激情一区二区在线| 国产成人精品免费网站| 蜜桃久久av一区| 国内激情久久| 欧美三级中文字幕| 国产xxx在线| 中文精品在线观看| 日韩中文字幕二区| 中文字幕精品亚洲| 精品日韩在线观看| 国产 欧美 日韩 在线| 欧美国产综合视频| 91精品国产高清久久久久久| 欧美日韩在线不卡视频| 亚洲影视资源网| 国产福利一区二区| 国产丝袜一区| 中文国产字幕在线观看| 久久99精品久久久久婷婷| 午夜亚洲一区| 国产欧美综合在线观看第十页| 欧美一级免费在线观看| 一级片在线免费看| 欧美不卡一二三| 一区二区三区精品99久久| 中文字幕亚洲在| 中文字幕第一页在线播放| 一区二区三区在线免费| 亚洲欧洲一区二区天堂久久| 欧美性生交大片免费| 亚洲一区日韩在线| 亚洲午夜久久| 一区二区不卡久久精品| 久久99蜜桃精品| 精品在线网站观看| 久久精品久久久久| 一二三区精品视频| 日韩久久精品成人| 视频一区日韩| 国产在线观看精品| 国产激情在线观看| 日韩欧美国产高清| 91av久久久| 国产区在线看| 国内国产区免费视频| 国产视频一二区| 欧美天堂一区二区| 日韩精品首页| 日韩在线观看精品| 日韩三区免费| 91www成人久久| 在线观看免费国产小视频| 亚洲欧洲日产国码av系列天堂| 中文字幕日韩欧美| 亚洲福利精品| 精品不卡一区二区| 在线视频日韩欧美| 99精品免费观看| 在线综合 亚洲 欧美中文字幕| 色综合久久六月婷婷中文字幕| 欧美日韩精品免费| 99热最新网址| 欧美日韩综合视频网址| 欧美日韩亚洲91| 亚洲专区一二三| 日韩欧美中文字幕视频| 中文字幕亚洲区| 黄色片免费在线| 欧美日韩高清在线| 日韩区欧美区| 日韩国产91| 久久久99精品久久| 91精品国产91| 国产欧美中文字幕| 亚洲国产福利| 日韩在线中文字幕| 国产高清精品在线| 国产欧美日韩精品高清二区综合区| 中文亚洲欧美| 91欧美在线| 日韩中文字幕综合| 精品中文在线| 国产一卡2卡3卡免费网站 | 在线视频亚洲| 国产日韩成人精品| 国产欧美亚洲一区| 欧美日韩在线不卡一区| 大香一本蕉伊线亚洲网| 国产亚洲视频中文字幕视频| 91精品国产综合久久久久久 | 亚洲三级欧美| 国产成人精品999| 五月天久久比比资源色| 亚洲三级av| 中文字幕亚洲欧美| 欧美日韩久久不卡| 日韩激情一区| 亚洲黄色一区二区| 黄色在线播放网站| 久久久99精品久久| 91精品免费观看| 999视频精品| 中文 欧美 日韩| 高清在线一区| 亚洲免费中文字幕| 日韩国产专区| 日韩在线精品| 1024国产在线| 国内精品露脸在线视频播放| 精品欧美日韩| 综合图区亚洲白拍在线| 在线观看国产一区| 国产在线不卡一区| 91精品国产91久久久久久青草| 国产中文在线| 国产高清精品二区| 欧美日韩精品欧美日韩精品| 亚洲欧洲综合另类| 欧美va亚洲va日韩∨a综合色| 亚洲国产欧美91| 亚洲欧美小说国产图片| 91日韩中文字幕| 国产免费电影网站入口| 欧美日韩一级视频| 国产三级做爰在线观看| 日韩美女视频一区二区在线观看| 欧美日韩高清在线| 一区视频在线播放| 日韩免费久久| 久久久水蜜桃| 免费精品国产自产拍观看| 欧美专区中文字幕| 欧美日韩在线第一页| 日韩精品免费观看视频| 久久91精品视频| 视频一区日韩| 久久欧美中文字幕| 91精品999| 日韩中文字幕网| av中文在线资源| 一本久久a久久精品亚洲| 精品视频123区在线观看| 在线不卡日本| 日韩欧美中文字幕视频| 日韩视频不卡中文| 午夜一区二区三区| 国产拍揄自揄精品视频麻豆| 欧美日韩在线视频一区| 中文字幕日韩高清| 一本一道综合狠狠老| 九九九精品视频| 国产福利一区在线观看| www.狠狠干| 91精品国产自产在线观看永久∴| 在线精品视频免费播放| 日韩高清不卡在线| 日韩精品三级| 日韩国产欧美亚洲| 中文字幕在线观看亚洲| 午夜国产福利在线观看| 91欧美日韩麻豆精品| 亚洲大胆人体av| 中文在线第一页| 国产最新在线| 免费在线亚洲| 日韩欧美中文字幕在线视频| 91精品国产91久久久久久不卡| 亚洲高清在线观看一区| 日韩美女视频一区二区在线观看| √新版天堂资源在线资源| 91麻豆免费视频网站| 欧美日韩亚洲视频| 日韩 国产 一区| 亚洲第一福利视频在线| 国产黄色一级片| 国产欧美综合在线| 日韩欧美中文字幕在线播放| 91精品婷婷国产综合久久竹菊 | 日本精品免费观看高清观看| 日韩欧美中文免费| a视频在线播放| 欧美日韩中国免费专区在线看| 美女尤物久久精品| 日韩在线视频观看| 欧美日韩成人一区二区| 黄色国产网站在线观看| 国产亚洲一级| 国产丝袜在线播放| 亚洲免费专区| 日韩亚洲欧美中文在线| 久久99久久久欧美国产| 成人禁用看黄a在线| 精品一区二区三区中文字幕在线| 欧美日韩国产高清视频| 国产一区日韩| 国产视频一区三区| 日本不卡高清视频一区| 久艹在线视频| 中文字幕亚洲第一| 在线观看一区日韩| 日韩国产专区| 亚洲开心激情| 国产日韩综合| 亚洲深夜福利| 精品乱人伦一区二区三区| 国产资源中文字幕| 欧美日韩久久久| 91欧美日韩| 欧美日韩一区二区在线视频| 婷婷久久综合九色国产成人| 日本黄色一区二区三区| 中文在线不卡视频| 欧美久久久久久蜜桃| 日韩视频不卡中文| 国产蜜臀在线| 婷婷久久综合九色国产成人| 日韩国产专区| 99在线精品视频免费观看20| 在线视频第一页| 日韩免费高清一区二区| 国产偷国产偷亚洲清高网站| 日韩不卡一区二区| 日韩欧美亚洲区| eeuss一区| 免费国产成人看片在线| 欧美日韩三级视频| 中文字幕亚洲欧美| 免费高清在线一区| 91久久精品国产91久久| www.久久草| 久久久精品网| 欧美日韩国产综合久久| 99国产成 人 综合 亚洲欧美| 精品在线一区二区三区| 在线视频亚洲| 中文字幕乱码在线| 精品一二三区视频| 国产欧美日韩精品高清二区综合区| 日韩欧美在线综合网| 一区二区三区四区五区视频在线观看| 欧美精选午夜久久久乱码6080| 亚洲欧洲三级| 日韩欧美不卡| 中文字幕在线国产| 欧美中文字幕第一页| 亚洲国产福利视频| 亚洲第一视频网站| 一区二区三区在线|网站| 国产 欧美在线| 国产一二三区精品视频| 欧美日韩在线播放一区| 久久中文免费视频| 欧美在线日韩在线| 国产高清一级片| 中文字幕久久av| 一区二区三区免费看视频| 欧美日韩国产片| 中文字幕欧美日韩va免费视频| 99精品视频99| 中文天堂资源在线| 精品国产1区2区3区| 亚洲图片小说综合| 欧美熟妇乱码在线一区| 欧美日韩久久不卡| 日韩一级二级三级精品视频| www.老鸭窝.com| 色综合天天性综合| 国产九九在线| 婷婷久久综合九色国产成人| 国产日韩精品久久久| 香蕉视频亚洲一级| 日韩欧美亚洲区| 欧美日韩在线播放一区| 国产激情三区| 中文字幕99| www.中文字幕在线观看| 中文字幕伊人| 国产日韩免费| 日韩精品―中文字幕| 国产亚洲二区| 国产丝袜一区二区| 亚洲三级中文字幕| 亚洲国产欧美日韩精品| 欧美日韩在线观看首页| 91精品国产手机| 久久夜色精品国产欧美乱极品| 欧美中文字幕在线观看视频| 中文字幕在线精品| 精品视频资源站| 亚洲一区在线观看视频| 午夜av一区二区| 色综合婷婷久久| 精品成人久久久| 国产丝袜欧美中文另类| 中文字幕线观看| 精品视频三区| 亚洲人成欧美中文字幕| 亚洲成av人片一区二区密柚| 国产午夜在线观看| 久久91精品国产91久久小草| 三级网站免费观看| 国产视频一区三区| 五月综合激情日本mⅴ| 二区中文字幕| 中文字幕欧美亚洲| 亚洲免费福利视频| 欧美1234区| 日韩精品在线观看视频| av免费在线播放| 在线欧美日韩国产| 快she精品国产999| 日韩a一区二区| 最新日韩中文字幕| 91吃瓜在线观看| 国产69精品久久app免费版| 国产资源在线观看| 91精品久久久久久久久久| 欧美日韩在线观看首页| 亚洲综合在线小说| 欧美不卡123| 欧美一级日韩不卡播放免费| 日韩欧美三级在线| 黄色片免费在线| 中文不卡在线| 中文字幕日韩视频| 亚洲福利在线看| 国产免费一级| 国产小视频免费在线观看| 国产三级视频网站| 日韩在线视频观看正片免费网站| 中文字幕在线官网| 亚洲欧美伊人| av中文在线播放| 欧美一级免费看| 日本一欧美一欧美一亚洲视频| 日韩三级高清在线| 99久热re在线精彩视频| 亚洲成av人片一区二区密柚| 精品在线一区二区三区| 国产免费一级| 免费在线亚洲| 最近免费中文字幕在线第一页| 中文字幕欧美亚洲| 欧美亚洲专区| 日韩精品在线视频观看| www.中文字幕在线| a在线观看免费视频| 欧美黄页在线免费观看| 国产黄在线观看免费观看不卡| 日韩中文字幕在线视频观看| 在线国产99| 一级片免费网站| 免费国产成人看片在线| 日本亚洲视频在线| 免费日韩精品中文字幕视频在线| 日韩精品一二三四区| 日韩三区免费| 日韩激情一区| 久久婷婷亚洲| 成人a在线观看| 国产中文在线视频| 午夜一区二区三区免费| 九色蝌蚪视频在线| 激情综合色综合久久| 国产一区 二区 三区一级| a视频免费看| 国产一级视频| 日韩区欧美区| 国产成人精品免费久久久久| 精品国产1区二区| 国产视频一区三区| 亚洲视频电影在线| 91久久精品国产91性色69| 日韩视频中文| 日韩欧美国产三级| 欧美.日韩.国产.一区.二区| 99热最新网址| 91精品久久久久久蜜臀| 日韩精品a在线观看91| 国产永久在线观看| 精品一性一色一乱农村| 精品久久久视频| 精品在线观看一区|