示例文件夹prebuilts 树状图
prebuilts/
├── Android.mk
├── lib64
│ ├── 000.so
│ └── Android.mk
├── lib
│ ├── 111.so
│ └── Android.mk
├── bin
│ ├── 222
│ └── Android.mk
└── launcherTV
├── Android.mk
└── launcherTV.apk
prebuilts/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(call all-makefiles-under, $(LOCAL_PATH))
prebuilts/lib64/Android.mk
LOCAL_PATH := $(call my-dir)
define make_dir
$(foreach t,$(1), \
$(shell mkdir -p $(t) ) \
)
endef
define copy_to_out
$(foreach t,$(1), \
$(shell cp -arf $(LOCAL_PATH)/$(t) $(PRODUCT_OUT)/vendor/lib64/$(t)) \
)
endef
DIR += $(TARGET_OUT_VENDOR)/lib64/
MODULES_TO_COPY += $(filter-out Android.mk, $(notdir $(wildcard $(LOCAL_PATH)/*.so)))
$(call make_dir, $(DIR))
$(call copy_to_out, $(MODULES_TO_COPY))
prebuilts/lib/Android.mk
LOCAL_PATH := $(call my-dir)
define make_dir
$(foreach t,$(1), \
$(shell mkdir -p $(t) ) \
)
endef
define copy_to_out
$(foreach t,$(1), \
$(shell cp -arf $(LOCAL_PATH)/$(t) $(PRODUCT_OUT)/vendor/lib/$(t)) \
)
endef
DIR += $(TARGET_OUT_VENDOR)/lib/
MODULES_TO_COPY += $(filter-out Android.mk, $(notdir $(wildcard $(LOCAL_PATH)/*.so)))
$(call make_dir, $(DIR))
$(call copy_to_out, $(MODULES_TO_COPY))
prebuilts/bin/Android.mk
LOCAL_PATH := $(call my-dir)
define make_dir
$(foreach t,$(1), \
$(shell mkdir -p $(t) ) \
)
endef
define copy_to_out
$(foreach t,$(1), \
$(shell cp -arf $(LOCAL_PATH)/$(t) $(PRODUCT_OUT)/vendor/bin/$(t)) \
)
endef
DIR += $(TARGET_OUT_VENDOR)/bin/
MODULES_TO_COPY += $(filter-out Android.mk, $(notdir $(wildcard $(LOCAL_PATH)/*)))
$(call make_dir, $(DIR))
$(call copy_to_out, $(MODULES_TO_COPY))
prebuilts/launcherTV/Android.mk
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
$(warning "making $(LOCAL_PATH)")
FILES=$(notdir $(wildcard $(LOCAL_PATH)/*.apk))
#choose single apk of this direction
LOCAL_SRC_FILES := $(lastword $(FILES))
LOCAL_MODULE := $(basename $(LOCAL_SRC_FILES))
LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#testkey | shared | media | platform | PRESIGNED
LOCAL_CERTIFICATE := platform
#LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3 Launcher3QuickStep
include $(BUILD_PREBUILT)
其他
device/[platform]/[product]/product_package.mk 里面PRODUCT_PACKAGES宏需要加入APK的模块名(同 LOCAL_MODULE)。