Android源码预制基础

1.调用mk生效

$(call inherit-product-if-exists, $(DEVICE_SOURCES)/preinstall/preinstall.mk)
$(call inherit-product-if-exists, $(DEVICE_SOURCES)/images/prebuilts/prebuilts.mk)
$(call inherit-product, device/mstar/miraclefruit/device-common.mk)

2.添加编译选项,预制modelname

PRODUCT_PACKAGES += \

    trapezoidServer \

3.app预制

//有库的预制方法

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := FlyIME
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_CLASS := APPS
LOCAL_PACKAGE_NAME := FlyIME
LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_APPS)
LOCAL_SRC_FILES := FlyIME.apk
LOCAL_CERTIFICATE := PRESIGNED

LOCAL_PREBUILT_JNI_LIBS := \
            lib/armeabi/libcom_iflytek_inputmethod_bundlesetting.so \
            lib/armeabi/libcom_iflytek_inputmethod_mmp.so \
            lib/armeabi/libdexopt.so \
            lib/armeabi/libMetaVAD-v1.so \
            lib/armeabi/libmsc-v8.so \
            lib/armeabi/libNativeCrashCollect.so \
            lib/armeabi/libsmartaiwrite-jni-v23.so \
            lib/armeabi/libvadLib-v5.so \
            lib/armeabi/libvipfont.so

#LOCAL_MULTILIB := 64

include $(BUILD_PREBUILT)

无源码apk
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED//apk自己签名
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := AppManager.apk
LOCAL_PACKAGE_NAME := AppManager
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir -p $(TARGET_OUT_SYSTEM_APPS)/$(LOCAL_PACKAGE_NAME))  //没试过命令形式
LOCAL_POST_PROCESS_COMMAND := $(shell cp -rf $(LOCAL_PATH)/$(LOCAL_MODULE) $(TARGET_OUT_SYSTEM_APPS)/$(LOCAL_PACKAGE_NAME))

预制动态库
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE := libabc
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_SRC_FILES_arm :=lib/abc.so  //system/lib
LOCAL_SRC_FILES_arm64 :=lib64/libabc.so //system/lib64
LOCAL_MODULE_TARGET_ARCHS:= arm arm64
LOCAL_MULTILIB := both
include $(BUILD_PREBUILT)

预制可执行文件
include $(CLEAR_VARS)
LOCAL_SRC_FILES := verity_verifier
LOCAL_MODULE := verity_verifier
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_REQUIRED_MODULES := VerityVerifier
include $(BUILD_PREBUILT)

静态库
include $(CLEAR_VARS)
LOCAL_MODULE := libavp
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILES := cortex-a12/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
LOCAL_MODULE_TARGET_ARCH := arm
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)

jar包
LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava //调用jar包
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := Calculator
include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:arity-2.1.2.jar

include $(BUILD_MULTI_PREBUILT)

aar包
LOCAL_STATIC_JAVA_AAR_LIBRARIES += aesodm //调用

include $(CLEAR_VARS) 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := aesodm:libs/aes.aar
include $(BUILD_MULTI_PREBUILT)

猜你喜欢

转载自blog.csdn.net/wd229047557/article/details/80432275