android studuo 代码在源码里编译mk脚步
LOCAL_PATH:= $(call my-dir)
擦除除LOCAL_PATH之外的所有变量
include $(CLEAR_VARS)
LOCAL_MAIN := .
LOCAL_MODULE_TAGS := optional
编译时引用的support包目录
support_library_root_dir := frameworks/support
#设置工程代码src目录
#LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_SRC_FILES :=
(
c
a
l
l
a
l
l
−
j
a
v
a
−
f
i
l
e
s
−
u
n
d
e
r
,
(call all-java-files-under,
(callall−java−files−under,(LOCAL_MAIN)/app/src/main/java)
#加入依赖module源文件
LOCAL_SRC_FILES +=
(
c
a
l
l
a
l
l
−
j
a
v
a
−
f
i
l
e
s
−
u
n
d
e
r
,
(call all-java-files-under,
(callall−java−files−under,(LOCAL_MAIN)/sensedriver/src/main/java)
#添加aidl文件中import的.aidl文件目录
#LOCAL_AIDL_INCLUDES :=
(
L
O
C
A
L
P
A
T
H
)
/
(LOCAL_PATH)/
(LOCALPATH)/(LOCAL_MAIN)/src/main/aidl
#LOCAL_SRC_FILES += $(call all-Iaidl-files-under, $(LOCAL_MAIN)/src/main/aidl)
#COMPILE_DEVICE_VERSION := ee
COMPILE_DEVICE_VERSION := ff
#指定manifest文件
ifeq (ee,$(strip $(COMPILE_DEVICE_VERSION)))
LOCAL_MANIFEST_FILE :=
(
L
O
C
A
L
M
A
I
N
)
/
a
p
p
/
s
r
c
/
m
a
i
n
/
A
n
d
r
o
i
d
M
a
n
i
f
e
s
t
.
x
m
l
e
l
s
e
i
f
e
q
(
f
f
,
(LOCAL_MAIN)/app/src/main/AndroidManifest.xml else ifeq (ff,
(LOCALMAIN)/app/src/main/AndroidManifest.xmlelseifeq(ff,(strip $(COMPILE_DEVICE_VERSION)))
#LOCAL_MANIFEST_FILE := $(LOCAL_MAIN)/src/main/AndroidManifest.xml
else
endif
#设置资源res目录
LOCAL_RESOURCE_DIR :=
$(support_library_root_dir)/v7/appcompat/res
$(addprefix
(
L
O
C
A
L
P
A
T
H
)
/
,
(LOCAL_PATH)/,
(LOCALPATH)/,(LOCAL_MAIN)/app/src/main/res)
#设置资源assets目录
LOCAL_ASSET_DIR := $(addprefix
(
L
O
C
A
L
P
A
T
H
)
/
,
(LOCAL_PATH)/,
(LOCALPATH)/,(LOCAL_MAIN)/app/src/main/assets)
#constraint-layout-solver是constraint-layout需要的jar
LOCAL_STATIC_ANDROID_LIBRARIES :=
android-support-v7-appcompat
android-support-v4
android-support-annotations
constraint-layout-solver-1-1-0
#LOCAL_STATIC_JAVA_LIBRARIES += myframework
#依赖库aar
#LOCAL_STATIC_JAVA_AAR_LIBRARIES := constraint-layout-1-1-0
#LOCAL_STATIC_LIBRARIES := lib
#LOCAL_JNI_SHARED_LIBRARIES := libjni
#LOCAL_SHARED_LIBRARIES := libjni
#LOCAL_PREBUILT_JNI_LIBS := $(LOCAL_MAIN)/libs/arm64-v8a/lib.so \
$(LOCAL_MAIN)/libs/arm64-v8a/libso \
$(LOCAL_MAIN)/libs/armeabi-v7a/lib.so \
$(LOCAL_MAIN)/libs/armeabi-v7a/lib.so \
$(LOCAL_MAIN)/libs/x86_64/libjni.so \
$(LOCAL_MAIN)/libs/x86_64/lib.so
#LOCAL_MODULE_INCLUDE_LIBRARY := true
#重复资源自动覆盖
LOCAL_AAPT_FLAGS := --auto-add-overlay
–extra-packages android.support.v7.appcompat
#–extra-packages android.support.constraint
#注意依赖module拥有自己的package name,因此会生成自己的R文件,不能直接把res路径直接加上,需如下写法
LOCAL_AAPT_FLAGS += --auto-add-overlay -S $(addprefix
(
L
O
C
A
L
P
A
T
H
)
/
,
(LOCAL_PATH)/,
(LOCALPATH)/,(LOCAL_MAIN)/src/main/res)
–auto-add-overlay -A $(addprefix
(
L
O
C
A
L
P
A
T
H
)
/
,
(LOCAL_PATH)/,
(LOCALPATH)/,(LOCAL_MAIN)/src/main/assets)
–auto-add-overlay -M $(addprefix
(
L
O
C
A
L
P
A
T
H
)
/
,
(LOCAL_PATH)/,
(LOCALPATH)/,(LOCAL_MAIN)/src/main/AndroidManifest.xml)
–extra-packages com.sensetime.app
#此字段编译到system/pri-app
LOCAL_PRIVILEGED_MODULE := true
#LOCAL_MODULE_PATH := KaTeX parse error: Expected 'EOF', got '#' at position 107: …REOPT := false #̲LOCAL_USE_AAPT2…(SUPPORT_CURRENT_SDK_VERSION)
#LOCAL_PRIVATE_PLATFORM_APIS := true
#LOCAL_JAVA_LANGUAGE_VERSION := 1.8
include $(BUILD_PACKAGE)
######################################################
include $(CLEAR_VARS)
构建依赖的jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := constraint-layout-solver-1-1-0:$(LOCAL_MAIN)/…/…/aslibs/constraint-layout-solver-1.1.0.jar
构建依赖的aar
#LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += constraint-layout-1-1-0:$(LOCAL_MAIN)/…/…/aslibs/constraint-layout-1.1.0.aar
#构建依赖的framework jar
#LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += myframework:$(LOCAL_MAIN)/libs/framework.jar
include $(BUILD_MULTI_PREBUILT)
#####################################################
include $(CLEAR_VARS)
#LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
#LOCAL_MODULE := lib
#LOCAL_SRC_FILES := $(LOCAL_MAIN)/libs/arm64-v8a/lib.so
#include $(PREBUILT_SHARED_LIBRARY)
#include $(CLEAR_VARS)
#LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
#LOCAL_MODULE := lib_sdk_c_api
#LOCAL_MODULE_TARGET_ARCH := arm64-v8a armeabi-v7a x86_64
#LOCAL_SRC_FILES := $(LOCAL_MAIN)//libs/arm64-v8a/lib.so
#include $(PREBUILT_SHARED_LIBRARY)
ifeq (arm64,$(strip
(
T
A
R
G
E
T
A
R
C
H
)
)
)
L
O
C
A
L
P
R
E
B
U
I
L
T
L
I
B
S
:
=
l
i
b
j
n
i
s
d
k
:
(TARGET_ARCH))) LOCAL_PREBUILT_LIBS := libjni_sdk:
(TARGETARCH)))LOCALPREBUILTLIBS:=libjnisdk:(LOCAL_MAIN)/libs/arm64-v8a/libjni.so
lib_sdk_c_api:$(LOCAL_MAIN)/libs/arm64-v8a/lib.so
LOCAL_MODULE_PATH :=
(
T
A
R
G
E
T
O
U
T
)
/
l
i
b
64
e
l
s
e
L
O
C
A
L
P
R
E
B
U
I
L
T
L
I
B
S
:
=
l
i
b
j
n
s
d
k
:
(TARGET_OUT)/lib64 else LOCAL_PREBUILT_LIBS := libjn_sdk:
(TARGETOUT)/lib64elseLOCALPREBUILTLIBS:=libjnsdk:(LOCAL_MAIN)/libs/armeabi-v7a/libjn.so
libsdk_c_api:$(LOCAL_MAIN)/libs/armeabi-v7a/libd.so
LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
endif
LOCAL_MODULE_TAGS := optional
#LOCAL_ARM_MODE := arm
#LOCAL_MULTILIB := both
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_TARGET_ARCH := arm64
#LOCAL_MODULE_CLASS := SHARED_LIBRARIES
#include $(PREBUILT_SHARED_LIBRARY)
#include $(BUILD_PREBUILT)
include $(BUILD_MULTI_PREBUILT)
#######################################################
Use the following include to make our test apk.
include ( c a l l a l l − m a k e f i l e s − u n d e r , (call all-makefiles-under, (callall−makefiles−under,(LOCAL_PATH))