日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Android.mk文件语法规范

發布時間:2023/11/27 生活经验 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android.mk文件语法规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序言:

-------------

此文檔旨在描述Android.mk文件的語法,Android.mk文件為Android NDK(原生開發)描述了你C/C++源文件。
為了明白下面的內容,你必須已經閱讀了docs/OVERVIEW.TXT的內容,它解釋了Android.mk文件扮演的角色
和用途。

概述:
---------


寫一個Android.mk文件是為了向生成系統描述你的源代碼。更明確的說:

- 這個文件實際上是GNU Make文件的一小片段,它會被生成系統解析一次或多次。
因此,你應該在Android.mk里盡量少地聲明變量,而不要誤以為在解析的過程中
沒有任何東西被定義。

- 該文件的語法的明的人為了讓你能將你的源代碼組織為組件(module).一個組件指的是下面的一項:
???? - 一個靜態庫(static library)
???? - 一個共享庫(shared library)

???
只有一個動態庫會被安裝/拷貝至你的application package中。但是靜態庫可用來
生成動態庫。

你可以在每個Android.mk文件定義一個或多個組件,并且我可以在幾個組件中使用
相同的源文件。


- 生成系統為你處理了一些瑣碎之事。比如,在你的Android.mk里,你不須要列出頭文件或
列出生成的文件之間的明確認依賴關系。NDK生成系統會為你自動生成。

這也意味著,當更新至新的NDK版本時,你能得到新的工具鏈/平臺支持(toolchain/platform support)
的好處,而無須修改你的android.mk文件。

需要注意的是,此語法與完全開源的Android平臺的Android.mk文件的語法非常相似,但使用它們的
生成系統的實現不同,這個為了讓開發者能更容易的復用“外部”庫的源代碼。


簡單例子:
---------------

?

在詳細描述語法之前,讓我們探究一個簡單的“hello JNI”例子,它的文件位于:
??? apps/hello-jni/projec

這里,我們能看到:

- 放有Java源文件的src文件夾。

- 放有本地源文件,即jni/hello-jni.c的jni文件夾。

??? 這個源文件實現一個簡單的共享庫。這個共享庫有一個本地方法(native method),它將一個字符串
??? 返回給虛擬機應用(著:即Java層應用程序)

- jni/Anroid.mk文件為NDK生成系統描述了這個共享庫。它的內容為:

?? ---------- cut here ------------------
?? LOCAL_PATH := $(call my-dir)

?? include $(CLEAR_VARS)

?? LOCAL_MODULE??? := hello-jni
?? LOCAL_SRC_FILES := hello-jni.c

?? include $(BUILD_SHARED_LIBRARY)
?? ---------- cut here ------------------

現在,讓我們逐行解釋:

LOCAL_PATH := $(call my-dir)

每個Android.mk文件都必須以定義LOCAL_PATH變量開始。其目的是為了定位源文件的位置。在這個例子,
生成系統提供的宏函數(macro function)‘my-dir'用來返回當前路徑(即放有Android.mk文件的文件夾)

include $(CLEAR_VARS)

CLEAR_VARS變量是生成系統提供的,它指向一個特殊的GNU Makefile.這個Makefile將會為你自動清除
許多名為LOCAL_XXX的變量(比如:LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES,等),
但LOCAL_PATH是例外,它不會被清除。這些變量的清除是必須的,因為所有的控制文件是在單一的GNU make
執行環境中解析的,在這里所有的變量都是全局的。

LOCAL_MODULE := hello-jni

為了在你的Android.mk文件標識每個組件,必須定義LOCAL_MODULE變量。這個名字必須要唯一的并且不能
包含空格。注意:生成系統會自動地為相應生成的文件加入前綴或后綴。換言之,一個名叫foo的共享庫組件
會生成'libfoo.so'.

重要注意事項:
如果你把組件取名為‘libfoo',生成系統將不會加上‘lib'前綴,還是
生成libfoo.so。這是為了支持源于Android平臺源代碼的Android.mk文件。

LOCAL_SRC_FILES := hello-jni.c

LOCAL_SRC_FILES變量必須包含一系列將被構建和組合成組件的C/C++源文件。注意:你
不需要列出頭文件或include文件,因為生成系統會為你自動計算出源文件的依賴關系。
僅僅列出那些將直接傳給編譯器的源文件足矣。


