Anroid 6.0内置APK

 LOCAL_PATH := $(call my-dir) 

每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件。

my-dir 则由Build System提供。返回包含Android.mk的目录路径。

include $(CLEAR_VARS)     

CLEAR_VARS 变量由Build System提供。并指向一个指定的GNU Makefile,由它负责清理很多LOCAL_xxx.

例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES等等。但不清理LOCAL_PATH.

这个清理动作是必须的,因为所有的编译控制文件由同一个GNU Make解析和执行,其变量是全局的。所以清理后才能避免相互影响。

LOCAL_MODULE := Cloud   

LOCAL_MODULE模块必须定义,以表示Android.mk中的每一个模块。名字必须唯一且不包含空格。

Build System会自动添加适当的前缀和后缀。例如,foo,要产生动态库,则生成libfoo.so. 但请注意:如果模块名被定为:libfoo.则生成libfoo.so. 不再加前缀

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk    LOCAL_SRC_FILES变量必须包含将要打包的APK文件,apk文件和Android.mk放同一级目录即可。

LOCAL_MODULE_CLASS 指定文件类型,apk文件用APPS, 并且 会检查 是否是apk文件,动态库so文件用SHARED_LIBRARIES ,bin文件用EXECUTABLES,其他文件 用ETC

LOCAL_DEX_PREOPT := false    打包生成.apk 不会附带生成.odex文件

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)    module的后缀,内置apk文件的后缀是.apk

LOCAL_CERTIFICATE := PRESIGNED     表示这个apk已经签过名了,系统不需要再次 签名;

LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app    指定拷贝的路径,如果路径不存在自己创建

include $(BUILD_PREBUILT)    预置apk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := Cloud
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)

猜你喜欢

转载自blog.csdn.net/lancelots/article/details/82663448