1. Pre-build java shared lib
41include $$(CLEAR_VARS) 42LOCAL_PREBUILT_JAVA_LIBRARIES := share.jar 43include $$(BUILD_MULTI_PREBUILT)
2. Pre-build java static lib
31include $$(CLEAR_VARS) 32LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := staticName.frameworkdep:static.jar 33include $$(BUILD_MULTI_PREBUILT) 34 35include $$(CLEAR_VARS) 36LOCAL_MODULE := $1 37LOCAL_MODULE_TAGS := $2 38LOCAL_STATIC_JAVA_LIBRARIES := staticName.frameworkdep 39include $$(BUILD_JAVA_LIBRARY)
3. Pre-build so file
5include $(CLEAR_VARS) 6LOCAL_MODULE_TAGS := optional 7LOCAL_PREBUILT_LIBS := $(_local_shared_libs) 8include $(BUILD_MULTI_PREBUILT)
4. Pre-build executable file
3include $(CLEAR_VARS) 4LOCAL_PREBUILT_EXECUTABLES := flashimage.py 5LOCAL_PREBUILT_EXECUTABLES += flashtools.py 6LOCAL_PREBUILT_EXECUTABLES += flashreadme.txt 7LOCAL_MODULE_TAGS := optional 8LOCAL_IS_HOST_MODULE := true 9include $(BUILD_MULTI_PREBUILT)Output:
./host/linux-x86/bin/flashimage.py
./host/linux-x86/obj/EXECUTABLES/flashimage_intermediates
./host/linux-x86/obj/EXECUTABLES/flashimage_intermediates/flashimage.py
./host/linux-x86/bin/flashtools.pyc
./host/linux-x86/bin/flashtools.py
./host/linux-x86/obj/EXECUTABLES/flashtools_intermediates
./host/linux-x86/obj/EXECUTABLES/flashtools_intermediates/flashtools.py
./host/linux-x86/bin/flashreadme.txt
./host/linux-x86/obj/EXECUTABLES/flashreadme_intermediates
./host/linux-x86/obj/EXECUTABLES/flashreadme_intermediates/flashreadme.txt
11include $(CLEAR_VARS) 12LOCAL_MODULE := flashaddon 13LOCAL_MODULE_TAGS := optional 14LOCAL_MODULE_CLASS := EXECUTABLES 15ifneq ($(wildcard $(LOCAL_PATH)/flashaddon.$(TARGET_DEVICE).py),) 16LOCAL_SRC_FILES := flashaddon.$(TARGET_DEVICE).py 17else 18LOCAL_SRC_FILES := flashaddon.default.py 19endif 20LOCAL_MODULE_PATH := $(PRODUCT_OUT) 21LOCAL_MODULE_SUFFIX := $(suffix $(LOCAL_SRC_FILES)) 22include $(BUILD_PREBUILT)
Output:
./target/product/flounder32/flashaddon.py
./target/product/flounder32/flashaddon.pyc
./target/product/flounder32/obj/EXECUTABLES/flashaddon_intermediates
./target/product/flounder32/obj/EXECUTABLES/flashaddon_intermediates/flashaddon.py
5. build java shared lib
2include $(CLEAR_VARS) 3 4LOCAL_MODULE_TAGS := optional 5 6LOCAL_SRC_FILES := $(call all-java-files-under, src) 7LOCAL_JAVA_LIBRARIES := bouncycastle conscrypt 8 9LOCAL_PACKAGE_NAME := CertInstaller 10LOCAL_CERTIFICATE := platform 11 12include $(BUILD_PACKAGE)
6. build java static lib
2include $(CLEAR_VARS) 3 4LOCAL_MODULE_TAGS := optional 5 6LOCAL_SRC_FILES := $(call all-subdir-java-files) 7 8LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 9 10LOCAL_JNI_SHARED_LIBRARIES := libjni_terminal 11 12# TODO: enable proguard once development has settled down 13#LOCAL_PROGUARD_FLAG_FILES := proguard.flags 14LOCAL_PROGUARD_ENABLED := disabled 15 16LOCAL_PACKAGE_NAME := Terminal 17 18include $(BUILD_PACKAGE)
7. build so static lib
17include $(CLEAR_VARS) 18 19LOCAL_STATIC_LIBRARIES += libgif 20 21# Link to Android logging (liblog.so) and dynamic linker (libdl.so) libraries 22LOCAL_LDFLAGS := -llog -ldl 23 24LOCAL_C_INCLUDES := \ 25 external/giflib 26 27LOCAL_MODULE := libgiftranscode 28LOCAL_SRC_FILES := GifTranscoder.cpp 29 30LOCAL_CFLAGS += -Wall -Wno-unused-parameter -Wno-switch 31 32LOCAL_SDK_VERSION := 8 33LOCAL_NDK_STL_VARIANT := c++_static # LLVM libc++ 34 35include $(BUILD_SHARED_LIBRARY)
8. build so shared lib
17# JpegUtil 18include $(CLEAR_VARS) 19 20LOCAL_CFLAGS := -std=c++11 21LOCAL_NDK_STL_VARIANT := c++_static 22LOCAL_LDFLAGS := -llog -ldl -ljnigraphics 23LOCAL_SDK_VERSION := 9 24LOCAL_MODULE := libjni_jpegutil 25LOCAL_SRC_FILES := jpegutil.cpp jpegutilnative.cpp 26 27LOCAL_C_INCLUDES += external/jpeg 28 29LOCAL_SHARED_LIBRARIES := libjpeg 30 31LOCAL_CFLAGS += -ffast-math -O3 -funroll-loops 32LOCAL_ARM_MODE := arm 33 34include $(BUILD_SHARED_LIBRARY)
9. LOCAL_JNI_SHARED_LIBRARIES
In packages/apps/Terminal/jni/Android.mk
1LOCAL_PATH:= $(call my-dir) 2 3include $(CLEAR_VARS) 4 5LOCAL_SRC_FILES := \ 6 jni_init.cpp \ 7 com_android_terminal_Terminal.cpp \ 8 9LOCAL_C_INCLUDES += \ 10 external/libvterm/include \ 11 libcore/include \ 12 frameworks/base/include 13 14LOCAL_SHARED_LIBRARIES := \ 15 libandroidfw \ 16 libandroid_runtime \ 17 liblog \ 18 libnativehelper \ 19 libutils 20 21LOCAL_STATIC_LIBRARIES := \ 22 libvterm 23 24LOCAL_CFLAGS := \ 25 -Wno-unused-parameter \ 26 27LOCAL_MODULE := libjni_terminal 28LOCAL_MODULE_TAGS := optional 29 30include $(BUILD_SHARED_LIBRARY)
In packages/apps/Terminal/Android.mk
2include $(CLEAR_VARS) 3 4LOCAL_MODULE_TAGS := optional 5 6LOCAL_SRC_FILES := $(call all-subdir-java-files) 7 8LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 9 10LOCAL_JNI_SHARED_LIBRARIES := libjni_terminal 11 12# TODO: enable proguard once development has settled down 13#LOCAL_PROGUARD_FLAG_FILES := proguard.flags 14LOCAL_PROGUARD_ENABLED := disabled 15 16LOCAL_PACKAGE_NAME := Terminal 17 18include $(BUILD_PACKAGE) 19 20include $(call all-makefiles-under,$(LOCAL_PATH))
10.LOCAL_RES_LIBRARIES
In frameworks/base/tests/SharedLibrary/lib/Android.mk
1LOCAL_PATH:= $(call my-dir) 2include $(CLEAR_VARS) 3 4LOCAL_SRC_FILES := $(call all-subdir-java-files) 5 6LOCAL_AAPT_FLAGS := --shared-lib 7LOCAL_PACKAGE_NAME := SharedLibrary 8 9LOCAL_EXPORT_PACKAGE_RESOURCES := true 10LOCAL_PRIVILEGED_MODULE := true 11LOCAL_MODULE_TAGS := optional 12 13LOCAL_PROGUARD_FLAG_FILES := proguard.proguard 14 15include $(BUILD_PACKAGE)
In frameworks/base/tests/SharedLibrary/client/Android.mk
1LOCAL_PATH:= $(call my-dir) 2include $(CLEAR_VARS) 3 4LOCAL_SRC_FILES := $(call all-subdir-java-files) 5 6LOCAL_RES_LIBRARIES := SharedLibrary 7 8LOCAL_PACKAGE_NAME := SharedLibraryClient 9 10LOCAL_MODULE_TAGS := tests 11 12include $(BUILD_PACKAGE)
11. LOCAL_APK_LIBRARIES
In frameworks/base/tests/FeatureSplit/feature1/Android.mk
18include $(CLEAR_VARS) 19 20LOCAL_SRC_FILES := $(call all-subdir-java-files) 21LOCAL_PACKAGE_NAME := FeatureSplit1 22LOCAL_MODULE_TAGS := tests 23 24featureOf := FeatureSplitBase 25 26LOCAL_APK_LIBRARIES := $(featureOf) 27featureOfApk := $(call intermediates-dir-for,APPS,$(featureOf))/package.apk 28localRStamp := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)/src/R.stamp 29$(localRStamp): $(featureOfApk) 30 31LOCAL_AAPT_FLAGS := --feature-of $(featureOfApk) --custom-package com.android.test.split.feature.one 32 33include $(BUILD_PACKAGE)
12. PREBUILT_SHARED_LIBRARY & PREBUILT_STATIC_LIBRARY
3include $(CLEAR_VARS) 4LOCAL_MODULE := libfoo 5LOCAL_SRC_FILES := $(PREBUILTS_DIR)/libs/*$(TARGET_ARCH_ABI)/libfoo.so 6include $(PREBUILT_SHARED_LIBRARY) 7 8include $(CLEAR_VARS) 9LOCAL_MODULE := libbar 10LOCAL_SRC_FILES := $(PREBUILTS_DIR)/obj/local/*$(TARGET_ARCH_ABI)/libbar.a 11include $(PREBUILT_STATIC_LIBRARY) 12 13include $(CLEAR_VARS) 14LOCAL_MODULE := test_prebuilts_copy 15LOCAL_SRC_FILES := main.c 16LOCAL_SHARED_LIBRARIES := libfoo 17LOCAL_STATIC_LIBRARIES := libbar 18include $(BUILD_EXECUTABLE)