前言:
由于目前供职于机器人公司,从事基于android系统的软件开发,因此常常需要进行源码编译(当然也可以基于机器人的sdk和android studio环境进行开发)。
进行源码编译,少不了编写Android.mk文件。通常类比前人的Android.mk文件修修改改,即可满足需求。特此将之前编写的一个Android.mk文件拿出来,做次备录。
当然了,前提建议大家先学习一下Android.mk文件的编写规则。
推荐两篇文章:
Android.mk 文件语法详解
Android.mk引用aar文件
好了,言归正传.先附上完整的Android.mk文件.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
--extra-packages com.jude.easyrecyclerview
LOCAL_SRC_FILES := $(call all-subdir-java-files) \
$(call all-Iaidl-files-under, src)
LOCAL_STATIC_JAVA_LIBRARIES := \
glide-1.0 \
eventbus-1.0 \
recyclerview-1.0 \
libRobotVisionService-1.0 \
libRobotNuiClient-1.0 \
BaseRecyclerViewAdapterHelper-1.0 \
easyrecyclerview-1.0 \
greendao-1.0 \
greendao-generator-1.0 \
android-support-v4-1.0 \
greendao-api-1.0 \
support-annotations-1.0
LOCAL_PACKAGE_NAME := SoarOSLauncher
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_DEX_PREOPT := false
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
########################################引用aar文件##################################
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= easyrecyclerview
include $(CLEAR_VARS)
LOCAL_MODULE := easyrecyclerview
LOCAL_SRC_FILES := libs/easyrecyclerview-4.2.3.aar
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
LOCAL_BUILT_MODULE_STEM := javalib.jar
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_PREBUILT)
##############################################################################
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
glide-1.0:libs/glide-3.7.0.jar \
eventbus-1.0:libs/eventbus-3.1.1.jar \
recyclerview-1.0:libs/recyclerview-v7-23.4.0.jar \
libRobotVisionService-1.0:libs/libRobotVisionService.jar \
libRobotNuiClient-1.0:libs/libRobotNuiClient.jar \
BaseRecyclerViewAdapterHelper-1.0:libs/BaseRecyclerViewAdapterHelper-2.9.34.jar \
easyrecyclerview-1.0:libs/easyrecyclerview-4.2.3.jar \
greendao-1.0:libs/greendao-3.2.0.jar \
greendao-generator-1.0:libs/greendao-generator-3.2.0.jar \
android-support-v4-1.0:libs/android-support-v4-25.3.1.jar \
greendao-api-1.0:libs/greendao-api-3.2.0.jar \
support-annotations-1.0:libs/android-support-annotations-25.3.1.jar
include $(BUILD_MULTI_PREBUILT)
include $(call all-makefiles-under, $(LOCAL_PATH))
mk文件结构粗析:
补充:
由于源码环境中进行android项目开发存在一定的局限性(比如编写布局文件的时候不方便调试),因此通常我们会在ubuntu+Android Studio环境中进行android项目编程,待开发完成后,再移植到源码中编译。
如此一来我们在使用LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES来指定jar库的别名时,需要的jar包可从android studio中直接获取。
操作如下图:
查看jar包路径:
好了,完毕,有问题告知在下!