Android.mk
参考文档:
变量说明
用到的时候来这里搜索一下就好,不要自己写,容易出错。能看懂,复制粘贴。
设置LOCAL_PATH为当前Android.mk所在的目录地址
LOCAL_PATH : = $(call my-dir)
清除变量
include $(CLEAR_VARS)
模块名称(其他模块使用,比如说jar包,比如说so库之类的)
LOCAL_MODULE := XXX
依赖的jar包模块,注意:先编译被依赖的模块,否则找不到
LOCAL_JAVA_LIBRARIES := jar的模块名称
依赖的jar静态包
LOCAL_STATIC_JAVA_LIBRARIES := 可以理解为自带的包,跟前面这个不一样的是前面那个编译出来的,不在自己目录下的。
编译出来的名称(apk使用)
LOCAL_PACKAGE_NAME := XXX
什么版本下编译:
选项有:user/debug/test/optional
#optional为任何版本都编译
LOCAL_MODULE_TAGS := optional
源码的地址
LOCAL_SRC_FILES := $(call all-java-files-under, src)
混淆规则文件
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
覆盖其他模块
比如说你编译Launcher3的时候,覆盖掉Laucher2
LOCAL_OVERRIDES_PACKAGES := 要覆盖的模块名称,前面的LOCAL_MODULE
是否开启混淆
是否开启混淆,开启的话指定混淆规则,或者全部混淆:
- full:使用编译系统默认的配置:压缩但不混淆和优化,默认的混淆配置文件是build/core/proguard.flags
- custom:和full一样,但不包括aapt生成的resource相关的混淆配置。
- nosystem:不使用系统的默认配置,但使用aapt生成的resource相关的混淆配置,其他混淆由模块自己负责。
- disabled:关闭混淆
- obfuscation:和full一样,并且开启混淆
- optimization:和full一样,并且开启优化
- 不设置时,如果是app,默认为full,如果是library,则默认为disabled。
LOCAL_PROGUARD_ENABLED := disabled
编译jar包
练习编译的源码在资料里
#设置LOCAL_PATH为当前Android.mk所在的目录地址
- LOCAL_PATH := $(call my-dir)
#清除变量
include $(CLEAR_VARS)
#模块名称(其他模块使用,比如说jar包,比如说so库之类的)
LOCAL_MODULE := SobLog
#什么版本下编译:选项有:user/debug/test/optional
#optional为任何版本都编译
LOCAL_MODULE_TAGS := optional
#源码的地址
LOCAL_SRC_FILES := $(call all-java-files-under, src)
#是否开启混淆,开启的话指定混淆规则,或者全部混淆
LOCAL_PROGUARD_ENABLED := disabled
#编译为静态库
include $(BUILD_STATIC_JAVA_LIBRARY)
#清除变量
include $(CLEAR_VARS)