如何引入系统库
项目中应用系统库:
LOCAL_SHARED_LABRARIES +=LIBXXX:
在项目中查找库的位置:find out/target/product/ name xxx.so
如何引入第三方库
引入第三方库:LOCAL_LDFLAGS : =-L/path -lxxx
如何引入静态库
LOCAL_LDFLAGS :=path
如何引入头文件
LOCAL_C_INCLUDES += PATH
如何编译jar包
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE :=jar_name
include $(BUILD_STATIC_JAVA_LABRARY)
include $(BUILD_JAVA_LABRARY)
include (BUILD_JAVA_LABRARY):编译生成动态jar包
jar包的分类:
静态jar包:使用.class文件打包而成的jar文件,可以在任何虚拟机上运行
动态jar:在静态jar包的基础上使用.dex打包而成的jar文件,.dex是android系统使用的文件格式
如何编译apk
编译生成APK:
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME :=LocalPackage
include $(BUILD_PACKAGE)
BUILD_PACKAGE :编译生成的apk
LOCAL_PACKAGE_NAME :编译生存apk的名字
APK中导入jar包和库文件
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARYS :=static-name
LOCAL_JAVA_LIBRARYS :=share-name
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME :=LocalPackage
include $(BUILD_PACKAGE)
LOCAL_STATIC_JAVA_LIBRARYS:静态jar包
LOCAL_JAVA_LIBRARYS:动态jar包
预编译jar包
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS :=JAVA_LIBRARIES
LOCAL_MODULE := com.test.share //新生成的jar包
LOCAL_SRC_FILES :=com.test.static //原有jar包
include $(BUILD_PREBUILT)
JAVA_LIBRARIES:预编译生成DEX
BUILD_PREBUILT :预编译
LOCAL_MODULE_CLASS :指定编译生成的文件类型
编译文件生成的类型:
JAVA_LIBRARIES:dex归档文件
APPS :APK文件
SHARED_LIBRARIES:动态库文件
EXECUTABLES :二进程文件
ETC :其他文件格式
Android.mk中如何加判断语句
ifeq($(VALUE),X) #ifneq
doyes
else
do_no
endif
ifeq/ifneq :根据判断条件执行相关编译