注意,默認的C++源文件的擴展名是‘.cpp'。但你可以通過定義LOCAL_DEFAULT_EXTENSION
來指定一個擴展名。別忘了擴展名開始的那一點(比如,‘.cxx’,能行,但‘cxx'不行)。

include $(BUILD_SHARED_LIBRARY)

生成系統提供的BUIL_SHARED_LIBRARY變量指向一個GNU Makefile腳本,這個腳本主管
收集在最近的一次#include $(CLEAR_VARS)(著:即清除'本地'變量)之后你所定義的
LOCAL_XXX變量的信息,并決定生成什么,如何準確的生成。BUILD_STATIC_LIBRARY可
生成一個靜態庫。

There are more complex examples under apps/, with commented
Android.mk files that you can look at.
在apps文件下有一些復雜點的例子,它帶有注釋的Android.mk文件以供你學習。

?

參考:
-----------

以下列出你在Android.mk里應該依賴或定義的變量。你能定義其它變量,但下列的變量名是
由NDK生成系統保留的。

- 以LOCAL_ 開頭的變量名 (比如,LOCAL_MODULE)
- 以PRIVATE_ ,NDK_ 或 APP_ (內部使用)開頭的量名
_ 小寫字母變量名(內部使用,如 my-dir).


如果你需要在Android.mk里定義方便自己使用的變量名,我們建議使用MY_ 前綴,
如下面一個簡單例子:

?? ---------- cut here ------------------
??? MY_SOURCES := foo.c
??? ifneq ($(MY_CONFIG_BAR),)
????? MY_SOURCES += bar.c
??? endif

??? LOCAL_SRC_FILES += $(MY_SOURCES)
?? ---------- cut here ------------------
??

So, here we go:


NDK提供的變量:
- - - - - - - - - - - - - -

下列的這些GNU Make變量是在你的Android.mk被解析之前,就被生成系統事先定義
的了.注意,在某些情況下,NDK可能會多次解析你的Android.mk,每次對其中一些變量的
定義不同。

CLEAR_VARS
??? 指向一個生成腳本,這個腳本取消幾乎所有LOCAL_XXX變量的定義(譯者注:除了LOCAL_PATH)。
??? 在開始描述一個新的組件之前,你必須include這個腳本,e.g.:
????
????? include $(CLEAR_VARS)
????
????
BUILD_SHARED_LIBRARY
?? 指向一個生成腳本,這個腳本通過LOCAL_XXX變量收集關于組件的信息,并決定如何
?? 根據你列出來的源文件生成目標分享庫。注意,在include這個腳本文件之前你必須
?? 至少已經定義了LOCAL_MODULE和LOCAL_SRC_FILES。用法舉例:
???? include $(BUILD_SHARED_LIBRARY)
?????
?? 注意,這會生成一個名為 lib$(LOCAL_MODULE).so的文件。(譯者注:$(BUILD_SHARED_MODULE)為文件名)

????
BUILD_STATIC_LIBRARY
??? 與BUILD_SHARED_LIBRARY類似,但用來生成目標靜態庫。靜態庫不會被拷貝至你的
??? project/packages文件夾下,但可用來生成分享庫(參考 LOCAL_STATIC_LIBRARIES
??? 和LOCAL_STATIC_WHOLE_LIBRARIES,將在后面描述)
??? 用法示例:

??? ?? include $(BUILD_STATIC_LIBRARY)

??? 注意,這會生成一個方件名叫lib$(LOCAL_MODULE).a
???

TARGET_ARCH
?? 目標CPU的名字,在完整的Android開源代碼的生成中指定。對于基于ARM兼容的CPU,
?? 它被指定為'arm',與CPU架構的修訂無關。
????
???
TARGET_PLATFORM
?? 當解析該Android.mk文件時用它來指定Andoid目標平臺的名稱。譬如,'android-3'與
?? Android 1.5系統鏡像相對應。若要了解所有的平臺名稱及其相應的Android系統鏡像,
?? 請閱讀docs/STABLE-APIS.TXT

????
TARGET_ARCH_ABI
??? 當解析該Android.mk時,CPU+ABI的名稱。目前只有一個值。
??? (譯者注:ABI,Application Binary Interface,二進制應用程序接口)

?????? armeabi??? For Armv5TE
???????
?????? armeabi??? 指定Armv5TE
??????????
??? 注意:到NDK 1.6_r1為止,僅簡單的定義這個變量為'arm'。但為了更好地配合
??? Android平臺的內部使用,該值已重定義。
????
??? 關于ABI與相應的兼容問題更多詳情,請閱讀docs/CPU-ARCH-ABIS.TXT

??? 未來的NDK版本將會引入其它的平臺的ABI并會有不同的名稱。注意,所有基于ARM的ABI會
??? 使TARGET_ARCH定義為'arm',但可能擁有不同的TARGET_ARCH_ABI
???
????
TARGET_ABI???
??? 目標平臺與abi的連接,它實際上被定義為 $(TARGET_PLATFORM)-$(TARGET_ARCH_ABI),
??? 當你想在一個真實的裝置上測試特定的目標系統鏡像時,它就很有用了。
????
??? 默認下,它的值為'android-3-armeabi'
????
??? (在Android NDK 1.6_r1及之前的版本,它的默認值為'android-3-arm')
????
???

NDK提供的宏函數:
----------------------------

以下是一些GNU Make的宏‘函數’,必須通過這樣的形式調用:'$(call <function>)'。
函數返回文本信息。
????????
my-dir
??? 返回放置當前Android.mk的文件夾相對于NDK生成系統根目錄的路徑。可用來
??? 在Android.mk的開始處定義LOCAL_PATH的值:
????
?????? LOCAL_PATH := $(call my-dir)??????

????????
all-subdir-makefiles
????? 返回‘my-dir’子目錄下的所有Android.mk。比如,代碼的結構如下:
???? sources/foo/Android.mk
??????? sources/foo/lib1/Android.mk
??????? sources/foo/lib2/Android.mk
????????
??? 如果sources/foo/Android.mk里有這樣一行:
????????
??????? include $(call all-subdir-makefiles)
????
??? 那么,它將會自動地includesources/foo/lib1/Android.mk和sources/foo/lib2/Android.mk
????
??? 這個函數能將深層嵌套的代碼文件夾提供給生成系統。注意,默認情況下,NDK僅在
??? source/*/Android.mk里尋找文件。

????
this-makefile
???? 返回當前Makefile(譯者注:指的應該是GNU Makefile)的路徑(即,這個函數是在哪里調用的)


parent-makefile
???? 返回在列入樹(inclusion tree)中的父makefile的路徑。
??? 即,包含當前makefile的那個makefile的路徑。??


grand-parent-makefile
??? 猜猜看...(譯者注:原文為Guess what...)


組件描述相關的變量:
- - - - - - - - - -


以下的變量是用來向生成系統描述你的組件的。你應該在'include $(CLEAR_VARS)'
和'include $(BUILD_XXXXX)'之間定義其中的一些變量。正如在前面所說的,$(CLEAR_VARS)
是一個將會取消所有這些變量的腳本,除非在對變量的描述時有顯式的說明。

????
LOCAL_PATH
?? 這個變量用來設置當前文件的路徑。你必須在Android.mk的開始處定義它,比如:
?????
??? LOCAL_PATH := $(call my-dir)
????
?? 這個變量不會被$(CLEAR_VARS)消除,所以每個Android.mk僅需一個定義(以防你在
?? 同一個文件里定義幾個組件)。
??
????
LOCAL_MODULE
?? 定義組件的名稱。對于所有的組件名,它必須是唯一,且不能包含空格。
?? 在include $(BUILD_XXX)之前你必須定義它。
??
?? 這個組件名決定生成的文件(譯者注:即庫名)。比如,lib<foo>,即這個組件的名稱
?? 為<foo>。但是在你的NDK生成文件(不管是Android.mk還是Application.mk)中
?? 你只能通過‘正?!拿Q(如,<foo>)來引用其它的組件。
??
??????????
LOCAL_SRC_FILES
?? 用它來定義所有用來生成組件的源文件。僅須列出傳給編譯器的文件,因為
?? 生成系統會自動地計算它們的相互依賴關系。
??
?? 注意,所有文件名都是相對于LOCAL_PATH的,你可以用到路徑組件(path component)
?? 如:
???? LOCAL_SRC_FILES := foo.c \ (譯者注:‘\’為連接符)
???????????????????????? toto/bar.c

????????
LOCAL_CPP_EXTENSION
?? 這是一個可選的變量,可用它來指明C++源文件的擴展名。默認情況下是'.cpp',
?? 但你可以改變它。比如:
????
???? LOCAL_CPP_EXTENSION := .cxx

??????
????
LOCAL_C_INCLUDES
?? 一個相對于相對于NDK*根*目錄可選的路徑名單,當編譯所有的源文件(C,C++和匯編)時,
?? 它將被添加進include搜索路徑。例如:
???
????? LOCAL_C_INCLUDES := sources/foo
??
???? 或者甚至:
?????
????? LOCAL_C_INCLUDES := $(LOCAL_PATH)/../foo


LOCAL_CFLAGS
??? 一個可選的編譯標記集,在生成C與C++源文件時,將解析它。
????
??? 對指定額外的宏定義或編譯選項很有用。
???????????????
??? 重要:不要試圖改變你Android.mk里的optimization/debuggin level,通過
????????? 在你的Android.mk里指定合適的信息,它將被自動處理,并使NDK生成
????????? 調試時可用的有用的數據文件。
??????????
??? 注意:在android-ndk-1.5_r1,相應的標記(flags)只適用于C源文件,對C++
??? ??? 源文件并不適用。為了適用于完整的Android生成系統的特性,已作了修
??? ??? 正。(現在,你可以使用LOCAL_CPPFLAGS為C++文件指定標記)

LOCAL_CXXFLAGS
??? LOCAL_CPPFLAGS的別名。注意,不建議使用這個變量,因為在未來的NDK版本中,
??? 它可能會消失。

LOCAL_CPPFLAGS
???? 一個可選的編譯標記集,*僅*在生成C++源文件時解析它。在編譯器的命令行里
???? 它將在LOCAL_CFLAGS之后出現。

??? 注意:在android-ndk-1.5_r1,相應的標記(flags)適用于C與C++源文件。
??? ??? 為了適用于完整的Android生成系統的特性,已作了修
??? ??? 正。(現在,你可以使用LOCAL_CFLAGS為C和C++源文件指定標記)

LOCAL_STATIC_LIBRARIES
??? 一份static libraries組件的名單(以BUILD_STATIC_LIBRARY的方式生成),它將被
??? 連接到欲生成的組件上。這僅在生成shared library組件時有意義。(譯者注:將指定
??? 的一個或多個static library module轉化為一個shared library module)

LOCAL_SHARED_LIBRARIES
??? 一份該組件在運行期依賴于它的shared libraries *組件*。在連接時間(link time)里
??? 與及為該生成的文件嵌入相應的信息都要用到它。

??? 注意,它并不將這份組件名單添加入生成圖表(build graph)。即,在你的Android.mk
??? 里,你仍應該將它們加入到你的應用程序要求的組件。

LOCAL_LDLIBS
??? 一份能在生成你的組件時用到的額外的連接器標記(linkerflags)的名單。在傳遞
??? 有“-l”前綴的特殊系統庫的名稱時很有用。比如,下面的語句會告訴連接器在裝載?
??? 時間(load time)里生成連接到/system/lib/libz.so的組件。

????? LOCAL_LDLIBS := -lz

??? 若想知道在這個NDK版本可以連接哪些暴露的系統庫(exposed system libraries),
??? 請參見docs/STABLE-APIS。

LOCAL_ALLOW_UNDEFINED_SYMBOLS
??? 缺省值情況下,當嘗試生成一個shared library遇到沒有定義的引用時,會導致“undefined?
??? symbol”error。這對在你的源代碼里捕捉bugs有很大的幫助。
????
??? 但是,因為一些原因你須要disable這個檢查,將這個變量設置為'true’。注意,相應
??? 的shared library可能在運行期裝載失敗。

LOCAL_ARM_MODE
??? 缺省值情況下,ARM目標二進制將會以‘thumb’模式生成,這時每個指令都是16-bit寬的。
??? 如果你想強迫組件的object文件以‘arm’(32位的指令)的模式生成,你可以將這個變量
??? 定義為'arm'。即:

????? LOCAL_ARM_MODE := arm

??? 注意,你也可以通過將‘.arm’后綴添加到源文件名字的后面指示生成系統將指定的
??? 源文件以arm模式生成。例如:
???

?????? LOCAL_SRC_FILES := foo.c bar.c.arm

??? 告訴生成系統總是以arm模式編譯‘bar.c’,但根據LOCAL_ARM_MODE的值生成foo.c

??? 注意:在你的Application.mk里將APP_OPTIM設置為'debug',這也會強迫生成ARM二進制
??? 代碼。這是因為工具鏈的調度器有bugs,它對thumb碼的處理不是很好。

?

?

怎樣添加一個模塊
LOCAL_PATH:= $(call my-dir)
#編譯靜態庫
include $(CLEAR_VARS)
LOCAL_MODULE = libhellos
LOCAL_CFLAGS = $(L_CFLAGS)
LOCAL_SRC_FILES = hellos.c
LOCAL_C_INCLUDES = $(INCLUDES)
LOCAL_SHARED_LIBRARIES := libcutils
LOCAL_COPY_HEADERS_TO := libhellos
LOCAL_COPY_HEADERS := hellos.h
include $(BUILD_STATIC_LIBRARY)

#編譯動態庫
include $(CLEAR_VARS)
LOCAL_MODULE = libhellod
LOCAL_CFLAGS = $(L_CFLAGS)
LOCAL_SRC_FILES = hellod.c
LOCAL_C_INCLUDES = $(INCLUDES)
LOCAL_SHARED_LIBRARIES := libcutils
LOCAL_COPY_HEADERS_TO := libhellod
LOCAL_COPY_HEADERS := hellod.h
include $(BUILD_SHARED_LIBRARY)

BUILD_TEST=true
ifeq ($(BUILD_TEST),true)
#使用靜態庫
include $(CLEAR_VARS)
LOCAL_MODULE := hellos
LOCAL_STATIC_LIBRARIES := libhellos
LOCAL_SHARED_LIBRARIES :=
LOCAL_LDLIBS += -ldl
LOCAL_CFLAGS := $(L_CFLAGS)
LOCAL_SRC_FILES := mains.c
LOCAL_C_INCLUDES := $(INCLUDES)
include $(BUILD_EXECUTABLE)

#使用動態庫
include $(CLEAR_VARS)
LOCAL_MODULE := hellod
LOCAL_MODULE_TAGS := debug
LOCAL_SHARED_LIBRARIES := libc libcutils libhellod
LOCAL_LDLIBS += -ldl
LOCAL_CFLAGS := $(L_CFLAGS)
LOCAL_SRC_FILES := maind.c
LOCAL_C_INCLUDES := $(INCLUDES)
include $(BUILD_EXECUTABLE)
endif # ifeq ($(WPA_BUILD_SUPPLICANT),true)

########################
#local_target_dir := $(TARGET_OUT)/etc/wifi
#include $(CLEAR_VARS)
#LOCAL_MODULE := wpa_supplicant.conf
#LOCAL_MODULE_TAGS := user
#LOCAL_MODULE_CLASS := ETC
#LOCAL_MODULE_PATH := $(local_target_dir)
#LOCAL_SRC_FILES := $(LOCAL_MODULE)
#include $(BUILD_PREBUILT)
########################
系統變量解析
LOCAL_MODULE - 編譯的目標對象
LOCAL_SRC_FILES - 編譯的源文件
LOCAL_C_INCLUDES - 需要包含的頭文件目錄
LOCAL_SHARED_LIBRARIES - 鏈接時需要的外部庫
LOCAL_PRELINK_MODULE - 是否需要prelink處理
BUILD_SHARED_LIBRARY - 指明要編譯成動態庫


LOCAL_PATH - 編譯時的目錄
$(call 目錄,目錄….) 目錄引入操作符
如該目錄下有個文件夾名稱 src,則可以這樣寫 $(call src),那么就會得到 src 目錄的完整路徑

include $(CLEAR_VARS) -清除之前的一些系統變量
CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk
在 build/core/config.mk 定義 CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk
通過include 包含自定義的.mk文件(即是自定義編譯規則)或是引用系統其他的.mk文件(系統定義的編譯規則)。

LOCAL_SRC_FILES - 編譯的源文件
可以是.c, .cpp, .java, .S(匯編文件)或是.aidl等格式
不同的文件用空格隔開。如果編譯目錄子目錄,采用相對路徑,如子目錄/文件名。也可以通過$(call 目錄),指明編譯某目錄
下所有.c/.cpp/.java/.S/ .aidl文件.追加文件 LOCAL_SRC_FILES += 文件

LOCAL_C_INCLUDES - 需要包含的頭文件目錄
可以是系統定義路徑,也可以是相對路徑. 如該編譯目錄下有個include目錄,寫法是include/*.h

LOCAL_SHARED_LIBRARIES - 鏈接時需要的外部共享庫
LOCAL_STATIC_LIBRA RIES - 鏈接時需要的外部外部靜態
LOCAL_JAVA_LIBRARIES 加入jar包

LOCAL_MODULE - 編譯的目標對象
module 是指系統的 native code,通常針對c,c++代碼
./system/core/sh/Android.mk:32:LOCAL_MODULE:= sh
./system/core/libcutils/Android.mk:71:LOCAL_MODULE := libcutils
./system/core/cpio/Android.mk:9:LOCAL_MODULE := mkbootfs
./system/core/mkbootimg/Android.mk:8:LOCAL_MODULE := mkbootimg
./system/core/toolbox/Android.mk:61:LOCAL_MODULE:= toolbox
./system/core/logcat/Android.mk:10:LOCAL_MODULE:= logcat
./system/core/adb/Android.mk:65:LOCAL_MODULE := adb
./system/core/adb/Android.mk:125:LOCAL_MODULE := adbd
./system/core/init/Android.mk:20:LOCAL_MODULE:= init
./system/core/vold/Android.mk:24:LOCAL_MODULE:= vold
./system/core/mountd/Android.mk:13:LOCAL_MODULE:= mountd

LOCAL_PACKAGE_NAME?
Java 應用程序的名字用該變量定義
./packages/apps/Music/Android.mk:9:LOCAL_PACKAGE_NAME := Music
./packages/apps/Browser/Android.mk:14:LOCAL_PACKAGE_NAME := Browser
./packages/apps/Settings/Android.mk:8:LOCAL_PACKAGE_NAME := Settings
./packages/apps/Stk/Android.mk:10:LOCAL_PACKAGE_NAME := Stk
./packages/apps/Contacts/Android.mk:10:LOCAL_PACKAGE_NAME := Contacts
./packages/apps/Mms/Android.mk:8:LOCAL_PACKAGE_NAME := Mms
./packages/apps/Camera/Android.mk:8:LOCAL_PACKAGE_NAME := Camera
./packages/apps/Phone/Android.mk:11:LOCAL_PACKAGE_NAME := Phone
./packages/apps/VoiceDialer/Android.mk:8:LOCAL_PACKAGE_NAME := VoiceDialer


BUILD_SHARED_LIBRARY - 指明要編譯成動態庫。
編譯的目標,用include 操作符
UILD_STATIC_LIBRARY來指明要編譯成靜態庫。
如果是java文件的話,會用到系統的編譯腳本host_java_library.mk,用BUILD_PACKAGE來指明。三個編譯
-------------------
include $(BUILD_STATIC_LIBRARY)
BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk
-------------------
include $(BUILD_SHARED_LIBRARY)
./build/core/config.mk:50:BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk
-------------------
include $(BUILD_HOST_SHARED_LIBRARY)
BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk
-------------------
include $(BUILD_EXECUTABLE)
build/core/config.mk:51:BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk
-------------------
include $(BUILD_HOST_EXECUTABLE)
./build/core/config.mk:53:BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk
-------------------
BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
-------------------
BUILD_JAVA_LIBRARY
./build/core/config.mk:58:BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
------------------
BUILD_STATIC_JAVA_LIBRARY 編譯靜態JAVA庫
./build/core/config.mk:59:BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
------------------
BUILD_HOST_JAVA_LIBRARY 編譯本機用的JAVA庫
./build/core/config.mk:60:BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
------------------

BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk
BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk
BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk
BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk
BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk
BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk
BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk
BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk
BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk
BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk
BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk
BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk
BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk
BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk
BUILD_KEY_CHAR_MAP := $(BUILD_SYSTEM)/key_char_map.mk

============
LOCAL_PRELINK_MODULE
Prelink利用事先鏈接代替運行時鏈接的方法來加速共享庫的加載,它不僅可以加快起動速度,還可以減少部分內存開銷,
是各種Linux架構上用于減少程序加載時間、縮短系統啟動時間和加快應用程序啟動的很受歡迎的一個工具。程序運行時的
動態鏈接尤其是重定位(relocation)的開銷對于大型系統來說是很大的。
動態鏈接和加載的過程開銷很大,并且在大多數的系統上, 函數庫并不會常常被更動, 每次程序被執行時所進行的鏈接
動作都是完全相同的,對于嵌入式系統來說尤其如此。因此,這一過程可以改在運行時之前就可以預先處理好,即花一些時間
利用Prelink工具對動態共享庫和可執行文件進行處理,修改這些二進制文件并加入相應的重定位等信息,節約了本來在程序
啟動時的比較耗時的查詢函數地址等工作,這樣可以減少程序啟動的時間,同時也減少了內存的耗用。?
Prelink的這種做法當然也有代價:每次更新動態共享庫時,相關的可執行文件都需要重新執行一遍Prelink才能保
證有效,因為新的共享庫中的符號信息、地址等很可能與原來的已經不同了,這就是為什么 android framework代碼一改動,
這時候就會導致相關的應用程序重新被編譯。
這種代價對于嵌入式系統的開發者來說可能稍微帶來一些復雜度,不過好在對用戶來說幾乎是可以忽略的。
--------------------
變量設置為false那么將不做prelink操作
LOCAL_PRELINK_MODULE := false
默認是需要prlink的,同時需要在 build/core/prelink-linux-arm.map 中加入
libhellod.so 0x96000000
這個map文件好像是制定動態庫的地址的,在前面注釋上面有一些地址范圍的信息,注意庫與庫之間的間隔數,
如果指定不好的話編譯的時候會提示說地址空間沖突的問題。另外,注意排序,這里要把數大的放到前面去,
按照大小降序排序。
解析 LOCAL_PRELINK_MODULE 變量
build/core/dynamic_binary.mk:94:ifeq ($(LOCAL_PRELINK_MODULE),true)
ifeq ($(LOCAL_PRELINK_MODULE),true)
$(prelink_output): $(prelink_input) $(TARGET_PRELINKER_MAP) $(APRIORI)
$(transform-to-prelinked)
transform-to-prelinked定義:
./build/core/definitions.mk:1002:define transform-to-prelinked
define transform-to-prelinked
@mkdir -p $(dir $@)
@echo "target Prelink: $(PRIVATE_MODULE) ($@)"
$(hide) $(APRIORI) \
--prelinkmap $(TARGET_PRELINKER_MAP) \
--locals-only \
--quiet \
$< \
--output $@
endef
./build/core/config.mk:183:APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX)
prelink工具不是常用的prelink而是apriori,其源代碼位于” <your_android>/build/tools/apriori”
參考文檔:
動態庫優化——Prelink(預連接)技術
http://www.eefocus.com/article/09-04/71629s.html


===============
LOCAL_ARM_MODE := arm
目前Android大部分都是基于Arm處理器的,Arm指令用兩種模式Thumb(每條指令兩個字節)和arm指令(每條指令四個字節)

LOCAL_CFLAGS += -O3 -fstrict-aliasing -fprefetch-loop-arrays
通過設定編譯器操作,優化級別,-O0表示沒有優化,-O1為缺省值,-O3優化級別最高
LOCAL_CFLAGS += -W -Wall
LOCAL_CFLAGS += -fPIC -DPIC
LOCAL_CFLAGS += -O2 -g -DADB_HOST=1 -Wall -Wno-unused-parameter
LOCAL_CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE -DSH_HISTORY
LOCAL_CFLAGS += -DUSEOVERLAY2
根據條件選擇相應的編譯參數
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DANDROID_GADGET=1
LOCAL_CFLAGS := $(PV_CFLAGS)
endif
ifeq ($(TARGET_BUILD_TYPE),release)
LOCAL_CFLAGS += -O2
endif

LOCAL_LDLIBS := -lpthread
LOCAL_LDLIBS += -ldl

ifdef USE_MARVELL_MVED
LOCAL_WHOLE_STATIC_LIBRARIES += lib_il_mpeg4aspdecmved_wmmx2lnx lib_il_h264decmved_wmmx2lnx
LOCAL_SHARED_LIBRARIES += libMrvlMVED
else
LOCAL_WHOLE_STATIC_LIBRARIES += lib_il_h264dec_wmmx2lnx lib_il_mpeg4aspdec_wmmx2lnx
endif

轉載于:https://www.cnblogs.com/codingking/archive/2013/01/29/2881143.html

總結

以上是生活随笔為你收集整理的Android.mk文件语法规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久国产一区二区三区 | 激情五月播播久久久精品 | 亚洲美女在线国产 | 在线va网站 | 国产精品99久久久久久久久久久久 | 免费精品在线视频 | 9在线观看免费高清完整版在线观看明 | 久久狠狠干| 午夜影院在线观看18 | 国产精品综合av一区二区国产馆 | 成人免费在线观看入口 | 免费看的黄色的网站 | 波多野结衣在线播放一区 | 狠狠色丁香婷婷综合久小说久 | 欧美日韩在线第一页 | 久久er99热精品一区二区 | 日韩三级在线观看 | 有码视频在线观看 | 国产视频中文字幕 | 日韩精品欧美视频 | 欧美午夜精品久久久久 | 在线黄色av电影 | 在线有码中文 | 亚洲一区二区视频 | 久草在线| 国产麻豆视频免费观看 | 五月婷婷毛片 | 九九热视频在线免费观看 | 日本在线观看一区二区三区 | 亚洲成熟女人毛片在线 | 国产精品毛片一区二区三区 | 天天操天天干天天干 | 国产精品麻豆视频 | 国产婷婷在线观看 | 在线观看视频在线观看 | 亚州中文av | 中文字幕在线观 | 亚洲激情电影在线 | 国产呻吟在线 | 日本黄色片一区二区 | 亚洲精品乱码久久久久久9色 | av中文字幕第一页 | 黄色三级免费网址 | 亚洲黄a| 婷婷六月中文字幕 | 久久精品3 | 亚洲一级免费观看 | 日日夜夜天天久久 | 国产一区二区三区四区大秀 | 丁香五月缴情综合网 | 777xxx欧美 | 欧美成人黄色 | 97超碰人人模人人人爽人人爱 | www日韩视频| 狠狠色狠狠色综合日日92 | 亚洲黄在线观看 | 日本中文字幕系列 | 亚洲欧美婷婷六月色综合 | 国产精品九九视频 | 日韩在线观看一区 | 亚洲精品免费在线播放 | 成人免费视频网址 | 成人在线观看免费 | 亚洲综合色视频在线观看 | 欧美 日韩 成人 | 亚洲激情 在线 | 中文字幕 国产视频 | 高清av在线免费观看 | 婷婷色在线 | 992tv又爽又黄的免费视频 | 午夜久久久影院 | 热久久最新地址 | 欧美一级性生活视频 | 色婷婷激情四射 | 国产精品一区二区三区在线 | 欧美日韩国产mv | 欧美a免费 | 麻豆首页 | 国产精品一区二区无线 | 亚欧日韩av | 日本黄网站 | 国产第一页在线观看 | 亚洲韩国一区二区三区 | 精品美女在线视频 | 国产精品日韩精品 | 久久国产免费视频 | 亚洲精品视频一二三 | 国产亚洲精品久久久久秋 | www.97视频| 午夜国产福利在线观看 | 亚洲视频免费在线看 | 日韩在线免费 | www亚洲精品 | 深夜精品福利 | 国产一区视频免费在线观看 | 丁香视频全集免费观看 | 久久福利小视频 | 日日操日日干 | 免费的黄色av | 国产极品尤物在线 | 精品国产乱码一区二区三区在线 | 中文字幕亚洲字幕 | 在线视频观看你懂的 | 亚洲国产成人精品电影在线观看 | 国产剧情一区在线 | 日韩大片在线免费观看 | 97成人在线观看视频 | 亚洲精品视频在线播放 | 综合色影院 | 在线视频app | 在线免费高清一区二区三区 | 最近更新好看的中文字幕 | 免费a v网站| 欧美在线一级片 | 久久99精品久久久久久秒播蜜臀 | 日韩在线电影一区二区 | 国产美女网站在线观看 | 国产高清在线观看av | 999国产 | 日韩在线视频线视频免费网站 | 国产不卡免费视频 | 亚洲精品久久久久久久蜜桃 | 精品国产99国产精品 | 国产成人精品一区二区三区 | 亚洲永久精品在线 | aaa亚洲精品一二三区 | 国产成人三级在线观看 | 日韩在线视频观看免费 | 99精品免费久久久久久久久日本 | 在线观看国产永久免费视频 | 中文字幕网站 | 九九久久影视 | 超碰在线网 | 91精品视频一区二区三区 | 人人要人人澡人人爽人人dvd | www久久久 | 久久国内精品99久久6app | 日韩欧美在线免费观看 | 国产1区在线观看 | 亚洲一区二区视频 | 精品国产一区二区三区久久久蜜月 | 91网免费观看 | 中文在线8资源库 | 狠狠操狠狠干天天操 | 在线看国产视频 | 婷婷丁香导航 | 午夜12点 | 美女视频永久黄网站免费观看国产 | 最近日韩中文字幕中文 | 久久人人爽人人爽人人 | 久久99久久99精品免观看软件 | 国产精品亚洲精品 | 亚洲成人在线免费 | 免费视频成人 | 欧美在线视频日韩 | 91av九色| 天天看天天干 | 一区二区 不卡 | 欧美日韩精品在线一区二区 | 国精产品999国精产 久久久久 | 天天搞夜夜骑 | 国产精品色婷婷视频 | 久久99精品久久久久久久久久久久 | 亚洲热视频 | 国产亚洲va综合人人澡精品 | 香蕉网站在线观看 | 二区三区av| 亚洲 成人 欧美 | 成人免费观看网址 | 免费看一级一片 | 粉嫩av一区二区三区入口 | 日韩sese | 日韩久久精品一区二区 | 久久久久亚洲a | 亚在线播放中文视频 | 久久久久免费精品国产小说色大师 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品久久久久久久久久三级 | 最新av在线免费观看 | 日韩xxx视频 | 国产经典av | 日韩精品免费在线视频 | 日韩精品在线免费观看 | 四虎在线观看精品视频 | 日日夜夜天天 | 久久久亚洲国产精品麻豆综合天堂 | 操操操天天操 | 国产精品免费一区二区三区 | 日韩欧美国产精品 | 91在线播放视频 | 黄色影院在线免费观看 | 高清精品在线 | 91新人在线观看 | 成人久久18免费网站 | 91黄色成人 | www.久久com| 91精品国产91久久久久福利 | 黄色的网站在线 | 国产精品毛片一区二区在线看 | 久久女教师 | 国产精品日韩欧美一区二区 | 日韩欧美视频 | 国产亚洲精品久久久久久久久久久久 | 国产成人精品免费在线观看 | 欧美日韩免费观看一区=区三区 | 国产精彩视频一区 | 91传媒激情理伦片 | 97人人网| 香蕉日日 | 韩国av三级 | 99r国产精品 | 久久久久久久电影 | 国产精品嫩草影院123 | 亚洲国产日本 | 色噜噜日韩精品欧美一区二区 | 国产精品丝袜久久久久久久不卡 | 在线观看免费视频 | www看片网站 | 免费看黄在线看 | www.色com| 99精品国产视频 | 国产美女精品视频 | 人人插超碰 | 国产精品久久久久久久99 | 91九色视频观看 | 婷婷久久网站 | 欧美专区国产专区 | 日韩视频1区 | 国产在线观看xxx | 日韩久久久久久久久久 | 成人a毛片 | 一色av | 中文字幕欧美三区 | 99国产在线 | 免费日韩一区二区 | 国产精品一区二区三区免费视频 | 久久精品中文字幕一区二区三区 | 伊人久久影视 | 久久视频在线视频 | 日韩影视大全 | 久久婷婷精品视频 | 亚洲黄色av网址 | 亚洲精品99 | 99热这里只有精品免费 | 91在线视频导航 | 色插综合 | 天堂网一区 | 国内精品国产三级国产aⅴ久 | 亚洲一区视频免费观看 | 999视频精品 | 在线免费看黄色 | 成人小视频在线免费观看 | 亚洲第一成网站 | 色的网站在线观看 | 亚洲少妇激情 | 亚洲国产精品500在线观看 | 免费高清在线观看电视网站 | 久久综合九色九九 | 又长又大又黑又粗欧美 | 玖玖综合网 | 久久综合婷婷 | 西西4444www大胆无视频 | 亚洲最新av在线网址 | 黄色成年网站 | 女人18精品一区二区三区 | 91女子私密保健养生少妇 | 日韩草比| 日韩精品免费一区二区在线观看 | 激情综合网在线观看 | 五月天激情综合 | 91自拍视频在线观看 | 国产精品一区免费在线观看 | 免费观看性生交大片3 | 亚洲小视频在线 | 国产精品久久久久久久免费观看 | 国产一区免费看 | 高清中文字幕av | 国产一在线精品一区在线观看 | 久久久久久网址 | 久久国产午夜精品理论片最新版本 | 午夜精品一区二区三区免费 | 久久av网址 | 一级黄色大片 | 天天爱av导航 | 麻豆精品视频在线观看免费 | 国产玖玖视频 | 日韩激情片在线观看 | 九九热99视频| 亚洲欧美国内爽妇网 | 国产四虎影院 | 99精品久久精品一区二区 | 成人观看视频 | 日韩欧美91 | 天天射日 | 久久久男人的天堂 | 国产一级片网站 | 精品婷婷| 在线国产91 | 一区二精品 | 97久久精品午夜一区二区 | 色999视频| 国产123区在线观看 国产精品麻豆91 | 午夜精品一区二区三区在线 | 日韩专区一区二区 | 国产精品久久久区三区天天噜 | 色福利网站 | 九九精品久久久 | 色无五月 | 六月丁香激情综合色啪小说 | 中文字幕亚洲字幕 | 亚洲精品一区二区精华 | 亚洲精品美女久久17c | 91插插插网站 | 麻豆激情电影 | 精品国模一区二区 | 欧美精品久久久久久 | 午夜精选视频 | 免费看黄在线看 | 国产精品麻豆三级一区视频 | 日本中文乱码卡一卡二新区 | 久久人人爽人人片av | 蜜桃av综合网 | 中文字幕在线观看免费 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日韩欧美69 | 国产丝袜一区二区三区 | 999精品在线 | 午夜视频在线观看一区二区 | 国产一区二区不卡视频 | 久久精品免视看 | 伊人午夜视频 | 精品久久久亚洲 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 波多野结依在线观看 | 久久国产精品小视频 | 色婷婷久久久 | 国产高清日韩欧美 | av色一区| 91视频麻豆 | 成人在线视频免费看 | 婷婷激情五月综合 | 夜夜爽88888免费视频4848 | 韩国在线视频一区 | 久久久人人爽 | 视频一区视频二区在线观看 | 中文字幕在线观看免费高清完整版 | 国产四虎在线 | a特级毛片 | 91久久一区二区 | 色婷婷亚洲婷婷 | 亚洲欧美视频在线播放 | 国产黄色片在线 | 一区二区三区在线免费播放 | 天天操天天干天天爱 | 日韩精品久久久久久久电影99爱 | 亚洲黄色在线播放 | 日韩精品一区二区三区免费视频观看 | av观看在线观看 | 六月婷婷网 | 超碰最新网址 | 国产一区二区观看 | 国产一级片毛片 | 中文字幕激情 | 国内成人综合 | 日本一区二区三区免费观看 | 国产不卡在线播放 | 麻豆91在线看 | 久久精品99久久久久久2456 | www.五月天婷婷 | 国产成人综合精品 | 日韩在线二区 | 成人黄大片 | 国产精品porn | 国产一级一片免费播放放 | 欧美精品亚洲精品 | 国际精品久久 | 日韩在线国产精品 | 日韩理论片中文字幕 | 精品久久一 | 婷婷在线观看视频 | 99热最新精品 | 91视频免费 | 91免费黄视频 | av中文字幕在线观看网站 | 欧美一区二区三区在线视频观看 | 精品国产乱码一区二区三区在线 | 中文字幕亚洲字幕 | 91国内在线 | 欧美成人aa| 欧美日韩精品久久久 | 337p欧美| 91av在线免费播放 | 日韩在线视频不卡 | 国产人成免费视频 | 亚洲全部视频 | 精品嫩模福利一区二区蜜臀 | 久久dvd| 啪啪肉肉污av国网站 | 国产精品嫩草69影院 | 一级免费黄视频 | 6080yy午夜一二三区久久 | 综合网色 | 911精品视频 | 伊人黄 | 国产精品一区二区三区免费看 | 国产一级特黄毛片在线毛片 | 日韩在线高清 | 国产亚洲视频系列 | 亚洲精品视频一 | 91精品伦理 | 欧美日本高清视频 | 亚洲综合激情小说 | 91精品国产麻豆 | 免费日韩一级片 | 在线观看亚洲a | 超碰公开在线观看 | 懂色av一区二区三区蜜臀 | 一区免费在线 | 欧美日韩国产免费视频 | 91丨九色丨高潮 | 在线日韩视频 | 成人h在线播放 | 久久tv| 亚洲午夜精品久久久久久久久 | 免费看搞黄视频网站 | 中文字幕在线久一本久 | 国产黄色片一级 | 日韩夜夜爽| 亚洲精品久久久蜜桃直播 | 婷婷五月色综合 | 中国黄色一级大片 | 一级片在线 | 国产手机视频在线播放 | 视频一区二区三区视频 | 日韩在线理论 | 开心激情五月婷婷 | 91成人亚洲 | 97在线看 | 在线观看91精品视频 | 国产真实精品久久二三区 | 私人av| 久久亚洲综合国产精品99麻豆的功能介绍 | 五月综合激情 | 国内揄拍国产精品 | 美女网站在线 | 激情综合网五月 | 久久久高清免费视频 | 99精品视频在线观看视频 | 国产免费高清视频 | 日本h在线播放 | 婷婷色六月天 | 国产成人精品福利 | 国产91综合一区在线观看 | adn—256中文在线观看 | 中文字幕在线国产精品 | 婷婷在线播放 | www.成人久久| av资源网在线播放 | 成人一区二区在线观看 | 青青啪 | 中日韩免费视频 | 狠狠操夜夜 | www日日| 黄色片视频在线观看 | 亚洲一区二区三区四区在线视频 | 国产裸体永久免费视频网站 | 特级黄色一级 | 国产精品一区二区62 | 久草精品视频 | 91视频免费观看 | 一区二区三区 亚洲 | 婷婷九九| 日韩三级免费 | 一区二区三区四区五区在线 | 亚洲影视九九影院在线观看 | 69国产盗摄一区二区三区五区 | 91色网址 | 青草草在线视频 | 午夜12点| 婷婷色 亚洲 | 在线观看一区视频 | 精品在线观看国产 | 亚洲精品欧美成人 | 激情综合一区 | 欧美激情视频一区二区三区 | 中文字幕在线日本 | 国产一区二区不卡视频 | 国产va饥渴难耐女保洁员在线观看 | 天天草天天色 | 中文字幕一区二区三区乱码在线 | 91黄在线看 | 亚洲精品1区2区3区 超碰成人网 | 五月丁色 | 国内精品久久久久影院日本资源 | 成人网444ppp | 久久精品精品电影网 | www国产精品com | 久久综合九色欧美综合狠狠 | 国产丝袜一区二区三区 | 久久久观看 | 婷婷国产一区二区三区 | 国产精品麻豆视频 | av网站在线免费观看 | 久久在线观看视频 | 夜色资源网 | 国产欧美精品一区二区三区 | 99在线精品视频 | 久久久久久综合网天天 | 国产xxxx | 国产精品视频app | 国产午夜亚洲精品 | 日韩在线免费 | 97看片吧| 日韩在线高清 | 91视频麻豆| 国内精品久久久久久久久久清纯 | 欧美成人黄 | 在线视频观看国产 | 久久私人影院 | 国产精品理论片 | 成人午夜影院在线观看 | 美女天天操 | 视频 国产区 | 久久一区二区三区四区 | 国产午夜精品一区二区三区在线观看 | 91男人影院 | 亚洲精品美女久久17c | 免费观看久久久 | 粉嫩aⅴ一区二区三区 | 国产精品毛片完整版 | 狠狠狠狠狠狠干 | 久久99热这里只有精品 | 69国产在线观看 | 日韩精品中文字幕在线观看 | 欧美日韩一二三四区 | 久久综合偷偷噜噜噜色 | 超碰在线色 | 美女免费视频一区二区 | 亚洲成aⅴ人片久久青草影院 | 国产91精品欧美 | 69久久久久久久 | 国产亚洲精品无 | 美女网站视频色 | 日韩欧美99 | 国内精品久久久久影院日本资源 | 美女国内精品自产拍在线播放 | 91视频网址入口 | 玖玖国产精品视频 | 欧美极度另类性三渗透 | 2021国产在线视频 | 国产黄色大片免费看 | 波多野结衣一区 | 五月婷婷激情综合 | 在线观看国产中文字幕 | 免费日韩 精品中文字幕视频在线 | 免费一级片在线观看 | 亚洲精品在线观看av | 久久成人综合视频 | 狠狠色狠狠色合久久伊人 | 天天操天天玩 | 成人免费影院 | 免费观看高清 | 天天做天天爱天天爽综合网 | 久久国产精品久久w女人spa | 超碰在线观看av.com | 亚洲精品婷婷 | 婷婷成人综合 | 国产高清亚洲 | 国产精品美女www爽爽爽视频 | 中文字幕日本在线观看 | 久久久黄色免费网站 | 日韩在线观看视频一区二区三区 | 久久人91精品久久久久久不卡 | 国产日韩欧美视频在线观看 | 久久国产精品免费观看 | 波多野结依在线观看 | 黄色在线视频网址 | 日韩 精品 一区 国产 麻豆 | 亚洲欧美久久 | 亚洲人人爱 | 国产在线观看免费观看 | 美女国产在线 | 亚洲国产字幕 | 开心色婷婷| 国产永久免费 | 99精品国产99久久久久久97 | 色天天中文 | 亚洲三级黄色 | 日本久久片| 91麻豆精品国产91久久久更新时间 | 国产老熟| 国产成人一区二区三区电影 | 激情五月***国产精品 | 久久精品久久精品久久精品 | 成人黄色av免费在线观看 | 99久久婷婷国产 | 国产一级视频在线 | 2019中文字幕网站 | 五月婷婷综合在线观看 | 精品久久美女 | 这里只有精彩视频 | 人人爱人人射 | 天天操天天添 | 色偷偷av男人天堂 | 麻豆视频大全 | 成人97人人超碰人人99 | 综合久色 | 精品欧美一区二区三区久久久 | 国产精品久久久久久久久久久久午夜 | 伊人中文字幕在线 | 色婷婷av一区 | 欧美另类xxxxx | 国产伦理久久精品久久久久_ | 国产成人久久av | 国产精品免费观看在线 | 国产精品国产三级国产aⅴ9色 | 91精品推荐 | 久久久人人爽 | 国产精品资源在线观看 | 中文字幕人成乱码在线观看 | 91欧美在线 | 91精品欧美一区二区三区 | 青青啪| 国产精品福利无圣光在线一区 | 午夜a区 | 国产一级不卡毛片 | 国产精品久久久久久久久久久不卡 | 一区中文字幕在线观看 | 欧美另类高清 | 婷婷成人在线 | 成人av高清在线观看 | 亚洲最新精品 | 国产99色 | 欧美专区日韩专区 | 亚洲jizzjizz日本少妇 | 国产一级片免费视频 | www.色综合.com| 五月开心网 | 亚洲天天干 | 天天干天天做天天操 | 99久久精品电影 | 日韩欧美视频在线观看免费 | 九九热精品视频在线观看 | 国产小视频网站 | 96av视频| 丁香综合av | 国产精品永久在线观看 | 人人爽人人干 | 色视频在线 | 久久这里只有精品视频99 | 91热这里只有精品 | 久久久91精品国产一区二区精品 | 五月婷婷激情网 | 久久高清片 | www中文在线 | 久久er99热精品一区二区 | 国产精品一区在线观看你懂的 | 最新日韩电影 | 99久久99视频 | 亚洲视频99| 色综合在 | 亚洲精品av在线 | 欧美最猛性xxx | 日本黄色免费在线 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 久久人操 | 亚州激情视频 | 日韩在线观看你懂得 | 高清视频一区二区三区 | 天天爽综合网 | 国产群p | 丁香婷婷久久 | 91av手机在线观看 | 久久ww| 一区二区精品久久 | 少妇精品久久久一区二区免费 | 黄色成人毛片 | 狠狠躁夜夜躁人人爽超碰91 | 99久久99| 99久久精品免费看国产四区 | 亚洲综合成人av | 日韩av电影一区 | 国产精品完整版 | 亚洲四虎| 九九热免费在线观看 | 国产精品欧美久久久久天天影视 | 色亚洲激情 | 国产黄色理论片 | av888.com| 亚a在线 | 久久免费视频播放 | 蜜臀精品久久久久久蜜臀 | 欧美激精品 | 国产黄色精品视频 | 久久亚洲精品国产亚洲老地址 | 欧美精品久久久久久久 | 欧美二区三区91 | 婷婷四房综合激情五月 | 国产主播大尺度精品福利免费 | 国产99一区视频免费 | 99精品视频在线 | 福利一区视频 | 激情网站五月天 | 亚洲成色777777在线观看影院 | 婷婷五天天在线视频 | 午夜精品福利一区二区 | 国产成人综合图片 | 亚洲精品网站在线 | 色欧美88888久久久久久影院 | 午夜精品视频一区二区三区在线看 | 日韩艹| 国产在线理论片 | 亚洲另类久久 | 午夜免费电影院 | 成人黄色电影在线播放 | 久久五月婷婷丁香 | 免费观看一级视频 | 亚洲狠狠丁香婷婷综合久久久 | 久久亚洲精品国产亚洲老地址 | 亚洲美女视频在线观看 | 日本丰满少妇免费一区 | 免费黄色小网站 | 久久久久女人精品毛片九一 | 久久久久亚洲天堂 | 四虎国产视频 | 国产在线日本 | 久久精品国产亚洲a | a一片一级 | 国产精品久久久久久妇 | 日韩视频一区二区三区 | 欧美成人手机版 | 国产一级黄大片 | 久久手机视频 | 日韩精品免费一区二区三区 | 亚洲在线视频网站 | 97在线看片 | 综合在线观看色 | 色婷婷天天干 | 亚洲综合激情 | 中文字幕免费高清av | 日韩精品一区二 | 国产高清免费 | 伊人狠狠干 | 最近中文字幕视频网 | 日韩夜夜爽 | 久久久久www | 日韩在线看片 | 中文字幕精品一区 | 日韩在线小视频 | 色无五月| 久久久国产网站 | 毛片网站免费在线观看 | 亚州av一区 | 狠狠狠色丁香综合久久天下网 | 亚洲狠狠婷婷综合久久久 | 成人亚洲精品国产www | 免费av大全 | 一区二区三区精品在线视频 | 天天操天天干天天 | 国产人成一区二区三区影院 | 99久久久国产精品免费观看 | 婷婷开心久久网 | 色综合久久久 | 免费不卡中文字幕视频 | 中国一级特黄毛片大片久久 | 精品一区二区精品 | 五月婷婷色综合 | 亚洲男男gaygayxxxgv | 丝袜+亚洲+另类+欧美+变态 | 欧美日韩国产一区二区在线观看 | 麻豆视频国产 | 色婷婷视频在线 | 免费视频久久久久 | 91.麻豆视频 | 一区二区激情 | 国产精品久久久久亚洲影视 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 91精品看片| www.色com| 亚洲精品777 | 日韩一区在线免费观看 | 成人亚洲免费 | 激情喷水 | 国产精品久久久久久久久毛片 | 成人h电影在线观看 | 韩国av在线播放 | 成人全视频免费观看在线看 | 国产99在线 | 黄色大片视频网站 | 久久色在线观看 | av丝袜制服 | 在线观看岛国片 | 精品美女在线观看 | 国产一区二区在线免费 | 久久夜色精品国产欧美一区麻豆 | 五月综合婷| 在线日本v二区不卡 | 精品久久一区二区三区 | 久久久久久久久爱 | se视频网址| 色网站免费在线看 | 国产精品欧美久久久久三级 | 99久久99久久精品 | 欧美精品被 | 中文字幕在线播放第一页 | 2022久久国产露脸精品国产 | 在线a视频免费观看 | 久久精品女人毛片国产 | 一区二区三区国产欧美 | 中文字幕美女免费在线 | 99久久久国产免费 | 婷婷电影在线观看 | 精品v亚洲v欧美v高清v | 午夜黄色影院 | 国产精品九九九 | 国产美女视频免费观看的网站 | 狠狠天天 | 91视频久久久久 | 免费av看片 | 日韩一级黄色大片 | 亚洲欧洲国产精品 | 在线99热 | 最近高清中文在线字幕在线观看 | 婷婷亚洲综合五月天小说 | 亚洲国产精品影院 | 91精品国自产拍天天拍 | 激情视频二区 | av免费看看| 在线看欧美 | 亚洲 欧美 国产 va在线影院 | 一级特黄av| 欧美精品一区二区在线播放 | 日本精品视频在线观看 | 免费在线观看a v | 天天干天天爽 | 久草网首页 | www免费网站在线观看 | 中文字幕xxxx | www免费 | 久久人人爽人人人人片 | 日韩精品中字 | 91精品中文字幕 | 国产精品中文久久久久久久 | 久久精品视频网 | 国产精品成人自产拍在线观看 | 黄色一区二区在线观看 | 国产福利91精品一区二区三区 | 国产视频日韩视频欧美视频 | 中文字幕a在线 | 欧美美女视频在线观看 | 五月婷婷六月丁香激情 | 久久99免费 | 国产精品每日更新 | 日韩高清精品免费观看 | 91精品国产91久久久久福利 | 制服丝袜欧美 | 国产资源在线免费观看 | 久久久首页 | 狠狠五月天 | 国产96视频 | 久久人91精品久久久久久不卡 | 在线观看va | 一区二区三区四区五区六区 | 日韩一级黄色大片 | 国产精品久久久久一区二区三区共 | 久久久国产精品一区二区三区 | 国语黄色片 | 天天噜天天色 | 欧美日韩网址 | 免费a现在观看 | 一区在线播放 | 欧美一区二视频在线免费观看 | 92精品国产成人观看免费 | www.色午夜.com | www.天天射 | 涩涩色亚洲一区 | 99精品一区二区 | 国内揄拍国内精品 | 天天摸日日操 | av成人动漫 | 91中文字幕网 | 久久天天躁夜夜躁狠狠躁2022 | 五月婷亚洲 | 精品中文字幕在线观看 | 麻豆免费视频观看 | 视频一区二区免费 | 国产精品入口麻豆www | 91精品资源 | 97av免费视频 | 婷婷色婷婷| 国产亚洲婷婷免费 | 国产在线资源 | 一级成人网| 99一区二区三区 | 激情丁香月 | 夜夜操天天操 | 国产精品福利在线播放 | 人人搞人人干 | 天天爱天天舔 | 香蕉看片| 久久线视频 | 亚洲精品国产精品久久99 | 夜夜夜影院| 人人爱人人添 | 92av视频| 久草在在线视频 | 亚洲午夜久久久久久久久电影网 | 中文在线亚洲 | 亚洲国产日韩在线 | 欧美国产一区在线 | 国产精品99久久久久 | 日本在线精品视频 | 国产精品久久久久久久免费大片 | 中文字幕第一页在线播放 | 国产又粗又猛又爽又黄的视频免费 | 又黄又爽的免费高潮视频 | 日韩欧美视频一区二区三区 | 欧美在线91 | 国产在线黄 | 国产高清亚洲 | 国产96在线观看 | 天天做夜夜做 | 国产在线超碰 | 91亚州 | 日日夜夜婷婷 | 久久久久久久久久网站 | 超碰精品在线观看 | 日韩免费不卡av | 三级av小说 | 狠狠操狠狠干天天操 | 国产91精品看黄网站在线观看动漫 | 亚洲精品玖玖玖av在线看 | 菠萝菠萝蜜在线播放 | 成人在线观看av | 久久午夜电影 | 日韩电影久久久 | 日韩动态视频 | 欧美福利在线播放 | 不卡的一区二区三区 | 久久精品最新 | 日韩在线观看影院 | 国产区欧美| 91视频传媒 | 在线免费看黄色 | 久久精品国产一区二区三 | 久久精品视频国产 | ww亚洲ww亚在线观看 | 日韩久久精品一区 | 欧美二区三区91 | 就色干综合 | 高潮久久久 | 久久久久久欧美二区电影网 | 国产91小视频 | 99在线视频观看 | 精品在线观看视频 | 日本最新高清不卡中文字幕 | 午夜精品一区二区三区免费 | 91在线国产观看 | 99精品在这里 | 国产精品永久在线观看 | 国产精品美女久久久久久 | 久久av高清 | 久久久久久黄 | 天天操人人干 | 中文高清av | 麻豆久久久久 | www国产亚洲精品久久网站 | 97精品一区 | 99在线热播精品免费 | 日韩中字在线 | 成人a在线观看高清电影 | 久久久久99精品成人片三人毛片 | 五月天伊人网 | 国产一区福利在线 | 日韩视频一区二区在线观看 | 91污视频在线观看 | 中文字幕在线观看视频一区二区三区 | 天天操天天干天天干 | 久草久视频 | 国产精品久久久久久爽爽爽 | 色婷婷综合视频在线观看 | 91av在线免费视频 | 久久一区国产 | 久久精品国产亚洲 | 激情欧美网| 97超碰在线久草超碰在线观看 | 国产免费视频一区二区裸体 | 色综合在 | 欧美日韩国产综合网 | 91精品国产92久久久久 | 日韩av在线网站 | 男女全黄一级一级高潮免费看 | 久久欧美综合 | 日日夜夜精品网站 | 久久躁日日躁aaaaxxxx | 黄色小说在线观看视频 | 国产字幕在线播放 | 五月婷婷六月丁香激情 |