编译jar包

编写mk文件

编译jar包需要编写一个mk文件,对当前目录下的所有java文件编译

#调用函数,传入call my-dir参数得到当前目录
LOCAL_PATH := $(call my-dir)

#引入其他mk文件,清除上一次编译的变量
include $(CLEAR_VARS)

#调用函数,找到其他java文件路径
LOCAL_SRC_FILES := $(call find-other-java-files, java)
#LOCAL_SRC_FILES += $(call find-other-java-files, src)

#设置当前模块的格式optional,user,project
LOCAL_MODULE_TAGS := optional

#指定静态java库
LOCAL_STATIC_JAVA_LIBRARIES := vendor.konka.hardware.dtvmanager-V1.0-java

#设置编译模块的属性,最后依据导入函数编译jar包
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := DTVManager
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_PROGUARD_ENABLED := disabled
include $(BUILD_STATIC_JAVA_LIBRARY)

include $(call first-makefiles-under,$(LOCAL_PATH))

编写sh文件

将编写的mk文件放在需要编译jar的根目录下,编写sh文件实现自动编译拷贝jar包,再linux系统中使用以下命令即可自动编译jar包

mmm <mk文件所在路径>
#如mk文件在项目根目录下device/hisilicon/konka/frameworks/中则
mmm device/hisilicon/konka/frameworks/

以下代码实现编译自动拷贝jar包

# Complie Framework and copy jar file

echo '---------------------------------'
echo '@@Compling...'
echo '---------------------------------'
# 开始编译jar包
mmm device/hisilicon/konka/frameworks/


echo '---------------------------------'
echo '@@Copying...'
echo '---------------------------------'
# 创建拷贝jar包的out文件夹
cd device/hisilicon/konka
if [ ! -d "out" ];then
    echo '@@Create directory [out]'
    mkdir out
else
    echo '@@Directory exists'
fi
echo '---------------------------------'

# Copy jar
# 指定jar包的名称
JAR_FILE="javalib.jar"
echo '@@Copy '${JAR_FILE}

# 拷贝jar包到out/${JAR_FILE}路径下
cp ../../../out/target/product/Hi3796MV200/obj/JAVA_LIBRARIES/DTVManager_intermediates/${JAR_FILE} out/${JAR_FILE}
echo '|- '$JAR_FILE' has copied to device/hisilicon/konka/out/'

# Return Project Root
cd ../../../
echo '---------------------------------'
echo '@@Compile&Copy Finished!'
echo '---------------------------------'
发布了15 篇原创文章 · 获赞 0 · 访问量 228

猜你喜欢

转载自blog.csdn.net/lxy1740/article/details/104296828
今日推荐